{"version":3,"sources":["../../../node_modules/css-mediaquery/index.js","../../../node_modules/matchmediaquery/index.js","../../../node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","../../../node_modules/prop-types/node_modules/react-is/index.js","../../../node_modules/object-assign/index.js","../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../node_modules/prop-types/lib/has.js","../../../node_modules/prop-types/checkPropTypes.js","../../../node_modules/prop-types/factoryWithTypeCheckers.js","../../../node_modules/prop-types/factoryWithThrowingShims.js","../../../node_modules/prop-types/index.js","../src/utils/cx.ts","../src/components/alert/alert.styles.ts","../src/components/button/button.styles.ts","../src/components/shared/focusRing.styles.ts","../src/components/button/Button.tsx","../src/components/button/IconButton.tsx","../src/components/icons/index.ts","../src/components/svg/SpriteProvider.tsx","../src/components/svg/svg.styles.ts","../src/components/svg/SVGBase.tsx","../src/components/icon/icon.styles.ts","../src/components/icon/SVGIcon.tsx","../src/components/icon/SVGIconSprite.tsx","../src/components/icons/Upload.tsx","../src/components/icons/Spark.tsx","../src/components/icons/Remove.tsx","../src/components/icons/Menu.tsx","../src/components/icons/Close.tsx","../src/components/icons/Check.tsx","../src/components/icons/Add.tsx","../src/components/alert/Alert.tsx","../src/components/avatar/avatar.styles.ts","../src/components/avatar/Avatar.tsx","../src/components/button/ButtonLink.tsx","../src/components/card/card.styles.ts","../src/components/card/Card.tsx","../src/components/card/CardBody.tsx","../src/components/card/CardFooter.tsx","../src/components/card/CardHeader.tsx","../src/components/card/CardMedia.tsx","../src/components/checkbox/checkbox.styles.ts","../src/components/field/label/label.styles.ts","../src/components/field/label/Label.tsx","../src/components/field/fieldError/fieldError.styles.ts","../src/components/field/fieldError/FieldError.tsx","../src/components/field/description/description.styles.ts","../src/components/field/description/Description.tsx","../src/components/checkboxGroup/checkboxGroup.styles.ts","../src/components/checkboxGroup/CheckboxGroup.tsx","../src/components/checkbox/Checkbox.tsx","../src/components/chip/chipGroup.styles.ts","../src/components/chip/chip.styles.ts","../src/components/chip/Chip.tsx","../src/components/chip/ChipGroup.tsx","../src/components/codeblock/codeblock.styles.ts","../src/components/codeblock/CodeBlock.tsx","../src/components/dialog/dialog.styles.ts","../src/components/dialog/DialogHeading.tsx","../src/components/dialog/DialogActions.tsx","../src/components/dialog/DialogTrigger.tsx","../src/components/dialog/Dialog.tsx","../src/components/drawer/drawer.style.ts","../src/components/drawer/Drawer.tsx","../src/components/errorBoundary/errorBoundary.styles.ts","../src/components/errorBoundary/ErrorBoundary.tsx","../src/components/form/form.styles.ts","../src/components/form/Form.tsx","../src/components/footer/footer.styles.ts","../src/components/link/link.styles.ts","../src/components/link/Link.tsx","../src/components/footer/Footer.tsx","../../../node_modules/hyphenate-style-name/index.js","../../../node_modules/shallow-equal/src/objects.ts","../../../node_modules/react-responsive/src/mediaQuery.ts","../../../node_modules/react-responsive/src/toQuery.ts","../../../node_modules/react-responsive/src/Context.ts","../../../node_modules/react-responsive/src/useMediaQuery.ts","../src/components/header/header.styles.ts","../src/components/header/Header.tsx","../src/components/menu/menu.styles.ts","../src/components/menu/MenuHeader.tsx","../../../node_modules/ccount/index.js","../../../node_modules/devlop/lib/default.js","../../../node_modules/micromark-util-character/index.js","../../../node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js","../../../node_modules/unist-util-is/lib/index.js","../../../node_modules/unist-util-visit-parents/lib/color.node.js","../../../node_modules/unist-util-visit-parents/lib/index.js","../../../node_modules/mdast-util-find-and-replace/lib/index.js","../../../node_modules/mdast-util-gfm-autolink-literal/lib/index.js","../../../node_modules/micromark-util-normalize-identifier/index.js","../../../node_modules/mdast-util-gfm-footnote/lib/index.js","../../../node_modules/mdast-util-gfm-strikethrough/lib/index.js","../../../node_modules/markdown-table/index.js","../../../node_modules/mdast-util-to-markdown/lib/handle/blockquote.js","../../../node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js","../../../node_modules/mdast-util-to-markdown/lib/handle/break.js","../../../node_modules/longest-streak/index.js","../../../node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.js","../../../node_modules/mdast-util-to-markdown/lib/util/check-fence.js","../../../node_modules/mdast-util-to-markdown/lib/handle/code.js","../../../node_modules/mdast-util-to-markdown/lib/util/check-quote.js","../../../node_modules/mdast-util-to-markdown/lib/handle/definition.js","../../../node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js","../../../node_modules/mdast-util-to-markdown/lib/handle/emphasis.js","../../../node_modules/unist-util-visit/lib/index.js","../../../node_modules/mdast-util-to-string/lib/index.js","../../../node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.js","../../../node_modules/mdast-util-to-markdown/lib/handle/heading.js","../../../node_modules/mdast-util-to-markdown/lib/handle/html.js","../../../node_modules/mdast-util-to-markdown/lib/handle/image.js","../../../node_modules/mdast-util-to-markdown/lib/handle/image-reference.js","../../../node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","../../../node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js","../../../node_modules/mdast-util-to-markdown/lib/handle/link.js","../../../node_modules/mdast-util-to-markdown/lib/handle/link-reference.js","../../../node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","../../../node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.js","../../../node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.js","../../../node_modules/mdast-util-to-markdown/lib/util/check-rule.js","../../../node_modules/mdast-util-to-markdown/lib/handle/list.js","../../../node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","../../../node_modules/mdast-util-to-markdown/lib/handle/list-item.js","../../../node_modules/mdast-util-to-markdown/lib/handle/paragraph.js","../../../node_modules/mdast-util-phrasing/lib/index.js","../../../node_modules/mdast-util-to-markdown/lib/handle/root.js","../../../node_modules/mdast-util-to-markdown/lib/util/check-strong.js","../../../node_modules/mdast-util-to-markdown/lib/handle/strong.js","../../../node_modules/mdast-util-to-markdown/lib/handle/text.js","../../../node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.js","../../../node_modules/mdast-util-to-markdown/lib/handle/thematic-break.js","../../../node_modules/mdast-util-to-markdown/lib/handle/index.js","../../../node_modules/mdast-util-gfm-table/lib/index.js","../../../node_modules/mdast-util-gfm-task-list-item/lib/index.js","../../../node_modules/mdast-util-gfm/lib/index.js","../../../node_modules/micromark-util-chunked/index.js","../../../node_modules/micromark-util-combine-extensions/index.js","../../../node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js","../../../node_modules/micromark-util-classify-character/index.js","../../../node_modules/micromark-util-resolve-all/index.js","../../../node_modules/micromark-factory-space/index.js","../../../node_modules/micromark-core-commonmark/lib/blank-line.js","../../../node_modules/micromark-extension-gfm-footnote/lib/syntax.js","../../../node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js","../../../node_modules/micromark-extension-gfm-table/lib/edit-map.js","../../../node_modules/micromark-extension-gfm-table/lib/infer.js","../../../node_modules/micromark-extension-gfm-table/lib/syntax.js","../../../node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js","../../../node_modules/micromark-extension-gfm/index.js","../../../node_modules/remark-gfm/lib/index.js","../src/components/markdown/Markdown.tsx","../src/components/shared/OverlayArrow.tsx","../src/components/tooltip/tooltip.styles.ts","../src/components/tooltip/Tooltip.tsx","../src/components/field/formInputContainer/formInputContainer.styles.ts","../src/components/field/formInputContainer/FormInputContainer.tsx","../src/components/field/input/input.styles.ts","../src/components/field/input/Input.tsx","../src/components/fileInput/fileInput.styles.ts","../src/components/fileInput/FileInputButton.tsx","../src/components/fileInput/FileInput.tsx","../src/components/field/textArea/textArea.styles.ts","../src/components/field/textArea/TextAreaControl.tsx","../src/components/field/textArea/TextArea.tsx","../src/components/icon/Icon.tsx","../src/components/svg/SVGSpriteLink.tsx","../src/components/logos/index.ts","../src/components/logos/Varnish.tsx","../src/components/logos/Tulu3.tsx","../src/components/logos/Tulu370B.tsx","../src/components/logos/Tulu3405B.tsx","../src/components/logos/Tulu.tsx","../src/components/logos/Skiff.tsx","../src/components/logos/SafetyTool.tsx","../src/components/logos/Playground.tsx","../src/components/logos/PixMo.tsx","../src/components/logos/Paloma.tsx","../src/components/logos/OLMoE.tsx","../src/components/logos/OLMo.tsx","../src/components/logos/OLMES.tsx","../src/components/logos/Molmo.tsx","../src/components/logos/EarthSystems.tsx","../src/components/logos/Dolma.tsx","../src/components/logos/DataDecide.tsx","../src/components/logos/Ai2Playground.tsx","../src/components/logos/Ai2OpenScholar8B.tsx","../src/components/logos/Ai2OLMoE.tsx","../src/components/logos/Ai2.tsx","../src/components/logos/ACE.tsx","../src/components/menu/Menu.tsx","../src/components/menu/MenuItem.tsx","../src/components/menu/MenuSection.tsx","../src/components/menu/MenuTrigger.tsx","../src/components/menu/SubmenuTrigger.tsx","../src/components/menu/Separator.tsx","../src/components/menu/Keyboard.tsx","../src/components/menu/MenuText.tsx","../src/components/modal/modal.styles.ts","../src/components/modal/ModalActions.tsx","../src/components/modal/ModalHeading.tsx","../src/components/modal/ModalContent.tsx","../src/components/modal/Modal.tsx","../src/components/radio/radio.styles.ts","../src/components/radioGroup/radioGroup.styles.ts","../src/components/radioGroup/RadioGroup.tsx","../src/components/radio/Radio.tsx","../src/components/loadingSpinner/loadingSpinner.styles.ts","../src/components/loadingSpinner/LoadingSpinner.tsx","../src/components/popover/popover.styles.ts","../src/components/popover/Popover.tsx","../src/components/select/select.styles.ts","../src/components/select/SelectValue.tsx","../src/components/select/SelectPopover.tsx","../src/components/select/SelectListBox.tsx","../src/components/select/SelectListBoxItem.tsx","../src/components/select/SelectButton.tsx","../src/components/select/Select.tsx","../src/components/select/SelectListBoxHeader.tsx","../src/components/select/SelectListBoxSection.tsx","../src/components/slider/slider.styles.ts","../src/components/slider/SliderThumb.tsx","../src/components/slider/SliderTrack.tsx","../src/components/slider/SliderOutput.tsx","../src/components/slider/SliderBase.tsx","../src/components/slider/SliderTrackIndicator.tsx","../src/components/slider/Slider.tsx","../src/components/snackbar/snackbar.styles.ts","../src/components/snackbar/Snackbar.tsx","../src/components/snackbar/SnackbarContext.tsx","../src/components/snackbar/snackbarList.styles.ts","../src/components/snackbar/SnackbarList.tsx","../src/components/stack/stack.styles.ts","../src/components/stack/Stack.tsx","../src/components/switch/switch.styles.ts","../src/components/switch/Switch.tsx","../src/components/table/table.styles.ts","../src/components/table/TableHeader.tsx","../src/components/table/TableBody.tsx","../src/components/table/Row.tsx","../src/components/table/Cell.tsx","../src/components/table/Column.tsx","../src/components/table/ColumnResizer.tsx","../src/components/table/Table.tsx","../src/components/table/ResizableTableContainer.tsx","../src/components/tabs/tabs.styles.ts","../src/components/tabs/TabsList.tsx","../src/components/tabs/Tabs.tsx","../src/components/tabs/Tab.tsx","../src/components/tabs/TabPanel.tsx","../src/components/providers/ThemeProviderBase.tsx","../src/components/providers/EmotionThemeProvider.tsx","../src/components/providers/AppProvider.tsx","../src/components/providers/LegalProvider.tsx"],"names":["type","captures","matchMedia","Fragment","hasOwnProperty","text","is","i","checker","sva","css","jsxs","AriaButton","jsx","createContext","useContext","cva","color","AriaHeading","Icon","AriaLink","AriaLabel","AriaFieldError","AriaText","AriaCheckboxGroup","AriaCheckbox","AriaChip","Button","AriaChipGroup","Label","AriaChipList","FieldError","varnishPrismDark","varnishPrismLight","SyntaxHighlighter","AriaDialogTrigger","heading","AriaDialog","useEffect","createPortal","Component","AriaForm","link","shallowEqualObjects","objA","objB","aKeys","Object","keys","bKeys","len","length","key","prototype","call","PropTypes","useRef","useState","mq","AriaHeader","code","ok","index","all","node","visit","list","replace","domain","path","trail","exit","row","sizes","columnIndex","map","value","subexit","constructs","previous","emptyOptions","ReactMarkdown","AriaOverlayArrow","TooltipTrigger","AriaTooltip","AriaTextField","AriaInput","AriaFileTrigger","AriaDropZone","AriaTextArea","cloneElement","Menu","AriaMenu","AriaMenuItem","AriaMenuSection","AriaMenuTrigger","AriaSubmenuTrigger","AriaSeparator","AriaKeyboard","AriaModalOverlay","AriaModal","AriaRadioGroup","AriaRadio","AriaProgressBar","AriaPopover","AriaSelectValue","AriaListBox","AriaListBoxItem","AriaSelect","AriaListBoxSection","AriaSliderThumb","AriaSliderTrack","AriaSliderOutput","AriaSlider","useCallback","AriaSwitch","AriaTableHeader","AriaTableBody","AriaRow","AriaCell","AriaColumn","AriaColumnResizer","AriaTable","AriaResizableTableContainer","AriaTabList","TabsContext","AriaTabs","isDisabled","AriaTab","AriaTabPanel","useLayoutEffect","VarnishTheme","ThemeProvider"],"mappings":"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","file":"index.cjs","sourcesContent":["/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n'use strict';\n\nexports.match = matchQuery;\nexports.parse = parseQuery;\n\n// -----------------------------------------------------------------------------\n\nvar RE_MEDIA_QUERY     = /(?:(only|not)?\\s*([^\\s\\(\\)]+)(?:\\s*and)?\\s*)?(.+)?/i,\n    RE_MQ_EXPRESSION   = /\\(\\s*([^\\s\\:\\)]+)\\s*(?:\\:\\s*([^\\s\\)]+))?\\s*\\)/,\n    RE_MQ_FEATURE      = /^(?:(min|max)-)?(.+)/,\n    RE_LENGTH_UNIT     = /(em|rem|px|cm|mm|in|pt|pc)?$/,\n    RE_RESOLUTION_UNIT = /(dpi|dpcm|dppx)?$/;\n\nfunction matchQuery(mediaQuery, values) {\n    return parseQuery(mediaQuery).some(function (query) {\n        var inverse = query.inverse;\n\n        // Either the parsed or specified `type` is \"all\", or the types must be\n        // equal for a match.\n        var typeMatch = query.type === 'all' || values.type === query.type;\n\n        // Quit early when `type` doesn't match, but take \"not\" into account.\n        if ((typeMatch && inverse) || !(typeMatch || inverse)) {\n            return false;\n        }\n\n        var expressionsMatch = query.expressions.every(function (expression) {\n            var feature  = expression.feature,\n                modifier = expression.modifier,\n                expValue = expression.value,\n                value    = values[feature];\n\n            // Missing or falsy values don't match.\n            if (!value) { return false; }\n\n            switch (feature) {\n                case 'orientation':\n                case 'scan':\n                    return value.toLowerCase() === expValue.toLowerCase();\n\n                case 'width':\n                case 'height':\n                case 'device-width':\n                case 'device-height':\n                    expValue = toPx(expValue);\n                    value    = toPx(value);\n                    break;\n\n                case 'resolution':\n                    expValue = toDpi(expValue);\n                    value    = toDpi(value);\n                    break;\n\n                case 'aspect-ratio':\n                case 'device-aspect-ratio':\n                case /* Deprecated */ 'device-pixel-ratio':\n                    expValue = toDecimal(expValue);\n                    value    = toDecimal(value);\n                    break;\n\n                case 'grid':\n                case 'color':\n                case 'color-index':\n                case 'monochrome':\n                    expValue = parseInt(expValue, 10) || 1;\n                    value    = parseInt(value, 10) || 0;\n                    break;\n            }\n\n            switch (modifier) {\n                case 'min': return value >= expValue;\n                case 'max': return value <= expValue;\n                default   : return value === expValue;\n            }\n        });\n\n        return (expressionsMatch && !inverse) || (!expressionsMatch && inverse);\n    });\n}\n\nfunction parseQuery(mediaQuery) {\n    return mediaQuery.split(',').map(function (query) {\n        query = query.trim();\n\n        var captures    = query.match(RE_MEDIA_QUERY),\n            modifier    = captures[1],\n            type        = captures[2],\n            expressions = captures[3] || '',\n            parsed      = {};\n\n        parsed.inverse = !!modifier && modifier.toLowerCase() === 'not';\n        parsed.type    = type ? type.toLowerCase() : 'all';\n\n        // Split expressions into a list.\n        expressions = expressions.match(/\\([^\\)]+\\)/g) || [];\n\n        parsed.expressions = expressions.map(function (expression) {\n            var captures = expression.match(RE_MQ_EXPRESSION),\n                feature  = captures[1].toLowerCase().match(RE_MQ_FEATURE);\n\n            return {\n                modifier: feature[1],\n                feature : feature[2],\n                value   : captures[2]\n            };\n        });\n\n        return parsed;\n    });\n}\n\n// -- Utilities ----------------------------------------------------------------\n\nfunction toDecimal(ratio) {\n    var decimal = Number(ratio),\n        numbers;\n\n    if (!decimal) {\n        numbers = ratio.match(/^(\\d+)\\s*\\/\\s*(\\d+)$/);\n        decimal = numbers[1] / numbers[2];\n    }\n\n    return decimal;\n}\n\nfunction toDpi(resolution) {\n    var value = parseFloat(resolution),\n        units = String(resolution).match(RE_RESOLUTION_UNIT)[1];\n\n    switch (units) {\n        case 'dpcm': return value / 2.54;\n        case 'dppx': return value * 96;\n        default    : return value;\n    }\n}\n\nfunction toPx(length) {\n    var value = parseFloat(length),\n        units = String(length).match(RE_LENGTH_UNIT)[1];\n\n    switch (units) {\n        case 'em' : return value * 16;\n        case 'rem': return value * 16;\n        case 'cm' : return value * 96 / 2.54;\n        case 'mm' : return value * 96 / 2.54 / 10;\n        case 'in' : return value * 96;\n        case 'pt' : return value * 72;\n        case 'pc' : return value * 72 / 12;\n        default   : return value;\n    }\n}\n","'use strict';\n\nvar staticMatch = require('css-mediaquery').match;\nvar dynamicMatch = typeof window !== 'undefined' ? window.matchMedia : null;\n\n// our fake MediaQueryList\nfunction Mql(query, values, forceStatic){\n  var self = this;\n  var mql;\n\n  // matchMedia will return null in FF when it's called in a hidden iframe\n  // ref: https://stackoverflow.com/a/12330568\n  if(dynamicMatch && !forceStatic) mql = dynamicMatch.call(window, query);\n\n  if (mql) {\n    this.matches = mql.matches;\n    this.media = mql.media;\n    // TODO: is there a time it makes sense to remove this listener?\n    mql.addListener(update);\n  } else {\n    this.matches = staticMatch(query, values);\n    this.media = query;\n  }\n\n  this.addListener = addListener;\n  this.removeListener = removeListener;\n  this.dispose = dispose;\n\n  function addListener(listener){\n    if(mql){\n      mql.addListener(listener);\n    }\n  }\n\n  function removeListener(listener){\n    if(mql){\n      mql.removeListener(listener);\n    }\n  }\n\n  // update ourselves!\n  function update(evt){\n    self.matches = evt.matches;\n    self.media = evt.media;\n  }\n\n  function dispose(){\n    if(mql){\n      mql.removeListener(update);\n    }\n  }\n}\n\nfunction matchMedia(query, values, forceStatic){\n  return new Mql(query, values, forceStatic);\n}\n\nmodule.exports = matchMedia;\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n  (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n  return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n  type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n  if (typeof object === 'object' && object !== null) {\n    var $$typeof = object.$$typeof;\n\n    switch ($$typeof) {\n      case REACT_ELEMENT_TYPE:\n        var type = object.type;\n\n        switch (type) {\n          case REACT_ASYNC_MODE_TYPE:\n          case REACT_CONCURRENT_MODE_TYPE:\n          case REACT_FRAGMENT_TYPE:\n          case REACT_PROFILER_TYPE:\n          case REACT_STRICT_MODE_TYPE:\n          case REACT_SUSPENSE_TYPE:\n            return type;\n\n          default:\n            var $$typeofType = type && type.$$typeof;\n\n            switch ($$typeofType) {\n              case REACT_CONTEXT_TYPE:\n              case REACT_FORWARD_REF_TYPE:\n              case REACT_LAZY_TYPE:\n              case REACT_MEMO_TYPE:\n              case REACT_PROVIDER_TYPE:\n                return $$typeofType;\n\n              default:\n                return $$typeof;\n            }\n\n        }\n\n      case REACT_PORTAL_TYPE:\n        return $$typeof;\n    }\n  }\n\n  return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n  {\n    if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n      hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n      console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n    }\n  }\n\n  return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n  return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n  return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n  return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n  return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n  return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n  return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n  return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n  return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n  return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n  return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n  return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n  return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n  })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-is.production.min.js');\n} else {\n  module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc');  // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n  var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n  var loggedTypeFailures = {};\n  var has = require('./lib/has');\n\n  printWarning = function(text) {\n    var message = 'Warning: ' + text;\n    if (typeof console !== 'undefined') {\n      console.error(message);\n    }\n    try {\n      // --- Welcome to debugging React ---\n      // This error was thrown as a convenience so that you can use this stack\n      // to find the callsite that caused this warning to fire.\n      throw new Error(message);\n    } catch (x) { /**/ }\n  };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n  if (process.env.NODE_ENV !== 'production') {\n    for (var typeSpecName in typeSpecs) {\n      if (has(typeSpecs, typeSpecName)) {\n        var error;\n        // Prop type validation may throw. In case they do, we don't want to\n        // fail the render phase where it didn't fail before. So we log it.\n        // After these have been cleaned up, we'll let them throw.\n        try {\n          // This is intentionally an invariant that gets caught. It's the same\n          // behavior as without this statement except with a better message.\n          if (typeof typeSpecs[typeSpecName] !== 'function') {\n            var err = Error(\n              (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n              'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n              'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n            );\n            err.name = 'Invariant Violation';\n            throw err;\n          }\n          error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n        } catch (ex) {\n          error = ex;\n        }\n        if (error && !(error instanceof Error)) {\n          printWarning(\n            (componentName || 'React class') + ': type specification of ' +\n            location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n            'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n            'You may have forgotten to pass an argument to the type checker ' +\n            'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n            'shape all require an argument).'\n          );\n        }\n        if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n          // Only monitor this failure once because there tends to be a lot of the\n          // same error.\n          loggedTypeFailures[error.message] = true;\n\n          var stack = getStack ? getStack() : '';\n\n          printWarning(\n            'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n          );\n        }\n      }\n    }\n  }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n  if (process.env.NODE_ENV !== 'production') {\n    loggedTypeFailures = {};\n  }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n  printWarning = function(text) {\n    var message = 'Warning: ' + text;\n    if (typeof console !== 'undefined') {\n      console.error(message);\n    }\n    try {\n      // --- Welcome to debugging React ---\n      // This error was thrown as a convenience so that you can use this stack\n      // to find the callsite that caused this warning to fire.\n      throw new Error(message);\n    } catch (x) {}\n  };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n  return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n  /* global Symbol */\n  var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n  var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n  /**\n   * Returns the iterator method function contained on the iterable object.\n   *\n   * Be sure to invoke the function with the iterable as context:\n   *\n   *     var iteratorFn = getIteratorFn(myIterable);\n   *     if (iteratorFn) {\n   *       var iterator = iteratorFn.call(myIterable);\n   *       ...\n   *     }\n   *\n   * @param {?object} maybeIterable\n   * @return {?function}\n   */\n  function getIteratorFn(maybeIterable) {\n    var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n    if (typeof iteratorFn === 'function') {\n      return iteratorFn;\n    }\n  }\n\n  /**\n   * Collection of methods that allow declaration and validation of props that are\n   * supplied to React components. Example usage:\n   *\n   *   var Props = require('ReactPropTypes');\n   *   var MyArticle = React.createClass({\n   *     propTypes: {\n   *       // An optional string prop named \"description\".\n   *       description: Props.string,\n   *\n   *       // A required enum prop named \"category\".\n   *       category: Props.oneOf(['News','Photos']).isRequired,\n   *\n   *       // A prop named \"dialog\" that requires an instance of Dialog.\n   *       dialog: Props.instanceOf(Dialog).isRequired\n   *     },\n   *     render: function() { ... }\n   *   });\n   *\n   * A more formal specification of how these methods are used:\n   *\n   *   type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n   *   decl := ReactPropTypes.{type}(.isRequired)?\n   *\n   * Each and every declaration produces a function with the same signature. This\n   * allows the creation of custom validation functions. For example:\n   *\n   *  var MyLink = React.createClass({\n   *    propTypes: {\n   *      // An optional string or URI prop named \"href\".\n   *      href: function(props, propName, componentName) {\n   *        var propValue = props[propName];\n   *        if (propValue != null && typeof propValue !== 'string' &&\n   *            !(propValue instanceof URI)) {\n   *          return new Error(\n   *            'Expected a string or an URI for ' + propName + ' in ' +\n   *            componentName\n   *          );\n   *        }\n   *      }\n   *    },\n   *    render: function() {...}\n   *  });\n   *\n   * @internal\n   */\n\n  var ANONYMOUS = '<<anonymous>>';\n\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n  var ReactPropTypes = {\n    array: createPrimitiveTypeChecker('array'),\n    bigint: createPrimitiveTypeChecker('bigint'),\n    bool: createPrimitiveTypeChecker('boolean'),\n    func: createPrimitiveTypeChecker('function'),\n    number: createPrimitiveTypeChecker('number'),\n    object: createPrimitiveTypeChecker('object'),\n    string: createPrimitiveTypeChecker('string'),\n    symbol: createPrimitiveTypeChecker('symbol'),\n\n    any: createAnyTypeChecker(),\n    arrayOf: createArrayOfTypeChecker,\n    element: createElementTypeChecker(),\n    elementType: createElementTypeTypeChecker(),\n    instanceOf: createInstanceTypeChecker,\n    node: createNodeChecker(),\n    objectOf: createObjectOfTypeChecker,\n    oneOf: createEnumTypeChecker,\n    oneOfType: createUnionTypeChecker,\n    shape: createShapeTypeChecker,\n    exact: createStrictShapeTypeChecker,\n  };\n\n  /**\n   * inlined Object.is polyfill to avoid requiring consumers ship their own\n   * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n   */\n  /*eslint-disable no-self-compare*/\n  function is(x, y) {\n    // SameValue algorithm\n    if (x === y) {\n      // Steps 1-5, 7-10\n      // Steps 6.b-6.e: +0 != -0\n      return x !== 0 || 1 / x === 1 / y;\n    } else {\n      // Step 6.a: NaN == NaN\n      return x !== x && y !== y;\n    }\n  }\n  /*eslint-enable no-self-compare*/\n\n  /**\n   * We use an Error-like object for backward compatibility as people may call\n   * PropTypes directly and inspect their output. However, we don't use real\n   * Errors anymore. We don't inspect their stack anyway, and creating them\n   * is prohibitively expensive if they are created too often, such as what\n   * happens in oneOfType() for any type before the one that matched.\n   */\n  function PropTypeError(message, data) {\n    this.message = message;\n    this.data = data && typeof data === 'object' ? data: {};\n    this.stack = '';\n  }\n  // Make `instanceof Error` still work for returned errors.\n  PropTypeError.prototype = Error.prototype;\n\n  function createChainableTypeChecker(validate) {\n    if (process.env.NODE_ENV !== 'production') {\n      var manualPropTypeCallCache = {};\n      var manualPropTypeWarningCount = 0;\n    }\n    function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n      componentName = componentName || ANONYMOUS;\n      propFullName = propFullName || propName;\n\n      if (secret !== ReactPropTypesSecret) {\n        if (throwOnDirectAccess) {\n          // New behavior only for users of `prop-types` package\n          var err = new Error(\n            'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n            'Use `PropTypes.checkPropTypes()` to call them. ' +\n            'Read more at http://fb.me/use-check-prop-types'\n          );\n          err.name = 'Invariant Violation';\n          throw err;\n        } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n          // Old behavior for people using React.PropTypes\n          var cacheKey = componentName + ':' + propName;\n          if (\n            !manualPropTypeCallCache[cacheKey] &&\n            // Avoid spamming the console because they are often not actionable except for lib authors\n            manualPropTypeWarningCount < 3\n          ) {\n            printWarning(\n              'You are manually calling a React.PropTypes validation ' +\n              'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n              'and will throw in the standalone `prop-types` package. ' +\n              'You may be seeing this warning due to a third-party PropTypes ' +\n              'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n            );\n            manualPropTypeCallCache[cacheKey] = true;\n            manualPropTypeWarningCount++;\n          }\n        }\n      }\n      if (props[propName] == null) {\n        if (isRequired) {\n          if (props[propName] === null) {\n            return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n          }\n          return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n        }\n        return null;\n      } else {\n        return validate(props, propName, componentName, location, propFullName);\n      }\n    }\n\n    var chainedCheckType = checkType.bind(null, false);\n    chainedCheckType.isRequired = checkType.bind(null, true);\n\n    return chainedCheckType;\n  }\n\n  function createPrimitiveTypeChecker(expectedType) {\n    function validate(props, propName, componentName, location, propFullName, secret) {\n      var propValue = props[propName];\n      var propType = getPropType(propValue);\n      if (propType !== expectedType) {\n        // `propValue` being instance of, say, date/regexp, pass the 'object'\n        // check, but we can offer a more precise error message here rather than\n        // 'of type `object`'.\n        var preciseType = getPreciseType(propValue);\n\n        return new PropTypeError(\n          'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n          {expectedType: expectedType}\n        );\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function createAnyTypeChecker() {\n    return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n  }\n\n  function createArrayOfTypeChecker(typeChecker) {\n    function validate(props, propName, componentName, location, propFullName) {\n      if (typeof typeChecker !== 'function') {\n        return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n      }\n      var propValue = props[propName];\n      if (!Array.isArray(propValue)) {\n        var propType = getPropType(propValue);\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n      }\n      for (var i = 0; i < propValue.length; i++) {\n        var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n        if (error instanceof Error) {\n          return error;\n        }\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function createElementTypeChecker() {\n    function validate(props, propName, componentName, location, propFullName) {\n      var propValue = props[propName];\n      if (!isValidElement(propValue)) {\n        var propType = getPropType(propValue);\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function createElementTypeTypeChecker() {\n    function validate(props, propName, componentName, location, propFullName) {\n      var propValue = props[propName];\n      if (!ReactIs.isValidElementType(propValue)) {\n        var propType = getPropType(propValue);\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function createInstanceTypeChecker(expectedClass) {\n    function validate(props, propName, componentName, location, propFullName) {\n      if (!(props[propName] instanceof expectedClass)) {\n        var expectedClassName = expectedClass.name || ANONYMOUS;\n        var actualClassName = getClassName(props[propName]);\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function createEnumTypeChecker(expectedValues) {\n    if (!Array.isArray(expectedValues)) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (arguments.length > 1) {\n          printWarning(\n            'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n            'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n          );\n        } else {\n          printWarning('Invalid argument supplied to oneOf, expected an array.');\n        }\n      }\n      return emptyFunctionThatReturnsNull;\n    }\n\n    function validate(props, propName, componentName, location, propFullName) {\n      var propValue = props[propName];\n      for (var i = 0; i < expectedValues.length; i++) {\n        if (is(propValue, expectedValues[i])) {\n          return null;\n        }\n      }\n\n      var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n        var type = getPreciseType(value);\n        if (type === 'symbol') {\n          return String(value);\n        }\n        return value;\n      });\n      return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function createObjectOfTypeChecker(typeChecker) {\n    function validate(props, propName, componentName, location, propFullName) {\n      if (typeof typeChecker !== 'function') {\n        return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n      }\n      var propValue = props[propName];\n      var propType = getPropType(propValue);\n      if (propType !== 'object') {\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n      }\n      for (var key in propValue) {\n        if (has(propValue, key)) {\n          var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n          if (error instanceof Error) {\n            return error;\n          }\n        }\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function createUnionTypeChecker(arrayOfTypeCheckers) {\n    if (!Array.isArray(arrayOfTypeCheckers)) {\n      process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n      return emptyFunctionThatReturnsNull;\n    }\n\n    for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n      var checker = arrayOfTypeCheckers[i];\n      if (typeof checker !== 'function') {\n        printWarning(\n          'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n          'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n        );\n        return emptyFunctionThatReturnsNull;\n      }\n    }\n\n    function validate(props, propName, componentName, location, propFullName) {\n      var expectedTypes = [];\n      for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n        var checker = arrayOfTypeCheckers[i];\n        var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n        if (checkerResult == null) {\n          return null;\n        }\n        if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n          expectedTypes.push(checkerResult.data.expectedType);\n        }\n      }\n      var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n      return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function createNodeChecker() {\n    function validate(props, propName, componentName, location, propFullName) {\n      if (!isNode(props[propName])) {\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function invalidValidatorError(componentName, location, propFullName, key, type) {\n    return new PropTypeError(\n      (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n      'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n    );\n  }\n\n  function createShapeTypeChecker(shapeTypes) {\n    function validate(props, propName, componentName, location, propFullName) {\n      var propValue = props[propName];\n      var propType = getPropType(propValue);\n      if (propType !== 'object') {\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n      }\n      for (var key in shapeTypes) {\n        var checker = shapeTypes[key];\n        if (typeof checker !== 'function') {\n          return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n        }\n        var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n        if (error) {\n          return error;\n        }\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function createStrictShapeTypeChecker(shapeTypes) {\n    function validate(props, propName, componentName, location, propFullName) {\n      var propValue = props[propName];\n      var propType = getPropType(propValue);\n      if (propType !== 'object') {\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n      }\n      // We need to check all keys in case some are required but missing from props.\n      var allKeys = assign({}, props[propName], shapeTypes);\n      for (var key in allKeys) {\n        var checker = shapeTypes[key];\n        if (has(shapeTypes, key) && typeof checker !== 'function') {\n          return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n        }\n        if (!checker) {\n          return new PropTypeError(\n            'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n            '\\nBad object: ' + JSON.stringify(props[propName], null, '  ') +\n            '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, '  ')\n          );\n        }\n        var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n        if (error) {\n          return error;\n        }\n      }\n      return null;\n    }\n\n    return createChainableTypeChecker(validate);\n  }\n\n  function isNode(propValue) {\n    switch (typeof propValue) {\n      case 'number':\n      case 'string':\n      case 'undefined':\n        return true;\n      case 'boolean':\n        return !propValue;\n      case 'object':\n        if (Array.isArray(propValue)) {\n          return propValue.every(isNode);\n        }\n        if (propValue === null || isValidElement(propValue)) {\n          return true;\n        }\n\n        var iteratorFn = getIteratorFn(propValue);\n        if (iteratorFn) {\n          var iterator = iteratorFn.call(propValue);\n          var step;\n          if (iteratorFn !== propValue.entries) {\n            while (!(step = iterator.next()).done) {\n              if (!isNode(step.value)) {\n                return false;\n              }\n            }\n          } else {\n            // Iterator will provide entry [k,v] tuples rather than values.\n            while (!(step = iterator.next()).done) {\n              var entry = step.value;\n              if (entry) {\n                if (!isNode(entry[1])) {\n                  return false;\n                }\n              }\n            }\n          }\n        } else {\n          return false;\n        }\n\n        return true;\n      default:\n        return false;\n    }\n  }\n\n  function isSymbol(propType, propValue) {\n    // Native Symbol.\n    if (propType === 'symbol') {\n      return true;\n    }\n\n    // falsy value can't be a Symbol\n    if (!propValue) {\n      return false;\n    }\n\n    // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n    if (propValue['@@toStringTag'] === 'Symbol') {\n      return true;\n    }\n\n    // Fallback for non-spec compliant Symbols which are polyfilled.\n    if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n      return true;\n    }\n\n    return false;\n  }\n\n  // Equivalent of `typeof` but with special handling for array and regexp.\n  function getPropType(propValue) {\n    var propType = typeof propValue;\n    if (Array.isArray(propValue)) {\n      return 'array';\n    }\n    if (propValue instanceof RegExp) {\n      // Old webkits (at least until Android 4.0) return 'function' rather than\n      // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n      // passes PropTypes.object.\n      return 'object';\n    }\n    if (isSymbol(propType, propValue)) {\n      return 'symbol';\n    }\n    return propType;\n  }\n\n  // This handles more types than `getPropType`. Only used for error messages.\n  // See `createPrimitiveTypeChecker`.\n  function getPreciseType(propValue) {\n    if (typeof propValue === 'undefined' || propValue === null) {\n      return '' + propValue;\n    }\n    var propType = getPropType(propValue);\n    if (propType === 'object') {\n      if (propValue instanceof Date) {\n        return 'date';\n      } else if (propValue instanceof RegExp) {\n        return 'regexp';\n      }\n    }\n    return propType;\n  }\n\n  // Returns a string that is postfixed to a warning about an invalid type.\n  // For example, \"undefined\" or \"of type array\"\n  function getPostfixForTypeWarning(value) {\n    var type = getPreciseType(value);\n    switch (type) {\n      case 'array':\n      case 'object':\n        return 'an ' + type;\n      case 'boolean':\n      case 'date':\n      case 'regexp':\n        return 'a ' + type;\n      default:\n        return type;\n    }\n  }\n\n  // Returns class name of the object, if any.\n  function getClassName(propValue) {\n    if (!propValue.constructor || !propValue.constructor.name) {\n      return ANONYMOUS;\n    }\n    return propValue.constructor.name;\n  }\n\n  ReactPropTypes.checkPropTypes = checkPropTypes;\n  ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    var err = new Error(\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n    err.name = 'Invariant Violation';\n    throw err;\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bigint: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    elementType: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim,\n\n    checkPropTypes: emptyFunctionWithReset,\n    resetWarningCache: emptyFunction\n  };\n\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n  var ReactIs = require('react-is');\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = require('./factoryWithThrowingShims')();\n}\n","// LICENCE: MIT\n// Copyright (c) 2023 Brendon Lees\n// Augmented `cx()` adapted from https://github.com/brendon1555/panda-cx-deduplicator\ntype Argument = string | boolean | null | undefined;\n\nconst atomicClassRegex = /(.*\\]:)?[^_]*(?=_)|.*(?=\\]:)/g;\n\nfunction cx(...args: Argument[]) {\n    const presentClassNames = (Array.prototype.slice.call(args) as Argument[])\n        .filter(Boolean)\n        .filter((arg) => typeof arg === 'string') as string[];\n\n    const atomicClasses: { [k: string]: string } = {};\n    const nonAtomicClasses: string[] = [];\n\n    presentClassNames.forEach((arg) => {\n        const individualClassNames = arg ? arg.split(' ').filter(Boolean) : [];\n\n        individualClassNames.forEach((className) => {\n            const atomicMatch = className.match(atomicClassRegex);\n            /* Slot recipes contain `__` */\n            if (!className.includes('__') && atomicMatch) {\n                const key = atomicMatch[0];\n                atomicClasses[key] = className;\n            } else {\n                nonAtomicClasses.push(className);\n            }\n        });\n    });\n\n    const result: string[] = [];\n\n    for (const key in atomicClasses) {\n        if (Object.prototype.hasOwnProperty.call(atomicClasses, key)) {\n            result.push(atomicClasses[key]);\n        }\n    }\n    result.push(...nonAtomicClasses);\n    return result.join(' ');\n}\n\nexport { cx };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps, RecipeVariant } from '@allenai/varnish-panda-runtime/types';\n\nconst alertRecipe = sva({\n    slots: ['root', 'icon', 'title', 'message', 'actions', 'closeButton'],\n    base: {\n        root: {\n            display: 'flex',\n            alignItems: 'flex-start',\n            gap: '1',\n            border: '1px solid transparent',\n            borderRadius: 'sm',\n            padding: '[8px]',\n            width: '[100%]',\n        },\n        icon: {\n            display: 'flex',\n            fontSize: '[22px]',\n            lineHeight: '1',\n        },\n        title: {\n            margin: '0',\n        },\n        message: {\n            flexGrow: '1',\n            fontSize: 'sm',\n        },\n        actions: {},\n        closeButton: {\n            appearance: 'none',\n            backgroundColor: 'transparent',\n            border: '0',\n            padding: '0',\n            fontSize: '[22px]',\n            lineHeight: '1',\n            display: 'flex',\n        },\n    },\n    variants: {\n        severity: {\n            // the `colorPalette` property is a \"virtual color\" (see: https://panda-css.com/docs/concepts/virtual-color)\n            // we can point it at the root of the token heierarchy, and then reference the tokens below\n            // by setting `colorPalette: 'elements.confirmation'`,\n            // `color: 'colorPalette.fill` will poinr to `elements.confirmation.fill` (in this example)\n            // this can now be used elsewhere in the varaints, see outlined and contained variant\n            success: {\n                root: {\n                    colorPalette: 'elements.confirmation',\n                    color: 'colorPalette.fill',\n                },\n            },\n            info: {\n                root: {\n                    colorPalette: 'elements.information',\n                    color: 'colorPalette.fill',\n                },\n            },\n            warning: {\n                root: {\n                    colorPalette: 'elements.warning',\n                    color: 'colorPalette.fill',\n                },\n            },\n            error: {\n                root: {\n                    colorPalette: 'elements.error',\n                    color: 'colorPalette.fill',\n                },\n            },\n        },\n        variant: {\n            // These variants can rely on us setting `colorPalette` in the `severity` variant above\n            // so, now the borderColor gets set to the correct stroke with this single line:\n            outlined: {\n                root: {\n                    borderColor: 'colorPalette.stroke',\n                },\n            },\n            // same idea applies here:\n            contained: {\n                root: {\n                    backgroundColor: 'colorPalette.fill',\n                    color: 'colorPalette.contrast',\n                },\n            },\n        },\n    },\n    defaultVariants: {\n        severity: 'info',\n        variant: 'contained',\n    },\n});\n\ntype AlertRecipeProps = RecipeVariantProps<typeof alertRecipe>;\ntype AlertRecipeVariantProps = RecipeVariant<typeof alertRecipe>;\ntype AlertSeverity = AlertRecipeVariantProps['severity'];\n\nexport { alertRecipe, alertRecipe as default };\nexport type { AlertRecipeProps, AlertRecipeVariantProps, AlertSeverity };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\n/**\n *  On the surface, building a custom styled button seems simple. However, there are many cross\n *  browser inconsistencies in interactions and accessibility features to consider. Button handles\n *  all of these interactions for you, so you can focus on the styling.\n *\n *  See: https://react-spectrum.adobe.com/react-aria/Button.html\n */\n\n/**\n * Button component allows users to perform actions and make selections with a single tap.\n * It supports different visual styles based on its variants: text (default), contained, and outlined.\n *\n * @variant variant Defines the visual appearance of the button.\n * - `text`: Default style with no background, minimal padding.\n * - `contained`: Button with a solid background and padding.\n * - `outlined`: Button with a border and no background.\n *\n * @variant size Defines the size of the button.\n * - `small`: Smaller button for compact UI areas.\n * - `medium`: Default size for the button.\n * - `large`: Larger button for increased touch targets.\n *\n * @variant color Controls the color scheme of the button.\n * - `primary`: Button styled with the primary color.\n * - `secondary`: Button styled with the secondary color.\n * - `tertiary`: Button styled with a less prominent tertiary color.\n */\n\nconst buttonRecipe = sva({\n    slots: ['root', 'startIcon', 'endIcon'],\n    base: {\n        root: {\n            boxSizing: 'border-box',\n            // button has a font, so we need to ensure this is set\n            // for the most part, manrope should be default font though (cascade down)\n            fontFamily: 'body',\n            gap: '[5px]',\n            textDecoration: 'none',\n            textAlign: 'center',\n\n            // Override HTML button base styles\n            display: 'inline-flex',\n            alignItems: 'center',\n            justifyContent: 'center',\n            backgroundColor: 'transparent',\n            border: '1px solid transparent',\n\n            cursor: 'pointer', // should should probably only apply to interactive buttons ...\n\n            // Defaults apply to all variants\n            fontWeight: 'medium',\n            borderRadius: 'sm',\n\n            // TODO: should state be a variant if/when possible\n            _disabled: {\n                cursor: 'not-allowed',\n            },\n            transition: '[background-color 250ms, color 250ms]',\n        },\n        startIcon: {\n            verticalAlign: 'middle',\n            display: 'flex',\n        },\n        endIcon: {\n            verticalAlign: 'middle',\n            display: 'flex',\n        },\n    },\n\n    // Variants\n    variants: {\n        color: {\n            default: {\n                root: {\n                    colorPalette: 'elements.default',\n                },\n            },\n            primary: {\n                root: {\n                    colorPalette: 'elements.primary',\n                },\n            },\n            secondary: {\n                root: {\n                    colorPalette: 'elements.secondary',\n                },\n            },\n            tertiary: {\n                root: {\n                    colorPalette: 'elements.tertiary',\n                },\n            },\n            warning: {\n                root: {\n                    colorPalette: 'elements.warning',\n                },\n            },\n            error: {\n                root: {\n                    colorPalette: 'elements.error',\n                },\n            },\n            info: {\n                root: {\n                    colorPalette: 'elements.information',\n                },\n            },\n            confirmation: {\n                root: {\n                    colorPalette: 'elements.confirmation',\n                },\n            },\n        },\n        // Visual variant of buttons\n        variant: {\n            text: {\n                root: {\n                    color: 'colorPalette.fill',\n                    _hover: {\n                        _notDisabled: {\n                            backgroundColor: 'elements.overrides.button.text.hovered.fill',\n                        },\n                    },\n                    _disabled: {\n                        color: 'elements.disabled.contrast-reversed',\n                    },\n                },\n            },\n            outlined: {\n                root: {\n                    color: 'colorPalette.fill',\n                    borderColor: 'colorPalette.stroke',\n                    _hover: {\n                        _notDisabled: {\n                            borderColor: 'colorPalette.hovered.stroke',\n                        },\n                    },\n                    _disabled: {\n                        color: 'elements.disabled.contrast-reversed',\n                        borderColor: 'elements.disabled.stroke',\n                    },\n                },\n            },\n            contained: {\n                root: {\n                    color: 'colorPalette.contrast',\n                    backgroundColor: 'colorPalette.fill',\n                    _hover: {\n                        _notDisabled: {\n                            backgroundColor: 'colorPalette.hovered.fill',\n                        },\n                    },\n                    _disabled: {\n                        color: 'elements.disabled.contrast',\n                        backgroundColor: 'elements.disabled.fill',\n                    },\n                },\n            },\n        },\n        size: {\n            // All sizes are assumed to have a one px border\n            // for filled and text, its transparent\n            small: {\n                root: {\n                    padding: '[7px 15px]', // values are `X` - 1px for border\n                    fontSize: 'sm',\n                    lineHeight: '[1rem]',\n                },\n                startIcon: {\n                    fontSize: 'icon.xs',\n                },\n                endIcon: {\n                    fontSize: 'icon.xs',\n                },\n            },\n            medium: {\n                root: {\n                    padding: '[7px 19px]', // values are `X` - 1px for border\n                    fontSize: 'sm',\n                    lineHeight: '[1.25rem]',\n                },\n                startIcon: {\n                    fontSize: '[20px]',\n                },\n                endIcon: {\n                    fontSize: '[20px]',\n                },\n            },\n            large: {\n                root: {\n                    padding: '[15px 23px]', // values are `X` - 1px for border\n                    fontSize: 'md',\n                    lineHeight: '[1.5rem]',\n                },\n                startIcon: {\n                    fontSize: 'icon.sm',\n                },\n                endIcon: {\n                    fontSize: 'icon.sm',\n                },\n            },\n        },\n        // Variants below are for icon button\n        iconOnly: {\n            true: {},\n        },\n        shape: {\n            rounded: {\n                root: {\n                    borderRadius: 'full',\n                },\n            },\n            box: {}, // Box by default\n        },\n    },\n    compoundVariants: [\n        // these are custom, because they have `contrast-reversed` vs just `contrast`\n        {\n            variant: 'outlined',\n            // color: ['default', 'reversed'], // No token group for `reversed`\n            color: 'default',\n            css: {\n                root: {\n                    color: 'colorPalette.contrast-reversed',\n                },\n            },\n        },\n        // All sizes are assumed to have a one px border\n        // for filled and text, its transparent\n        {\n            iconOnly: true,\n            size: 'small',\n            css: {\n                root: {\n                    fontSize: 'icon.sm',\n                    padding: '[3px]', // values are `X` - 1px for border\n                },\n            },\n        },\n        {\n            iconOnly: true,\n            size: 'medium',\n            css: {\n                root: {\n                    fontSize: 'icon.md',\n                    padding: '[3px]', // values are `X` - 1px for border\n                },\n            },\n        },\n        {\n            iconOnly: true,\n            size: 'large',\n            css: {\n                root: {\n                    fontSize: 'icon.lg',\n                    padding: '[7px]', // values are `X` - 1px for border\n                },\n            },\n        },\n    ],\n    defaultVariants: {\n        variant: 'outlined',\n        size: 'medium',\n        color: 'default',\n    },\n});\n\ntype ButtonRecipeProps = RecipeVariantProps<typeof buttonRecipe>;\n\nexport { buttonRecipe, buttonRecipe as default };\nexport type { ButtonRecipeProps };\n","import { css } from '@allenai/varnish-panda-runtime/css';\n\n/**\n *  focusRing styles can be used to apply a CSS class when an element has keyboard focus. This helps\n *  keyboard users determine which element on a page or in an application has keyboard focus as they\n *  navigate around. Focus rings are only visible when interacting with a keyboard so as not to\n *  distract mouse and touch screen users. When we are unable to detect if the user is using a mouse\n *  or touch screen, such as switching in from a different tab, we show the focus ring.\n *\n *  See: https://react-spectrum.adobe.com/react-aria/FocusRing.html\n */\n\nconst focusRingGenericStyles = css.raw({\n    outlineStyle: 'solid',\n    ringColor: {\n        base: 'elements.secondary.fill',\n    },\n    ringOffset: '[-1px]',\n    ringWidth: {\n        base: '0',\n    },\n});\n\nconst focusRing = css.raw(focusRingGenericStyles, {\n    ringWidth: {\n        _focusVisible: '1px',\n    },\n});\n\nconst groupFocusRing = css.raw(focusRingGenericStyles, {\n    ringWidth: {\n        _groupFocusVisible: '1px',\n    },\n});\n\nconst peerFocusRing = css.raw(focusRingGenericStyles, {\n    ringWidth: {\n        _peerFocusVisible: '1px',\n    },\n});\n\nconst childFocusRing = css.raw(focusRingGenericStyles, {\n    ringWidth: {\n        _groupFocusWithin: '1px',\n    },\n});\n\nexport { focusRing as default, focusRing, groupFocusRing, peerFocusRing, childFocusRing };\n","import { type ReactNode } from 'react';\n\nimport { Button as AriaButton, ButtonProps as AriaButtonProps } from 'react-aria-components';\n\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { cx } from '@/utils/cx';\n\nimport buttonRecipe, { ButtonRecipeProps } from '@/components/button/button.styles';\nimport focusRing from '@/components/shared/focusRing.styles';\n\n/**\n *  On the surface, building a custom styled button seems simple. However, there are many cross\n *  browser inconsistencies in interactions and accessibility features to consider. Button handles\n *  all of these interactions for you, so you can focus on the styling.\n *\n *  See: https://react-spectrum.adobe.com/react-aria/Button.html\n */\n\ntype ButtonProps = {\n    className?: string;\n    startIcon?: ReactNode;\n    endIcon?: ReactNode;\n    buttonAriaLabel?: string;\n    children?: ReactNode;\n    startIconClassName?: string;\n    endIconClassName?: string;\n} & AriaButtonProps &\n    ButtonRecipeProps;\n\n/**\n * Button component that renders a button with customizable styles based on variant, size, and color.\n *\n * @param props The props for the button including variant, size, color, and additional HTML button props.\n *\n * @returns A button element with the combined styles from the MUI base button and the custom variants.\n */\nconst Button = ({\n    className,\n    startIconClassName,\n    endIconClassName,\n    startIcon,\n    endIcon,\n    buttonAriaLabel,\n    children,\n    ...rest\n}: ButtonProps) => {\n    const [variantProps, localProps] = buttonRecipe.splitVariantProps(rest);\n    const recipeClassNames = buttonRecipe(variantProps);\n\n    return (\n        <AriaButton\n            className={cx(css(focusRing), recipeClassNames.root, className)}\n            aria-label={buttonAriaLabel}\n            {...localProps}>\n            {startIcon ? (\n                <span className={cx(recipeClassNames.startIcon, startIconClassName)}>\n                    {startIcon}\n                </span>\n            ) : null}\n            {children}\n            {endIcon ? (\n                <span className={cx(recipeClassNames.endIcon, endIconClassName)}>{endIcon}</span>\n            ) : null}\n        </AriaButton>\n    );\n};\n\nexport { Button, Button as default };\nexport type { ButtonProps };\n","import { Button, type ButtonProps } from './Button';\n\ntype IconButtonProps = Omit<\n    ButtonProps,\n    'startIcon' | 'endIcon' | 'startIconClassName' | 'endIconClassName'\n>;\n\nconst IconButton = (props: IconButtonProps) => <Button iconOnly {...props} />;\n\nexport { IconButton, IconButton as default };\nexport type { IconButtonProps };\n","export { Upload } from './Upload';\nexport { Spark } from './Spark';\nexport { Remove } from './Remove';\nexport { Menu } from './Menu';\nexport { Close } from './Close';\nexport { Check } from './Check';\nexport { Add } from './Add';\n","import { createContext, useContext, type PropsWithChildren } from 'react';\n\ninterface SpriteConfig {\n    idPrefix?: string;\n    external?: boolean;\n    sprite?: string | null;\n}\n\nconst defaultSpriteState = {\n    idPrefix: 'vui-svg-',\n    external: true,\n    sprite: '/varnish-ui-sprite.svg',\n};\n\nconst SpriteContext = createContext<SpriteConfig>(defaultSpriteState);\n\nconst SpriteProvider = ({ children, ...spriteState }: PropsWithChildren<SpriteConfig>) => {\n    const spriteStateMerged = {\n        ...defaultSpriteState,\n        ...spriteState,\n    };\n    return <SpriteContext.Provider value={spriteStateMerged}>{children}</SpriteContext.Provider>;\n};\n\nconst useSpriteConfig = () => {\n    return useContext(SpriteContext);\n};\n\nexport { SpriteProvider, useSpriteConfig };\n","import { cva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps, SystemStyleObject } from '@allenai/varnish-panda-runtime/types';\n\nconst svgStyles = cva({\n    base: {\n        width: '[100%]',\n    },\n    variants: {\n        color: {\n            default: {\n                color: 'elements.default.fill',\n            },\n            primary: {\n                color: 'elements.primary.fill',\n            },\n            secondary: {\n                color: 'elements.secondary.fill',\n            },\n            tertiary: {\n                color: 'elements.tertiary.fill',\n            },\n        },\n    },\n});\n\n// Types for handling variant colors and \"system\" colors\ntype SVGRecipePropsBase = RecipeVariantProps<typeof svgStyles>;\ntype SVGRecipeColorProp = Exclude<SVGRecipePropsBase, undefined>['color'];\ntype SystemColorProp = SystemStyleObject['color'];\ntype SVGColorPropType = SystemColorProp | SVGRecipeColorProp | false;\ntype SVGColorProp = {\n    color?: SVGColorPropType;\n};\n\n// Right now this is just the color prop, but it is written to work\n// if variants are added\ntype SVGRecipeProps = Omit<SVGRecipePropsBase, 'color'> & SVGColorProp;\n\nexport { svgStyles };\nexport type { SVGRecipeProps, SVGColorProp, SVGRecipeColorProp, SVGColorPropType, SystemColorProp };\n","import { type ComponentProps, type ComponentType, type SVGAttributes } from 'react';\n\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { cx } from '@/utils/cx';\n\nimport { useSpriteConfig } from './SpriteProvider';\nimport { svgStyles } from './svg.styles';\nimport type {\n    SVGRecipeProps,\n    SVGRecipeColorProp,\n    SVGColorPropType,\n    SystemColorProp,\n} from './svg.styles';\n\ninterface SVGBaseProps extends Omit<SVGAttributes<SVGElement>, 'color'>, SVGRecipeProps {\n    aspectRatio?: string;\n    title?: string;\n}\n\nconst SVGBase = ({\n    viewBox,\n    title,\n    color,\n    aspectRatio,\n    className,\n    role = 'img',\n    children,\n    ...rest\n}: SVGBaseProps) => {\n    const colorStyles = colorProp(color);\n    // we have no other variants, so for now this will do nothing but give a type errors\n    // const [variantProps, localProps] = svgStyles.splitVariantProps(rest);\n\n    return (\n        <svg\n            viewBox={viewBox}\n            className={cx(css(colorStyles, { aspectRatio }), svgStyles(), className)}\n            role={role}\n            {...rest}>\n            {title ? <title>{title}</title> : null}\n            {children}\n        </svg>\n    );\n};\n\ninterface SVGSpriteProps extends SVGBaseProps {\n    forceInternal?: boolean;\n}\n\ntype SVGSpritePropsInternal<T extends ComponentType> = {\n    SVGComponent?: T;\n    use: string;\n} & Pick<SVGSpriteProps, 'forceInternal'> &\n    ComponentProps<T>;\n\nconst SVGSprite = <T extends ComponentType = ComponentType<SVGBaseProps>>({\n    SVGComponent,\n    use,\n    forceInternal = false,\n    ...rest\n}: SVGSpritePropsInternal<T>) => {\n    const SVGComponentRender = SVGComponent || SVGBase;\n    const { idPrefix, external, sprite } = useSpriteConfig();\n\n    const href = !forceInternal && external ? sprite : '';\n    return (\n        <SVGComponentRender {...rest}>\n            <use href={`${href}#${idPrefix}${use}`} />\n        </SVGComponentRender>\n    );\n};\n\nexport const colorProp = (color: SVGColorPropType) => {\n    if (color) {\n        const colorMerged = css.raw(\n            { color: color as SystemColorProp },\n            svgStyles.raw({ color: color as SVGRecipeColorProp })\n        );\n        return colorMerged;\n    }\n    return {};\n};\n\nexport { SVGBase as default, SVGBase, SVGSprite };\nexport type { SVGBaseProps, SVGSpriteProps };\n","import { cva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\nconst iconStyles = cva({\n    base: {\n        aspectRatio: '1',\n        width: '[1em]',\n    },\n    variants: {\n        // colors are handled by SVG\n        // do this the same as MUI ? use fontSize\n        size: {\n            inherit: {},\n            small: {\n                fontSize: 'icon.sm',\n            },\n            medium: {\n                fontSize: 'icon.md',\n            },\n            large: {\n                fontSize: 'icon.lg',\n            },\n        },\n    },\n});\n\ntype IconRecipeProps = Exclude<RecipeVariantProps<typeof iconStyles>, undefined>;\n\nexport { iconStyles };\nexport type { IconRecipeProps };\n","import { type SVGAttributes } from 'react';\n\nimport { cx } from '@/utils/cx';\n\n// import { type IconExtendedRecipeProps } from './Icon';\nimport { iconStyles, type IconRecipeProps } from './icon.styles';\nimport { SVGBase } from '@/components/svg/SVGBase';\nimport type { SVGColorProp } from '@/components/svg/svg.styles';\n\ntype SVGIconProps = Omit<SVGAttributes<SVGElement>, 'color' | 'children'> &\n    IconRecipeProps &\n    SVGColorProp;\n\n// Thin wrapper\n// TODO: re-eval viewBox vs intrinisicWidth/Height\nconst SVGIcon = ({ viewBox, color, className, ...rest }: SVGIconProps) => {\n    const [variantProps, localProps] = iconStyles.splitVariantProps(rest);\n\n    return (\n        <SVGBase\n            viewBox={viewBox}\n            className={cx(iconStyles(variantProps), className)}\n            color={color}\n            {...localProps}\n        />\n    );\n};\n\nexport { SVGIcon as default, SVGIcon };\nexport type { SVGIconProps };\n","'use client';\nimport { type ComponentType } from 'react';\n\nimport { SVGSprite } from '@/components/svg/SVGBase';\nimport { SVGIcon, type SVGIconProps } from './SVGIcon';\n\ntype SVGIconSpritePropsInternal = {\n    icon: string;\n    forceInternal?: boolean;\n} & Omit<SVGIconProps, 'children' | 'viewBox'>;\n\ntype SVGIconSpriteProps = Omit<SVGIconSpritePropsInternal, 'icon'>;\n\nconst SVGIconSprite = ({ icon, ...rest }: SVGIconSpritePropsInternal) => {\n    return <SVGSprite SVGComponent={SVGIcon} use={icon} {...rest} />;\n};\n\n// thin wrapper to create a ReactComponent from an icon id\nconst varnishIconSprite = (icon: string): ComponentType<SVGIconSpriteProps> => {\n    // eslint-disable-next-line @eslint-react/component-hook-factories\n    const VarnishedSprite = (props: SVGIconSpriteProps) => <SVGIconSprite icon={icon} {...props} />;\n    return VarnishedSprite;\n};\n\nexport { SVGIconSprite as default, SVGIconSprite, varnishIconSprite };\nexport type { SVGIconSpriteProps };\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGIconSprite, type SVGIconSpriteProps } from '../icon/SVGIconSprite';\n\nconst Upload = (props: SVGIconSpriteProps) =>\n    <SVGIconSprite {...props} icon=\"upload\" />;\n\nexport { Upload, Upload as default };\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGIconSprite, type SVGIconSpriteProps } from '../icon/SVGIconSprite';\n\nconst Spark = (props: SVGIconSpriteProps) =>\n    <SVGIconSprite {...props} icon=\"spark\" />;\n\nexport { Spark, Spark as default };\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGIconSprite, type SVGIconSpriteProps } from '../icon/SVGIconSprite';\n\nconst Remove = (props: SVGIconSpriteProps) =>\n    <SVGIconSprite {...props} icon=\"remove\" />;\n\nexport { Remove, Remove as default };\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGIconSprite, type SVGIconSpriteProps } from '../icon/SVGIconSprite';\n\nconst Menu = (props: SVGIconSpriteProps) =>\n    <SVGIconSprite {...props} icon=\"menu\" />;\n\nexport { Menu, Menu as default };\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGIconSprite, type SVGIconSpriteProps } from '../icon/SVGIconSprite';\n\nconst Close = (props: SVGIconSpriteProps) =>\n    <SVGIconSprite {...props} icon=\"close\" />;\n\nexport { Close, Close as default };\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGIconSprite, type SVGIconSpriteProps } from '../icon/SVGIconSprite';\n\nconst Check = (props: SVGIconSpriteProps) =>\n    <SVGIconSprite {...props} icon=\"check\" />;\n\nexport { Check, Check as default };\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGIconSprite, type SVGIconSpriteProps } from '../icon/SVGIconSprite';\n\nconst Add = (props: SVGIconSpriteProps) =>\n    <SVGIconSprite {...props} icon=\"add\" />;\n\nexport { Add, Add as default };\n","import { type PropsWithChildren, type ReactNode, type ReactElement, type ElementType } from 'react';\nimport {\n    Heading as AriaHeading,\n    type HeadingProps as AriaHeadingProps,\n    type PressEvent,\n} from 'react-aria-components';\n\nimport { cx } from '@/utils/cx';\n\nimport { alertRecipe, type AlertRecipeProps, type AlertSeverity } from './alert.styles';\n\nimport IconButton, { IconButtonProps } from '@/components/button/IconButton';\nimport * as Icons from '@/components/icons';\n\ninterface AlertProps extends PropsWithChildren, Exclude<AlertRecipeProps, undefined> {\n    icon?: ReactNode;\n    title?: ReactNode; // string?\n    action?: ReactElement;\n    onClose?: (_: PressEvent) => void;\n    closeText?: string;\n    // classNames\n    className?: string;\n    titleClassName?: string;\n    messageClassName?: string;\n    iconClassName?: string;\n    actionClassName?: string;\n}\n\nconst sevrityIconMap: Record<AlertSeverity, ElementType> = {\n    info: Icons.Check,\n    success: Icons.Check,\n    warning: Icons.Close,\n    error: Icons.Close,\n};\n\nconst Alert = ({\n    icon,\n    action,\n    title,\n    children,\n    onClose,\n    closeText = 'Close',\n    className,\n    titleClassName,\n    messageClassName,\n    iconClassName,\n    actionClassName,\n    ...rest\n}: AlertProps) => {\n    const [variantProps, localProps] = alertRecipe.splitVariantProps(rest);\n    const alertClassNames = alertRecipe(variantProps);\n    const { severity = 'info' } = variantProps;\n\n    const actionComponent =\n        action ?? (onClose ? <DefaultCloseAction onClose={onClose} closeText={closeText} /> : null);\n\n    return (\n        <div className={cx(alertClassNames.root, className)} {...localProps}>\n            {icon !== false ? (\n                <div className={cx(alertClassNames.icon, iconClassName)} {...localProps}>\n                    {icon || <DefaultAlertIcon severity={severity} />}\n                </div>\n            ) : null}\n            <div className={cx(alertClassNames.message, messageClassName)}>\n                {title ? <AlertTitle className={titleClassName}>{title}</AlertTitle> : null}\n                {children}\n            </div>\n            {actionComponent ? (\n                <div className={cx(alertClassNames.actions, actionClassName)} {...localProps}>\n                    {actionComponent}\n                </div>\n            ) : null}\n        </div>\n    );\n};\n\nconst AlertTitle = ({\n    level,\n    className,\n    children,\n}: Pick<AriaHeadingProps, 'level' | 'className' | 'children'>) => {\n    const alertClassNames = alertRecipe();\n\n    return (\n        <AriaHeading level={level} className={cx(alertClassNames.title, className)}>\n            {children}\n        </AriaHeading>\n    );\n};\n\nconst AlertCloseButton = ({ children, className, ...props }: IconButtonProps) => {\n    const alertClassNames = alertRecipe();\n    return (\n        <IconButton className={cx(alertClassNames.closeButton, className)} {...props}>\n            {children}\n        </IconButton>\n    );\n};\n\nconst DefaultCloseAction = ({ onClose, closeText }: Pick<AlertProps, 'onClose' | 'closeText'>) => {\n    return (\n        <AlertCloseButton onPress={onClose} aria-label={closeText}>\n            <Icons.Close />\n        </AlertCloseButton>\n    );\n};\n\nconst DefaultAlertIcon = ({ severity }: { severity: AlertSeverity }) => {\n    const Icon = sevrityIconMap[severity];\n    return <Icon />;\n};\n\nexport { Alert, AlertCloseButton, AlertTitle, Alert as default };\nexport type { AlertProps };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\nconst avatarRecipe = sva({\n    slots: ['root', 'image'],\n    base: {\n        root: {\n            cursor: 'pointer',\n            overflow: 'hidden',\n            display: 'flex',\n            justifyContent: 'center',\n            alignItems: 'center',\n            textAlign: 'center',\n            backgroundColor: 'colorPalette.fill',\n            color: 'colorPalette.contrast',\n            // this forces the SVG to this height\n            // it is not very customizable\n            // may want to re-think this\n            _icon: {\n                width: '[100%]',\n            },\n        },\n        image: {\n            width: '[100%]',\n            height: '[100%]',\n            objectFit: 'cover',\n        },\n    },\n    variants: {\n        size: {\n            small: {\n                root: {\n                    fontSize: '[0.75rem]',\n                    width: '[1.5rem]',\n                    height: '[1.5rem]',\n                },\n            },\n            medium: {\n                root: {\n                    fontSize: '[1rem]',\n                    width: '[2rem]',\n                    height: '[2rem]',\n                },\n            },\n            large: {\n                root: {\n                    fontSize: '[1.125rem]',\n                    width: '[2.25rem]',\n                    height: '[2.25rem]',\n                },\n            },\n        },\n        color: {\n            default: {\n                root: {\n                    colorPalette: 'elements.default',\n                },\n            },\n            primary: {\n                root: {\n                    colorPalette: 'elements.primary',\n                },\n            },\n            secondary: {\n                root: {\n                    colorPalette: 'elements.secondary',\n                },\n            },\n            tertiary: {\n                root: {\n                    colorPalette: 'elements.tertiary',\n                },\n            },\n        },\n        shape: {\n            square: {\n                root: {\n                    borderRadius: 'sm',\n                },\n            },\n            circle: {\n                root: {\n                    borderRadius: '[50%]',\n                },\n            },\n        },\n    },\n    defaultVariants: {\n        size: 'medium',\n        shape: 'square',\n        color: 'default',\n    },\n});\n\ntype AvatarRecipeProps = RecipeVariantProps<typeof avatarRecipe>;\n\nexport { avatarRecipe, avatarRecipe as default };\nexport type { AvatarRecipeProps };\n","import { type ReactNode } from 'react';\n\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { cx } from '@/utils/cx';\n\nimport avatarRecipe, { AvatarRecipeProps } from './avatar.styles';\n\ntype AvatarProps = {\n    className?: string;\n    src?: string;\n    alt?: string;\n    children?: ReactNode;\n} & AvatarRecipeProps;\n\nfunction Avatar({ className, src, alt, children, ...rest }: AvatarProps) {\n    const hasImage = !!src; // Check if an image is present\n    const [variantProps, localProps] = avatarRecipe.splitVariantProps(rest);\n\n    const recipeClassNames = avatarRecipe.raw(variantProps);\n\n    return (\n        <div className={cx(css(recipeClassNames.root), className)} {...localProps}>\n            {hasImage ? (\n                <img src={src} alt={alt} className={css(recipeClassNames.image)} />\n            ) : (\n                children\n            )}\n        </div>\n    );\n}\n\nexport { Avatar, Avatar as default };\nexport type { AvatarProps };\n","import { type ReactNode } from 'react';\n\nimport { Link as AriaLink, LinkProps as AriaLinkProps } from 'react-aria-components';\n\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { cx } from '@/utils/cx';\n\nimport buttonRecipe, { ButtonRecipeProps } from '@/components/button/button.styles';\nimport focusRing from '@/components/shared/focusRing.styles';\n\n/**\n *  On the surface, building a custom styled button seems simple. However, there are many cross\n *  browser inconsistencies in interactions and accessibility features to consider. Button handles\n *  all of these interactions for you, so you can focus on the styling.\n *\n *  See: https://react-spectrum.adobe.com/react-aria/Button.html\n */\n\ntype ButtonLinkProps = {\n    className?: string;\n    startIcon?: ReactNode;\n    endIcon?: ReactNode;\n    buttonAriaLabel?: string;\n    children?: ReactNode;\n    startIconClassName?: string;\n    endIconClassName?: string;\n} & AriaLinkProps &\n    ButtonRecipeProps;\n\n/**\n * Button component that renders a button with customizable styles based on variant, size, and color.\n *\n * @param props The props for the button including variant, size, color, and additional HTML button props.\n *\n * @returns A button element with the combined styles from the MUI base button and the custom variants.\n */\nconst ButtonLink = ({\n    className,\n    startIconClassName,\n    endIconClassName,\n    startIcon,\n    endIcon,\n    buttonAriaLabel,\n    children,\n    ...rest\n}: ButtonLinkProps) => {\n    const [variantProps, localProps] = buttonRecipe.splitVariantProps(rest);\n    const recipeClassNames = buttonRecipe(variantProps);\n\n    return (\n        <AriaLink\n            className={cx(css(focusRing), recipeClassNames.root, className)}\n            aria-label={buttonAriaLabel}\n            {...localProps}>\n            {startIcon ? (\n                <span className={cx(recipeClassNames.startIcon, startIconClassName)}>\n                    {startIcon}\n                </span>\n            ) : null}\n            {children}\n            {endIcon ? (\n                <span className={cx(recipeClassNames.endIcon, endIconClassName)}>{endIcon}</span>\n            ) : null}\n        </AriaLink>\n    );\n};\n\nexport { ButtonLink, ButtonLink as default };\nexport type { ButtonLinkProps };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\nconst cardRecipe = sva({\n    slots: ['root', 'header', 'body', 'footer', 'media'],\n    base: {\n        root: {\n            border: '1px solid',\n            backgroundColor: 'background.opacity-100',\n            borderColor: 'stroke.opacity-10',\n            borderRadius: '[4px]',\n            display: 'grid',\n            fontSize: '[17px]',\n            gridTemplateRows: 'auto auto 1fr auto',\n            gridTemplateAreas: `\n                \"header\"\n                \"media\"\n                \"body\"\n                \"footer\"\n            `,\n            gap: '[10px]',\n            gridAutoColumns: '[minmax(200px, 1fr)]',\n            maxWidth: '[100%]',\n            overflow: 'hidden',\n        },\n        header: {\n            color: 'text',\n            padding: '[10px]',\n            width: '[100%]',\n            gridArea: 'header',\n        },\n        media: {\n            color: 'text',\n            width: '[100%]',\n            gridArea: 'media',\n        },\n        body: {\n            color: 'text',\n            padding: '[10px]',\n            width: '[100%]',\n            gridArea: 'body',\n        },\n        footer: {\n            color: 'text',\n            padding: '[10px]',\n            width: '[100%]',\n            gridArea: 'footer',\n        },\n    },\n});\n\ntype CardRecipeProps = RecipeVariantProps<typeof cardRecipe>;\n\nexport { cardRecipe, cardRecipe as default };\nexport type { CardRecipeProps };\n","import { PropsWithChildren, ReactNode } from 'react';\n\nimport cardRecipe, { CardRecipeProps } from './card.styles';\nimport { cx } from '@/utils/cx';\n\ntype CardProps = {\n    className?: string;\n    children?: ReactNode;\n    ariaLabel?: string;\n} & CardRecipeProps;\n\nconst Card = ({ className, children, ariaLabel, ...rest }: PropsWithChildren<CardProps>) => {\n    const [variantProps, localProps] = cardRecipe.splitVariantProps(rest);\n    const recipeClassNames = cardRecipe(variantProps);\n\n    return (\n        <div\n            className={cx(recipeClassNames.root, className)}\n            aria-label={ariaLabel}\n            {...localProps}>\n            {children}\n        </div>\n    );\n};\n\nexport { Card };\nexport type { CardProps };\n","import { PropsWithChildren, ReactNode } from 'react';\n\nimport cardRecipe, { CardRecipeProps } from './card.styles';\nimport { cx } from '@/utils/cx';\n\ntype CardBodyProps = {\n    className?: string;\n    children?: ReactNode;\n    ariaLabel?: string;\n} & CardRecipeProps;\n\nconst CardBody = ({\n    className,\n    children,\n    ariaLabel,\n    ...rest\n}: PropsWithChildren<CardBodyProps>) => {\n    const [variantProps, localProps] = cardRecipe.splitVariantProps(rest);\n    const recipeClassNames = cardRecipe(variantProps);\n\n    return (\n        <div\n            className={cx(recipeClassNames.body, className)}\n            aria-label={ariaLabel}\n            {...localProps}>\n            {children}\n        </div>\n    );\n};\n\nexport { CardBody };\nexport type { CardBodyProps };\n","import { PropsWithChildren, ReactNode } from 'react';\n\nimport cardRecipe, { CardRecipeProps } from './card.styles';\nimport { cx } from '@/utils/cx';\n\ntype CardFooterProps = {\n    className?: string;\n    children?: ReactNode;\n    ariaLabel?: string;\n} & CardRecipeProps;\n\nconst CardFooter = ({\n    className,\n    children,\n    ariaLabel,\n    ...rest\n}: PropsWithChildren<CardFooterProps>) => {\n    const [variantProps, localProps] = cardRecipe.splitVariantProps(rest);\n    const recipeClassNames = cardRecipe(variantProps);\n\n    return (\n        <footer\n            className={cx(recipeClassNames.footer, className)}\n            aria-label={ariaLabel}\n            {...localProps}>\n            {children}\n        </footer>\n    );\n};\n\nexport { CardFooter };\nexport type { CardFooterProps };\n","import { PropsWithChildren, ReactNode } from 'react';\n\nimport cardRecipe, { CardRecipeProps } from './card.styles';\nimport { cx } from '@/utils/cx';\n\ntype CardHeaderProps = {\n    className?: string;\n    children?: ReactNode;\n    ariaLabel?: string;\n} & CardRecipeProps;\n\nconst CardHeader = ({\n    className,\n    children,\n    ariaLabel,\n    ...rest\n}: PropsWithChildren<CardHeaderProps>) => {\n    const [variantProps, localProps] = cardRecipe.splitVariantProps(rest);\n    const recipeClassNames = cardRecipe(variantProps);\n\n    return (\n        <div\n            className={cx(recipeClassNames.header, className)}\n            aria-label={ariaLabel}\n            {...localProps}>\n            {children}\n        </div>\n    );\n};\n\nexport { CardHeader };\nexport type { CardHeaderProps };\n","import { PropsWithChildren, ReactNode } from 'react';\n\nimport cardRecipe, { CardRecipeProps } from './card.styles';\nimport { cx } from '@/utils/cx';\n\ntype CardMediaProps = {\n    className?: string;\n    children?: ReactNode;\n    ariaLabel?: string;\n} & CardRecipeProps;\n\nconst CardMedia = ({\n    className,\n    children,\n    ariaLabel,\n    ...rest\n}: PropsWithChildren<CardMediaProps>) => {\n    const [variantProps, localProps] = cardRecipe.splitVariantProps(rest);\n    const recipeClassNames = cardRecipe(variantProps);\n\n    return (\n        <div\n            className={cx(recipeClassNames.media, className)}\n            aria-label={ariaLabel}\n            {...localProps}>\n            {children}\n        </div>\n    );\n};\n\nexport { CardMedia };\nexport type { CardMediaProps };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\n/**\n *  Checkboxes can be built with the <input> HTML element, but this can be difficult to style.\n *   Checkbox helps achieve accessible checkboxes that can be styled as needed.\n *\n *  See: https://react-spectrum.adobe.com/react-aria/Checkbox.html\n */\n\n/**\n * @remarks A checkbox recipe\n *\n * @param size - Size of the checkbox, values are `small`, `medium` (default), and `large`\n * @param color - Color of the checkbox, values are:\n *   `primary` (default), `secondary`, `tertiary`, `teal`, and `cream`\n */\n\nconst checkboxRecipe = sva({\n    slots: ['root', 'box', 'icon'],\n    base: {\n        root: {\n            display: 'flex',\n            gap: '[8px]',\n            alignItems: 'center',\n            cursor: 'pointer',\n            color: 'text',\n            colorPalette: 'elements.overrides.form.checkbox',\n            _disabled: {\n                colorPalette: 'elements.overrides.form.checkbox.disabled',\n                cursor: 'not-allowed',\n            },\n            _invalid: {\n                colorPalette: 'elements.overrides.form.checkbox.error',\n            },\n            _componentReadOnly: {\n                cursor: 'default',\n            },\n        },\n        box: {\n            boxSizing: 'border-box',\n            width: '[20px]',\n            height: '[20px]',\n            flexShrink: '0',\n            display: 'flex',\n            alignItems: 'center',\n            justifyContent: 'center',\n            borderRadius: 'xs',\n            border: '[1px solid]',\n\n            // the background, unselected, is just the `default` fill\n            backgroundColor: 'elements.overrides.form.checkbox.fill',\n            borderColor: 'colorPalette.stroke',\n\n            _groupSelected: {\n                borderColor: 'transparent',\n                backgroundColor: 'colorPalette.fill',\n            },\n\n            _groupHoverNotDisabledNotSelectedNotInvalid: {\n                borderColor: 'colorPalette.hovered.stroke',\n            },\n        },\n        icon: {\n            width: '[0.625rem]',\n            height: '[auto]',\n            // this sets the color of the svg\n            // if we allow passing in Icons this should probably move to `box`\n            color: 'colorPalette.contrast',\n        },\n    },\n    variants: {\n        size: {\n            small: {\n                root: {\n                    fontSize: '[12px]',\n                },\n                box: {\n                    width: '[0.75rem]',\n                    height: '[0.75rem]',\n                },\n            },\n            medium: {\n                root: {\n                    fontSize: 'sm',\n                },\n                box: {\n                    width: '[0.875rem]',\n                    height: '[0.875rem]',\n                },\n            },\n            large: {\n                root: {\n                    fontSize: 'md',\n                },\n                box: {\n                    width: '[1.25rem]',\n                    height: '[1.25rem]',\n                },\n                icon: {\n                    width: '[0.75rem]',\n                },\n            },\n        },\n        color: {\n            default: {\n                root: {\n                    // overrides only apply for selected state\n                    // the default root colorPalette is `elements.overrides.form.checkbox`\n                    // which provides the unchecked states for `default` (i.e. default fill, stroke, hover)\n                    _selected: {\n                        colorPalette: 'elements.overrides.form.checkbox.checked',\n                    },\n                },\n            },\n            primary: {\n                root: {\n                    colorPalette: 'elements.primary',\n                },\n            },\n            secondary: {\n                root: {\n                    colorPalette: 'elements.secondary',\n                },\n            },\n            tertiary: {\n                root: {\n                    colorPalette: 'elements.tertiary',\n                },\n            },\n        },\n    },\n    defaultVariants: {\n        size: 'medium',\n        color: 'primary',\n    },\n});\n\ntype CheckboxRecipeProps = RecipeVariantProps<typeof checkboxRecipe>;\n\nexport { checkboxRecipe, checkboxRecipe as default };\nexport type { CheckboxRecipeProps };\n","import { cva, RecipeVariantProps } from '@allenai/varnish-panda-runtime/css';\n\n/**\n * @remarks A label recipe\n *\n * @param size - Size of the label, values are `small`, `medium` (default), and `large`\n *\n */\n\nconst labelRecipe = cva({\n    base: {\n        display: 'block',\n        cursor: 'default',\n        color: 'text',\n        _groupDisabled: {\n            color: 'text.disabled',\n        },\n        _groupInvalid: {\n            color: 'text.error',\n        },\n    },\n    variants: {\n        size: {\n            small: {\n                fontSize: '[12px]',\n            },\n            medium: {\n                fontSize: 'sm',\n            },\n            large: {\n                fontSize: 'md',\n            },\n        },\n    },\n    defaultVariants: {\n        size: 'medium',\n    },\n});\n\ntype LabelRecipeProps = RecipeVariantProps<typeof labelRecipe>;\n\nexport { labelRecipe, labelRecipe as default };\nexport type { LabelRecipeProps };\n","import { Label as AriaLabel, LabelProps as AriaLabelProps } from 'react-aria-components';\n\nimport { cx } from '@/utils/cx';\n\nimport { labelRecipe, LabelRecipeProps } from './label.styles';\n\ntype LabelProps = {\n    className?: string;\n} & AriaLabelProps &\n    LabelRecipeProps;\n\nconst Label = ({ className, ...rest }: LabelProps) => {\n    const [variantProps, localProps] = labelRecipe.splitVariantProps(rest);\n    // dont render empty labels\n    if (!localProps.children) {\n        return null;\n    }\n    return <AriaLabel {...localProps} className={cx(labelRecipe(variantProps), className)} />;\n};\n\nexport { Label };\nexport type { LabelProps };\n","import { cva, RecipeVariantProps } from '@allenai/varnish-panda-runtime/css';\n\nconst fieldErrorRecipe = cva({\n    base: {\n        display: 'block',\n        color: 'text.error',\n    },\n    variants: {\n        size: {\n            small: {\n                fontSize: '[12px]',\n            },\n            medium: {\n                fontSize: 'sm',\n            },\n            large: {\n                fontSize: 'md',\n            },\n        },\n    },\n    defaultVariants: {\n        size: 'medium',\n    },\n});\n\ntype FieldErrorRecipeProps = RecipeVariantProps<typeof fieldErrorRecipe>;\n\nexport { fieldErrorRecipe, fieldErrorRecipe as default };\nexport type { FieldErrorRecipeProps };\n","import {\n    FieldError as AriaFieldError,\n    FieldErrorProps as AriaFieldErrorProps,\n} from 'react-aria-components';\n\nimport { cx } from '@/utils/cx';\n\nimport { fieldErrorRecipe, FieldErrorRecipeProps } from './fieldError.styles';\n\ntype FieldErrorProps = {\n    className?: string;\n} & AriaFieldErrorProps &\n    FieldErrorRecipeProps;\n\nconst FieldError = ({ className, ...rest }: FieldErrorProps) => {\n    const [variantProps, localProps] = fieldErrorRecipe.splitVariantProps(rest);\n    // dont render empty field error\n    if (!localProps.children) {\n        return null;\n    }\n    return (\n        <AriaFieldError {...localProps} className={cx(fieldErrorRecipe(variantProps), className)} />\n    );\n};\n\nexport { FieldError };\nexport type { FieldErrorProps };\n","import { cva, RecipeVariantProps } from '@allenai/varnish-panda-runtime/css';\n\nconst descriptionRecipe = cva({\n    base: {\n        display: 'block',\n        color: 'text',\n        _groupDisabled: {\n            color: 'text.disabled',\n        },\n    },\n    variants: {\n        size: {\n            small: {\n                fontSize: '[12px]',\n            },\n            medium: {\n                fontSize: 'sm',\n            },\n            large: {\n                fontSize: 'md',\n            },\n        },\n    },\n    defaultVariants: {\n        size: 'medium',\n    },\n});\n\ntype DescriptionRecipeProps = RecipeVariantProps<typeof descriptionRecipe>;\n\nexport { descriptionRecipe, descriptionRecipe as default };\nexport type { DescriptionRecipeProps };\n","import { Text as AriaText, TextProps as AriaTextProps } from 'react-aria-components';\n\nimport { cx } from '@/utils/cx';\n\nimport { descriptionRecipe, DescriptionRecipeProps } from './description.styles';\n\ntype DescriptionProps = {\n    className?: string;\n} & AriaTextProps &\n    DescriptionRecipeProps;\n\nconst Description = ({ className, ...rest }: DescriptionProps) => {\n    const [variantProps, localProps] = descriptionRecipe.splitVariantProps(rest);\n    // dont render empty description\n    if (!localProps.children) {\n        return null;\n    }\n    return (\n        <AriaText\n            {...localProps}\n            slot=\"description\"\n            className={cx(descriptionRecipe(variantProps), className)}\n        />\n    );\n};\n\nexport { Description };\nexport type { DescriptionProps };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\n/**\n * Checkbox groups can be built in HTML with the <fieldset> and <input> elements, however these\n * can be difficult to style. CheckboxGroup helps achieve accessible checkbox groups that can be\n * styled as needed.\n *\n *  See: https://react-spectrum.adobe.com/react-aria/CheckboxGroup.html\n */\n\nconst checkboxGroupRecipe = sva({\n    slots: ['root', 'label', 'description', 'error'],\n    base: {\n        root: {\n            display: 'flex',\n            flexDir: 'column',\n            gap: '[2px]',\n        },\n        label: {},\n        description: {},\n        error: {},\n    },\n});\n\ntype CheckboxGroupRecipeProps = RecipeVariantProps<typeof checkboxGroupRecipe>;\n\nexport { checkboxGroupRecipe, checkboxGroupRecipe as default };\nexport type { CheckboxGroupRecipeProps };\n","import { ReactNode, createContext } from 'react';\nimport {\n    CheckboxGroup as AriaCheckboxGroup,\n    CheckboxGroupProps as AriaCheckboxGroupProps,\n    ValidationResult,\n} from 'react-aria-components';\n\nimport { cx } from '@/utils/cx';\n\nimport { Label } from '@/components/field/label/Label';\nimport { FieldError } from '@/components/field/fieldError/FieldError';\nimport { Description } from '@/components/field/description/Description';\nimport { checkboxGroupRecipe } from '@/components/checkboxGroup/checkboxGroup.styles';\nimport { checkboxRecipe, type CheckboxRecipeProps } from '@/components/checkbox/checkbox.styles';\n\nexport const CheckboxVariantContext = createContext<CheckboxRecipeProps>(undefined);\n\n/**\n * Checkbox groups can be built in HTML with the <fieldset> and <input> elements, however these\n * can be difficult to style. CheckboxGroup helps achieve accessible checkbox groups that can be\n * styled as needed.\n *\n *  See: https://react-spectrum.adobe.com/react-aria/CheckboxGroup.html\n */\n\ntype CheckboxGroupProps = Omit<AriaCheckboxGroupProps, 'children'> &\n    CheckboxRecipeProps & {\n        label?: string;\n        children?: ReactNode;\n        description?: string;\n        errorMessage?: string | ((validation: ValidationResult) => string);\n        className?: string;\n        labelClassName?: string;\n        descriptionClassName?: string;\n        errorClassName?: string;\n    };\n\nfunction CheckboxGroup({\n    label,\n    children,\n    description,\n    errorMessage,\n    className,\n    labelClassName,\n    descriptionClassName,\n    errorClassName,\n    ...props\n}: CheckboxGroupProps) {\n    const [groupVariantProps, rest] = checkboxGroupRecipe.splitVariantProps(props);\n    const [checkboxVariantProps, localProps] = checkboxRecipe.splitVariantProps(rest);\n\n    const { size } = props;\n\n    const recipeClassNames = checkboxGroupRecipe(groupVariantProps);\n    return (\n        <AriaCheckboxGroup {...localProps} className={cx(recipeClassNames.root, className)}>\n            <CheckboxVariantContext.Provider value={checkboxVariantProps}>\n                <Label size={size} className={cx(recipeClassNames.label, labelClassName)}>\n                    {label}\n                </Label>\n                {children}\n                <Description\n                    size={size}\n                    className={cx(recipeClassNames.description, descriptionClassName)}>\n                    {description}\n                </Description>\n                <FieldError size={size} className={cx(recipeClassNames.error, errorClassName)}>\n                    {errorMessage}\n                </FieldError>\n            </CheckboxVariantContext.Provider>\n        </AriaCheckboxGroup>\n    );\n}\n\nexport { CheckboxGroup, CheckboxGroup as default };\nexport type { CheckboxGroupProps };\n","import { useContext } from 'react';\nimport {\n    Checkbox as AriaCheckbox,\n    CheckboxProps as AriaCheckboxProps,\n} from 'react-aria-components';\n\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { cx } from '@/utils/cx';\n\nimport { Check, Remove as Indeterminate } from '@/components/icons';\n\nimport focusRing from '@/components/shared/focusRing.styles';\nimport checkboxRecipe, { CheckboxRecipeProps } from '@/components/checkbox/checkbox.styles';\nimport { CheckboxVariantContext } from '@/components/checkboxGroup/CheckboxGroup';\n\n/**\n *  Checkboxes can be built with the <input> HTML element, but this can be difficult to style.\n *  Checkbox helps achieve accessible checkboxes that can be styled as needed.\n *\n *  See: https://react-spectrum.adobe.com/react-aria/Checkbox.html\n */\n\ntype CheckboxProps = {\n    className?: string;\n    iconClassName?: string;\n    boxClassName?: string;\n} & AriaCheckboxProps &\n    CheckboxRecipeProps;\n\nfunction Checkbox({ className, boxClassName, iconClassName, children, ...rest }: CheckboxProps) {\n    const [variantProps, localProps] = checkboxRecipe.splitVariantProps(rest);\n    const groupProps = useContext(CheckboxVariantContext);\n    // `raw` receipe is required to be able to merge css objects (used in focus ring)\n    const recipeClassNames = checkboxRecipe.raw({ ...groupProps, ...variantProps });\n    return (\n        <AriaCheckbox\n            {...localProps}\n            // we need to wrap the `raw` focusRing and `raw` recipeClassNames.root in `css()` to merge them\n            // there is no garauntee which class will take precidence\n            className={cx('group', css(focusRing, recipeClassNames.root), className)}>\n            {({ isSelected, isIndeterminate }) => (\n                <>\n                    <div className={cx(css(recipeClassNames.box), boxClassName)}>\n                        {isIndeterminate ? (\n                            <Indeterminate\n                                aria-hidden\n                                className={cx(css(recipeClassNames.icon), iconClassName)}\n                            />\n                        ) : isSelected ? (\n                            <Check\n                                aria-hidden\n                                className={cx(css(recipeClassNames.icon), iconClassName)}\n                            />\n                        ) : null}\n                    </div>\n                    {children}\n                </>\n            )}\n        </AriaCheckbox>\n    );\n}\n\nexport { Checkbox, Checkbox as default };\nexport type { CheckboxProps };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\n\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\nconst chipGroupRecipe = sva({\n    slots: ['root', 'chipList', 'label', 'description', 'label', 'error'],\n    base: {\n        root: {\n            display: 'flex',\n            flexDirection: 'column',\n            gap: '1',\n        },\n        chipList: {\n            display: 'flex',\n            flexWrap: 'wrap',\n            gap: '1',\n        },\n        label: {\n            color: 'text.primary',\n        },\n        description: {\n            color: 'text.primary',\n        },\n        error: {},\n    },\n});\n\ntype ChipGroupRecipeProps = RecipeVariantProps<typeof chipGroupRecipe>;\n\nexport { chipGroupRecipe, ChipGroupRecipeProps as default };\nexport type { ChipGroupRecipeProps };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\n\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\nconst chipRecipe = sva({\n    slots: ['root', 'text', 'removeButton'],\n    base: {\n        root: {\n            boxSizing: 'border-box',\n            display: 'flex',\n            alignItems: 'center',\n            border: '[1px solid transparent]',\n\n            _disabled: {\n                cursor: 'not-allowed',\n                colorPalette: 'elements.disabled',\n                // color: 'text.primary',\n                // backgroundColor: 'gray.20',\n                // borderColor: 'gray.40',\n            },\n\n            // link chips\n            // TODO: Is this the best way? hasHref (internal)variant overkill ?\n            '&[data-href]': {\n                cursor: 'pointer',\n                textDecoration: 'underline',\n            },\n\n            // TODO: deal with selected / hover / disabled\n            // _selected { ... }\n            //\n            // '&[aria-selected=false]': {\n            //     _hover: {\n            //         _notDisabled: {\n            //             borderColor: 'green.40',\n            //         },\n            //     },\n            // },\n            // '&[data-selected]': {\n            //     _hover: {\n            //         _notDisabled: {\n            //             borderColor: 'green.40',\n            //         },\n            //     },\n            //     borderColor: 'green.100',\n            // },\n            //\n            // _hover: {\n            //     _selected: {\n            //         //\n            //     },\n            // },\n        },\n        text: {},\n        removeButton: {\n            display: 'inline-flex',\n            alignItems: 'center',\n            background: '[none]',\n\n            border: 'none',\n            cursor: 'pointer',\n            padding: '0',\n\n            // Default to the same as text color\n            // `default` | `faded` variants override\n            color: '[currentColor]',\n\n            // default Icon size:\n            fontSize: '[16px]',\n\n            _disabled: {\n                cursor: 'not-allowed',\n            },\n        },\n    },\n    variants: {\n        variant: {\n            contained: {\n                root: {\n                    color: 'colorPalette.contrast',\n                    backgroundColor: 'colorPalette.fill',\n                },\n            },\n            outlined: {\n                root: {\n                    borderColor: 'colorPalette.stroke',\n                    color: 'colorPalette.fill',\n                },\n            },\n        },\n        shape: {\n            rounded: {\n                root: {\n                    borderRadius: 'full',\n                },\n            },\n            box: {\n                root: {\n                    borderRadius: '[4px]',\n                },\n            },\n        },\n        color: {\n            default: {\n                root: {\n                    colorPalette: 'elements.default',\n                },\n            },\n            faded: {\n                root: {\n                    colorPalette: 'elements.faded',\n                },\n            },\n            primary: {\n                root: {\n                    colorPalette: 'elements.primary',\n                },\n            },\n            secondary: {\n                root: {\n                    colorPalette: 'elements.secondary',\n                },\n            },\n            tertiary: {\n                root: {\n                    colorPalette: 'elements.tertiary',\n                },\n            },\n        },\n\n        size: {\n            xsmall: {\n                root: {\n                    height: '[24px]',\n                    padding: '[3px 5px]', // padding -= 1 because of border\n                    fontSize: '[12px]',\n                    gap: '[4px]',\n                },\n                text: {},\n            },\n            small: {\n                root: {\n                    height: '[32px]',\n                    padding: '[3px 7px]', // padding -= 1 because of border\n                    fontSize: '[14px]',\n                    gap: '[6px]',\n                },\n                text: {},\n            },\n            medium: {\n                root: {\n                    height: '[36px]',\n                    padding: '[7px 15px]', // padding -= 1 because of border\n                    fontSize: 'sm',\n                    gap: '[6px]',\n\n                    // has icon paddingLeft smaller\n                },\n                text: {},\n            },\n            large: {\n                root: {\n                    height: '[48px]',\n                    padding: '[11px 19px]', // padding -= 1 because of border\n                    fontSize: 'md',\n                    gap: '[8px]',\n                },\n                text: {},\n                removeButton: {\n                    fontSize: '[32px]',\n                },\n            },\n        },\n        // this might be needed\n        hasIcon: {\n            true: {},\n        },\n    },\n    compoundVariants: [\n        {\n            color: ['default', 'faded'],\n            css: {\n                removeButton: {\n                    // disabled will get the text color still\n                    _notDisabled: {\n                        color: 'elements.secondary.fill',\n                    },\n                },\n            },\n        },\n    ],\n    defaultVariants: {\n        color: 'default',\n        size: 'medium',\n        variant: 'outlined',\n        shape: 'rounded',\n    },\n});\n\ntype ChipRecipeProps = RecipeVariantProps<typeof chipRecipe>;\n\nexport { chipRecipe, ChipRecipeProps as default };\nexport type { ChipRecipeProps };\n","import { Tag as AriaChip, TagProps as AriaChipProps, Button } from 'react-aria-components';\nimport { useContext, type ReactNode } from 'react';\n\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { cx } from '@/utils/cx';\n\nimport { Close } from '@/components/icons';\n\nimport focusRing from '@/components/shared/focusRing.styles';\n\nimport { chipRecipe, type ChipRecipeProps } from './chip.styles';\nimport { ChipGroupContext } from '@/components/chip/ChipGroup';\n\nexport type ChipItem = {\n    id: string;\n    text?: string;\n    icon?: ReactNode;\n    href?: string;\n    isDisabled?: boolean;\n    className?: string;\n    removeButtonClassName?: string;\n    onClick: AriaChipProps['onClick']; // TODO: Fix props https://github.com/allenai/varnish/issues/1200\n};\n\ntype ChipProps = AriaChipProps & ChipItem & ChipRecipeProps;\n\nconst Chip = ({ icon, text, className, removeButtonClassName, ...rest }: ChipProps) => {\n    // Get the group props first, we will merge when rest and split the variantProps and localProps\n    const groupProps = useContext(ChipGroupContext);\n\n    const [variantProps, localProps] = chipRecipe.splitVariantProps({\n        ...groupProps,\n        ...rest,\n        hasIcon: !!icon,\n    });\n    const recipeClassNames = chipRecipe(variantProps);\n    return (\n        <AriaChip {...localProps} className={cx(css(focusRing), recipeClassNames.root, className)}>\n            {(renderProps) => (\n                <>\n                    {icon}\n                    <span className={recipeClassNames.text}>{text}</span>\n                    {renderProps.allowsRemoving && (\n                        <Button\n                            slot=\"remove\"\n                            className={cx(recipeClassNames.removeButton, removeButtonClassName)}>\n                            <Close size=\"medium\" />\n                        </Button>\n                    )}\n                </>\n            )}\n        </AriaChip>\n    );\n};\n\nexport { Chip };\nexport type { ChipProps };\n","import {\n    TagGroup as AriaChipGroup,\n    TagGroupProps as AriaChipGroupProps,\n    TagList as AriaChipList,\n    FieldError,\n    Label,\n} from 'react-aria-components';\n\nimport { createContext, type PropsWithChildren, type ReactNode } from 'react';\n\nimport { cx } from '@/utils/cx';\n\nimport ChipGroupRecipeProps, { chipGroupRecipe } from './chipGroup.styles';\nimport { Description } from '@/components/field/description/Description';\nimport { Chip, ChipItem } from '@/components/chip/Chip';\nimport { ChipRecipeProps } from '@/components/chip/chip.styles';\n\ntype ChipGroupProps = {\n    items?: ChipItem[];\n    label?: string;\n    description?: string;\n    errorMessage?: string;\n    content?: ReactNode;\n    className?: string;\n    chipClassName?: string;\n    labelClassName?: string;\n    descriptionClassName?: string;\n    errorClassName?: string;\n} & AriaChipGroupProps &\n    ChipGroupRecipeProps &\n    ChipRecipeProps;\n\nexport const ChipGroupContext = createContext<AriaChipGroupProps & ChipGroupRecipeProps>({});\n\nconst ChipGroup = ({\n    items,\n    selectedKeys,\n    label,\n    description,\n    errorMessage,\n    className,\n    chipClassName,\n    labelClassName,\n    descriptionClassName,\n    errorClassName,\n    children,\n    ...rest\n}: PropsWithChildren<ChipGroupProps>) => {\n    const [variantProps, localProps] = chipGroupRecipe.splitVariantProps(rest);\n    // `raw` receipe is required to be able to merge css objects (used in focus ring)\n    const recipeClassNames = chipGroupRecipe(variantProps);\n\n    return (\n        <AriaChipGroup {...localProps} className={cx(recipeClassNames.root, className)}>\n            <ChipGroupContext.Provider value={{ ...rest }}>\n                <Label className={cx(recipeClassNames.label, labelClassName)}>{label}</Label>\n                <AriaChipList className={cx(recipeClassNames.chipList, className)}>\n                    {items?.map((item: ChipItem) => (\n                        <Chip key={item.id} {...item} className={chipClassName} />\n                    ))}\n                    {children}\n                </AriaChipList>\n                <Description className={cx(recipeClassNames.description, descriptionClassName)}>\n                    {description}\n                </Description>\n                <FieldError className={cx(recipeClassNames.error, errorClassName)}>\n                    {errorMessage}\n                </FieldError>\n            </ChipGroupContext.Provider>\n        </AriaChipGroup>\n    );\n};\n\nexport { ChipGroup };\nexport type { ChipGroupProps };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\nconst codeBlockRecipe = sva({\n    slots: ['root', 'code'],\n    base: {\n        // these were directly pulled from our varnishPrismTheme\n        root: {\n            padding: 'var(--allenai-content-markdown-pre-padding)',\n            margin: '[.5em 0]',\n            overflow: 'auto',\n            border: 'none',\n            fontSize: '[.9em]',\n            lineHeight: '1.2',\n        },\n        code: {},\n    },\n    variants: {\n        colorMode: {\n            light: {\n                root: {\n                    backgroundColor: 'var(--allenai-content-markdown-code-background-light)',\n                },\n            },\n            dark: {\n                root: {\n                    backgroundColor: 'var(--allenai-content-markdown-code-background-dark)',\n                },\n            },\n        },\n    },\n    defaultVariants: {\n        colorMode: 'light',\n    },\n});\n\ntype CodeBlockRecipeProps = RecipeVariantProps<typeof codeBlockRecipe>;\n\nexport { codeBlockRecipe, codeBlockRecipe as default };\nexport type { CodeBlockRecipeProps };\n","import { type PropsWithChildren } from 'react';\n\n// Eval: use Light / AsyncLight ?\nimport { Prism as SyntaxHighlighter, SyntaxHighlighterProps } from 'react-syntax-highlighter';\n\nimport varnishPrismLight from '@allenai/varnish-theme/varnishPrismLight';\nimport varnishPrismDark from '@allenai/varnish-theme/varnishPrismDark';\n\nimport { cx } from '@/utils/cx';\nimport type { RemoveIndex } from '@/utils/types';\n\nimport codeBlockRecipe, { CodeBlockRecipeProps } from './codeblock.styles';\n\n// remove the index prop: `[spread: string]: any` -- fixes typing for Markdown\n// Remove `style` and `children` props, as they are drastically different\ntype SyntaxHighlighterPropsBase = Omit<RemoveIndex<SyntaxHighlighterProps>, 'style' | 'children'>;\n\ntype RequireChildrenOrValue =\n    | { value: string; children?: never }\n    | PropsWithChildren<{ value?: never }>;\n\ntype CodeBlockProps = {\n    language?: SyntaxHighlighterProps['language'];\n    PreTag?: SyntaxHighlighterProps['PreTag'];\n    CodeTag?: SyntaxHighlighterProps['CodeTag'];\n    inline?: boolean;\n    className?: string;\n    codeTagClassName?: string;\n    // style?: CSSProperties; // uncommenting this breaks types?\n    codeStyle?: SyntaxHighlighterProps['style']; // why they named this the same as a React prop, I don't know\n    customStyle?: SyntaxHighlighterProps['customStyle'];\n    colorMode?: 'light' | 'dark';\n} & CodeBlockRecipeProps &\n    RequireChildrenOrValue &\n    SyntaxHighlighterPropsBase;\n\nconst CodeBlock = ({\n    language,\n    PreTag = 'pre',\n    CodeTag = 'code',\n    codeStyle,\n    customStyle,\n    colorMode = 'light',\n    wrapLongLines = true,\n    value, // should we remove `value`, we are passing to children (from Markdown for example) anyways\n    codeTagClassName,\n    className, // outter container (`PreTag`) className\n    inline = false,\n    children,\n    ...rest\n}: CodeBlockProps) => {\n    const recipeClassNames = codeBlockRecipe({ colorMode });\n\n    const valueOrChildren = value ?? children;\n\n    const languageDerived = language ?? className?.replace(/\\blanguage-([^\\s]+)/, '$1');\n\n    const prismTheme =\n        codeStyle ||\n        ((colorMode === 'dark'\n            ? varnishPrismDark\n            : varnishPrismLight) as SyntaxHighlighterProps['style']);\n\n    const inlineStyles = inline\n        ? { display: 'inline', padding: 0, whiteSpace: 'nowrap' }\n        : undefined;\n\n    if (typeof valueOrChildren === 'string') {\n        return (\n            <SyntaxHighlighter\n                language={languageDerived}\n                PreTag={PreTag}\n                CodeTag={CodeTag}\n                style={prismTheme}\n                codeTagProps={{\n                    className: cx(recipeClassNames.code, codeTagClassName),\n                }}\n                wrapLongLines={wrapLongLines}\n                className={cx(recipeClassNames.root, className)}\n                customStyle={{\n                    ...inlineStyles,\n                    ...customStyle,\n                }}\n                {...rest}>\n                {valueOrChildren}\n            </SyntaxHighlighter>\n        );\n    }\n\n    // Do something if we don't get a string\n    return (\n        <PreTag className={className}>\n            <CodeTag className={codeTagClassName}>{valueOrChildren}</CodeTag>\n        </PreTag>\n    );\n};\n\nexport { CodeBlock };\nexport type { CodeBlockProps };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\nconst dialogStyles = sva({\n    slots: ['root', 'heading', 'actions'],\n    base: {\n        root: {\n            outline: 'none',\n            display: 'flex',\n            flex: '1',\n            flexDirection: 'column',\n        },\n        heading: {\n            fontSize: 'lg',\n            fontWeight: 'medium',\n            margin: '[0]',\n        },\n        actions: {\n            display: 'flex',\n            justifyContent: 'end',\n            gap: '[16px]',\n        },\n    },\n    variants: {},\n});\n\ntype DialogRecipeProps = Exclude<RecipeVariantProps<typeof dialogStyles>, undefined>;\n\nexport { dialogStyles };\nexport type { DialogRecipeProps };\n","import {\n    Heading as AriaHeading,\n    type HeadingProps as AriaHeadingProps,\n} from 'react-aria-components';\n\nimport { cx } from '@/utils/cx';\n\nimport { dialogStyles, type DialogRecipeProps } from '@/components/dialog/dialog.styles';\n\ntype DialogHeadingProps = AriaHeadingProps & DialogRecipeProps;\n\nconst DialogHeadingBase = (props: DialogHeadingProps) => {\n    return <AriaHeading slot=\"title\" {...props} />;\n};\n\nconst DialogHeading = ({ className, ...rest }: DialogHeadingProps) => {\n    const [variantProps, localProps] = dialogStyles.splitVariantProps(rest);\n    const variantClassNames = dialogStyles(variantProps);\n\n    return (\n        <DialogHeadingBase className={cx(variantClassNames.heading, className)} {...localProps} />\n    );\n};\n\nexport type { DialogHeadingProps };\nexport { DialogHeadingBase, DialogHeading, DialogHeading as default };\n","import { type HTMLProps } from 'react';\n\nimport { css } from '@allenai/varnish-panda-runtime/css';\nimport type { SystemStyleObject } from '@allenai/varnish-panda-runtime/types';\n\nimport { cx } from '@/utils/cx';\n\nimport { Button, type ButtonProps } from '@/components/button/Button';\n\nimport { dialogStyles, type DialogRecipeProps } from '@/components/dialog/dialog.styles';\n\ninterface CssProp {\n    css?: SystemStyleObject;\n}\n\ntype DialogActionsProps = HTMLProps<HTMLDivElement> & DialogRecipeProps & CssProp;\n\nconst DialogActions = ({ className, css: cssProp, children, ...rest }: DialogActionsProps) => {\n    const [variantProps, localProps] = dialogStyles.splitVariantProps(rest);\n    const variantStyles = dialogStyles.raw(variantProps);\n\n    return (\n        <div className={cx(css(variantStyles.actions, cssProp), className)} {...localProps}>\n            {children}\n        </div>\n    );\n};\n\n// this is just a convience\nconst DialogCloseButton = ({ children, ...rest }: ButtonProps) => {\n    return (\n        <Button slot=\"close\" {...rest}>\n            {children}\n        </Button>\n    );\n};\n\nexport type { DialogActionsProps, ButtonProps as DialogCloseButtonProps };\nexport { DialogCloseButton, DialogActions, DialogActions as default };\n","import { type ReactNode } from 'react';\n\nimport {\n    DialogTrigger as AriaDialogTrigger,\n    type DialogTriggerProps as AriaDialogTriggerProps,\n} from 'react-aria-components';\n\ninterface DialogTriggerProps extends AriaDialogTriggerProps {\n    content?: ReactNode;\n}\n\nconst DialogTrigger = ({ children, content, ...rest }: DialogTriggerProps) => {\n    return (\n        <AriaDialogTrigger {...rest}>\n            {children}\n            {content}\n        </AriaDialogTrigger>\n    );\n};\n\nexport type { DialogTriggerProps };\nexport { DialogTrigger, DialogTrigger as default };\n","import { type ReactNode } from 'react';\n\nimport { Dialog as AriaDialog, type DialogProps as AriaDialogProps } from 'react-aria-components';\n\nimport { cx } from '@/utils/cx';\n\nimport { dialogStyles, type DialogRecipeProps } from '@/components/dialog/dialog.styles';\nimport { DialogHeading } from '@/components/dialog/DialogHeading';\nimport { DialogActions } from '@/components/dialog/DialogActions';\n\ninterface DialogClassNames {\n    headingClassName?: string;\n    actionsClassName?: string;\n}\n\ninterface DialogProps extends AriaDialogProps, DialogRecipeProps, DialogClassNames {\n    heading?: ReactNode;\n    buttons?: ReactNode;\n    children: ReactNode; // Force ReactNode Override RAC children render functionality - at least for now.\n}\n\nconst Dialog = ({\n    heading,\n    buttons,\n    className,\n    headingClassName,\n    actionsClassName,\n    children,\n    ...rest\n}: DialogProps) => {\n    const [variantProps, localProps] = dialogStyles.splitVariantProps(rest);\n    const variantClassNames = dialogStyles(variantProps);\n\n    const headingNode =\n        typeof heading === 'string' ? (\n            <DialogHeading className={headingClassName} {...variantProps}>\n                {heading}\n            </DialogHeading>\n        ) : (\n            heading\n        );\n\n    return (\n        <AriaDialog className={cx(variantClassNames.root, className)} {...localProps}>\n            {headingNode}\n            {children}\n            {buttons ? (\n                <DialogActions className={actionsClassName} {...variantProps}>\n                    {buttons}\n                </DialogActions>\n            ) : null}\n        </AriaDialog>\n    );\n};\n\nexport type { DialogProps };\nexport { Dialog, Dialog as default };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\nconst drawerRecipe = sva({\n    slots: ['root', 'backdrop', 'header', 'content', 'defaultHeader'],\n    base: {\n        root: {\n            overflow: 'auto',\n            boxShadow: '[0 0 15px rgba(0, 0, 0, 0.5)]',\n            transition: '[transform 0.3s ease]',\n            top: '[0]',\n            left: '[0]',\n            backgroundColor: 'background.opacity-100.reversed',\n            color: 'text.reversed',\n        },\n        backdrop: {\n            position: 'fixed',\n            top: '0',\n            left: '0',\n            width: '[100%]',\n            height: '[100%]',\n            background: '[rgba(0, 0, 0, 0.5)]',\n            transition: '[opacity 0.3s ease, visibility 0.3s ease]',\n            opacity: '[0]',\n            visibility: 'hidden',\n            pointerEvents: 'none',\n            willChange: 'opacity',\n        },\n        header: {\n            padding: '[5px]',\n            display: 'flex',\n            justifyContent: 'space-between',\n            alignItems: 'center',\n        },\n        content: {\n            padding: '[5px]',\n        },\n        defaultHeader: {\n            display: 'flex',\n            justifyContent: 'flex-end',\n        },\n    },\n    variants: {\n        placement: {\n            left: {\n                root: {\n                    top: '[0]',\n                    left: '[0]',\n                    width: '[320px]',\n                    height: '[100%]',\n                    transform: '[translateX(-100%)]',\n                    lg: {\n                        width: '[320px]',\n                        height: '[100%]',\n                    },\n                    md: {\n                        width: '[320px]',\n                        height: '[100%]',\n                    },\n                    sm: {\n                        width: '[100%]',\n                        height: '[100%]',\n                    },\n                },\n            },\n            right: {\n                root: {\n                    top: '[0]',\n                    right: '[0]',\n                    left: '[unset]',\n                    width: '[320px]',\n                    height: '[100%]',\n                    transform: '[translateX(100%)]',\n                    lg: {\n                        width: '[320px]',\n                        height: '[100%]',\n                    },\n                    md: {\n                        width: '[320px]',\n                        height: '[100%]',\n                    },\n                    sm: {\n                        width: '[100%]',\n                        height: '[100%]',\n                    },\n                },\n            },\n            top: {\n                root: {\n                    top: '[0]',\n                    left: '[0]',\n                    right: '[0]',\n                    width: '[100%]',\n                    height: '[320px]',\n                    transform: '[translateY(-100%)]',\n                    lg: {\n                        width: '[100%]',\n                        height: '[320px]',\n                    },\n                    md: {\n                        width: '[100%]',\n                        height: '[320px]',\n                    },\n                    sm: {\n                        height: '[100%]',\n                    },\n                },\n            },\n            bottom: {\n                root: {\n                    bottom: '[0]',\n                    left: '[0]',\n                    right: '[unset]',\n                    top: '[unset]',\n                    width: '[100%]',\n                    height: '[320px]',\n                    transform: '[translateY(100%)]',\n                    lg: {\n                        width: '[100%]',\n                        height: '[320px]',\n                    },\n                    md: {\n                        width: '[100%]',\n                        height: '[320px]',\n                    },\n                    sm: {\n                        height: '[100%]',\n                    },\n                },\n            },\n        },\n        isOpen: {\n            true: {\n                root: {\n                    transform: 'translate(0)',\n                    zIndex: 'drawer',\n                },\n                backdrop: {\n                    visibility: 'visible',\n                    opacity: '1',\n                    pointerEvents: 'auto',\n                    zIndex: 'backdrop',\n                    transition: '[opacity 0.3s ease, visibility 0s 0.3s]',\n                },\n            },\n            false: {},\n        },\n        backdrop: {\n            true: {\n                backdrop: {},\n            },\n            false: {\n                backdrop: {\n                    display: 'none',\n                },\n            },\n        },\n        variant: {\n            temporary: {\n                root: {\n                    position: 'fixed',\n                },\n            },\n            persistent: {\n                root: {\n                    // default left styles\n                    position: 'relative',\n                    transform: 'none',\n                    width: '[20%]',\n                    height: '[100%]',\n                    transition: '[transform 0.3s ease]',\n                },\n                backdrop: {\n                    display: 'none',\n                },\n            },\n            permanent: {\n                root: {\n                    position: 'relative',\n                    transform: 'none',\n                    width: '[20%]',\n                    height: '[100%]',\n                },\n                backdrop: {\n                    display: 'none',\n                },\n            },\n        },\n    },\n    compoundVariants: [\n        {\n            placement: 'right',\n            variant: 'persistent',\n            css: {\n                root: {\n                    order: '999', // realign flex item to the right\n                },\n            },\n        },\n        {\n            placement: 'left',\n            isOpen: true,\n            css: {\n                root: {\n                    animation: 'slideInLeft 250ms ease-out forwards',\n                },\n            },\n        },\n        {\n            placement: 'right',\n            isOpen: true,\n            css: {\n                root: {\n                    animation: 'slideInRight 250ms ease-out forwards',\n                },\n            },\n        },\n        {\n            placement: 'top',\n            isOpen: true,\n            css: {\n                root: {\n                    animation: 'slideInTop 250ms ease-out forwards',\n                },\n            },\n        },\n        {\n            placement: 'bottom',\n            isOpen: true,\n            css: {\n                root: {\n                    animation: 'slideInBottom 250ms ease-out forwards',\n                },\n            },\n        },\n    ],\n    defaultVariants: {\n        placement: 'left',\n        isOpen: false,\n        backdrop: true,\n        variant: 'temporary',\n    },\n});\n\ntype DrawerRecipeProps = RecipeVariantProps<typeof drawerRecipe>;\n\nexport { drawerRecipe, drawerRecipe as default };\nexport type { DrawerRecipeProps };\n","import { css } from '@allenai/varnish-panda-runtime/css';\nimport { useEffect, type ReactNode } from 'react';\n\nimport { createPortal } from 'react-dom';\n\nimport { cx } from '@/utils/cx';\n\nimport drawerRecipe, { DrawerRecipeProps } from './drawer.style';\nimport Button from '../button/Button';\nimport { Close } from '../icons';\n\ntype DrawerProps = {\n    className?: string;\n    backdropClassName?: string;\n    headerClassName?: string;\n    contentClassName?: string;\n    header: ReactNode;\n    isOpen: boolean;\n    placement?: 'left' | 'right' | 'top' | 'bottom';\n    variant?: 'temporary' | 'persistent' | 'permanent';\n    backdrop?: boolean;\n    children: ReactNode;\n    ariaLabel?: string;\n    onClose?: () => void;\n} & DrawerRecipeProps;\n\nfunction Drawer({\n    className,\n    isOpen,\n    placement = 'left',\n    backdrop = true,\n    children,\n    variant = 'temporary',\n    header,\n    backdropClassName,\n    headerClassName,\n    contentClassName,\n    ariaLabel = 'Drawer',\n    onClose,\n    ...rest\n}: DrawerProps) {\n    const [variantProps, localProps] = drawerRecipe.splitVariantProps(rest);\n    const recipeClassNames = drawerRecipe.raw({\n        ...variantProps,\n        placement,\n        isOpen,\n        backdrop,\n        variant,\n    });\n\n    useEffect(() => {\n        const handleKeyDown = (event: KeyboardEvent) => {\n            if (event.key === 'Escape' && onClose !== undefined) {\n                onClose();\n            }\n        };\n\n        document.addEventListener('keydown', handleKeyDown);\n        return () => {\n            document.removeEventListener('keydown', handleKeyDown);\n        };\n    }, [isOpen, onClose]);\n\n    const defaultHeader = () => (\n        <div className={cx(css(recipeClassNames.defaultHeader))}>\n            {variant !== 'permanent' && (\n                <Button variant=\"text\" onPress={onClose} startIcon={<Close size=\"large\" />} />\n            )}\n        </div>\n    );\n\n    const content = isOpen ? (\n        <>\n            {backdrop && variant === 'temporary' && (\n                <div\n                    className={cx(css(recipeClassNames.backdrop), backdropClassName)}\n                    aria-hidden=\"true\"\n                    onClick={onClose}\n                />\n            )}\n\n            <div\n                className={cx(css(recipeClassNames.root), className)}\n                {...localProps}\n                aria-label={ariaLabel}>\n                {header !== undefined ? (\n                    <div className={cx(css(recipeClassNames.header), headerClassName)}>\n                        {header}\n                        {variant !== 'permanent' && (\n                            <Button\n                                variant=\"text\"\n                                onPress={onClose}\n                                startIcon={<Close size=\"large\" />}\n                            />\n                        )}\n                    </div>\n                ) : (\n                    defaultHeader()\n                )}\n                <div className={cx(css(recipeClassNames.content), contentClassName)}>\n                    {children}\n                </div>\n            </div>\n        </>\n    ) : null;\n\n    if ((variant === 'persistent' || variant === 'permanent') && isOpen) {\n        return content;\n    }\n\n    return createPortal(content, document.body);\n}\n\nexport { Drawer, Drawer as default };\nexport type { DrawerProps };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\nconst errorBoundaryRecipe = sva({\n    slots: ['root', 'errorSection'],\n    base: {\n        root: {\n            height: '[100vh]',\n            backgroundColor: 'background.opacity-10.reversed',\n            display: 'grid',\n            placeItems: 'center',\n            color: 'text.reversed',\n            padding: '[16px]',\n        },\n        errorSection: {\n            backgroundColor: 'background.opacity-100.reversed',\n            maxWidth: '[100%]',\n            width: '[fit-content]',\n            margin: 'auto',\n            padding: '[16px]',\n            minHeight: '[50%]',\n            maxHeight: '[90%]',\n            overflowY: 'auto',\n            border: '2px solid {colors.elements.error.fill}',\n        },\n    },\n});\n\ntype ErrorBoundaryRecipeProps = RecipeVariantProps<typeof errorBoundaryRecipe>;\n\nexport { errorBoundaryRecipe, errorBoundaryRecipe as default };\nexport type { ErrorBoundaryRecipeProps };\n","import { Component, type ReactNode, type ErrorInfo } from 'react';\n\nimport { cx } from '@/utils/cx';\n\nimport errorBoundaryRecipe, { ErrorBoundaryRecipeProps } from './errorBoundary.styles';\n\ntype ErrorBoundaryProps = {\n    fallback?: ReactNode;\n    children: ReactNode;\n    className?: string;\n    errorSectionClassName?: string;\n} & ErrorBoundaryRecipeProps;\n\ntype ErrorBoundaryState = {\n    hasError: boolean;\n    error?: Error;\n    errorInfo?: ErrorInfo;\n};\n\nclass ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n    constructor(props: ErrorBoundaryProps) {\n        super(props);\n        this.state = { hasError: false };\n    }\n\n    static getDerivedStateFromError(): ErrorBoundaryState {\n        return { hasError: true };\n    }\n\n    componentDidCatch(error: Error, errorInfo: ErrorInfo): void {\n        console.error('Error caught by ErrorBoundary:', error, errorInfo);\n        this.setState({ error, errorInfo });\n    }\n\n    render() {\n        const { className, errorSectionClassName, fallback, ...rest } = this.props;\n\n        const { hasError, error, errorInfo } = this.state;\n\n        if (!hasError) {\n            return this.props.children;\n        }\n        const [variantProps, localProps] = errorBoundaryRecipe.splitVariantProps(rest);\n\n        // `raw` receipe is required to be able to merge css objects (used in focus ring)\n        const recipeClassNames = errorBoundaryRecipe(variantProps);\n        return (\n            <div className={cx(recipeClassNames.root, className)} {...localProps}>\n                <div className={cx(recipeClassNames.errorSection, errorSectionClassName)}>\n                    <h1>Sorry, something went wrong</h1>\n                    {fallback || <p>Please try again.</p>}\n                    {process.env.NODE_ENV !== 'production' && error !== undefined && (\n                        <div>\n                            <h3>Error Details:</h3>\n                            <p>\n                                <strong>Message:</strong> {error.message}\n                            </p>\n                            <p>\n                                <strong>Stack Trace:</strong>\n                            </p>\n                            <pre>{error.stack}</pre>\n                            <p>\n                                <strong>Component Stack:</strong>\n                            </p>\n                            {errorInfo !== undefined && <pre>{errorInfo.componentStack}</pre>}\n                        </div>\n                    )}\n                </div>\n            </div>\n        );\n    }\n}\n\nexport { ErrorBoundary, ErrorBoundary as default };\nexport type { ErrorBoundaryProps };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\nconst formRecipe = sva({\n    slots: ['root'],\n    base: {\n        root: {\n            display: 'flex',\n            flexDirection: 'column',\n            gap: '[8px]',\n            alignItems: 'stretch',\n        },\n    },\n});\n\ntype FormRecipeProps = RecipeVariantProps<typeof formRecipe>;\n\nexport { formRecipe, formRecipe as default };\nexport type { FormRecipeProps };\n","import { Form as AriaForm, FormProps as AriaFormProps } from 'react-aria-components';\n\nimport { type FormEvent } from 'react';\n\nimport formRecipe, { FormRecipeProps } from './form.styles';\n\ntype FormProps = {\n    onSubmit: (e: FormEvent<HTMLFormElement>) => void;\n    onReset?: () => void;\n    className?: string;\n} & AriaFormProps &\n    FormRecipeProps;\n\nfunction Form({ className, onSubmit, onReset, children, ...rest }: FormProps) {\n    const [localProps] = formRecipe.splitVariantProps(rest);\n\n    return (\n        <AriaForm {...localProps} className={className} onSubmit={onSubmit} onReset={onReset}>\n            {children}\n        </AriaForm>\n    );\n}\n\nexport { Form, Form as default };\nexport type { FormProps };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\n\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\nconst footerRecipe = sva({\n    slots: ['root', 'linksGroup', 'copyRight'],\n    base: {\n        root: {\n            display: 'flex',\n            width: '[100%]',\n            padding: '[16px]',\n            color: 'text',\n        },\n        linksGroup: {\n            display: 'flex',\n            flexDirection: 'column',\n            alignItems: 'stretch',\n            gap: '[16px]',\n            lg: {\n                gridTemplateColumns: '[repeat(4, 1fr)]',\n                justifyContent: 'space-between',\n                gap: '[16px]',\n            },\n            md: {\n                display: 'grid',\n                gridTemplateColumns: 'repeat(2, 1fr)',\n                gap: '[16px]',\n            },\n            // I'd like to move these to either components with props\n            // or using slots/custom classNames\n            // which ever makes sense for the situation\n            '& ul': {\n                padding: '0',\n                margin: '0',\n                listStyleType: 'none',\n            },\n            '& a': {\n                color: 'links',\n                textDecoration: 'none',\n            },\n            '& label': {\n                fontSize: '[20px]',\n            },\n        },\n        copyRight: {\n            display: 'flex',\n            justifyContent: 'flex-start',\n            flexWrap: 'wrap',\n            gap: '[0px]',\n            // I'd like to move these to either components with props\n            // or using slots/custom classNames\n            // which ever makes sense for the situation\n            '& span': {\n                marginRight: '[32px]',\n            },\n            '& ul': {\n                display: 'flex',\n                gap: '[32px]',\n                padding: '0',\n                '& li:first-child': {\n                    listStyle: '[none]',\n                },\n            },\n            '& li::marker': {\n                color: 'background.opacity-10.reversed',\n            },\n        },\n    },\n    variants: {\n        variant: {\n            full: {\n                root: {\n                    flexDirection: 'column',\n                    gap: '[16px]',\n                },\n            },\n            slimLeft: {\n                root: {\n                    justifyContent: 'flex-start',\n                },\n                copyRight: {\n                    display: 'flex',\n                    alignItems: 'center',\n                },\n            },\n            slimCenter: {\n                root: {\n                    justifyContent: 'center',\n                },\n                copyRight: {\n                    display: 'flex',\n                    alignItems: 'center',\n                    justifyContent: 'center',\n                },\n            },\n        },\n        color: {\n            default: {\n                root: {\n                    backgroundColor: 'background.opacity-100',\n                },\n            },\n            filled: {\n                root: {\n                    backgroundColor: 'background.opacity-10.reversed',\n                },\n            },\n        },\n    },\n    defaultVariants: {\n        color: 'default',\n        variant: 'full',\n    },\n});\n\ntype FooterRecipeProps = RecipeVariantProps<typeof footerRecipe>;\n\nexport { footerRecipe, footerRecipe as default };\nexport type { FooterRecipeProps };\n","import { cva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\nconst linkRecipe = cva({\n    base: {\n        fontWeight: 'medium', // Do we want this?\n        cursor: 'pointer',\n        color: '[inherit]',\n        _disabled: {\n            color: 'text.disabled',\n            cursor: 'not-allowed',\n        },\n    },\n    variants: {\n        color: {\n            default: {\n                color: 'links',\n                _hover: {\n                    color: 'links.hovered',\n                },\n            },\n            reversed: {\n                color: 'links.reversed',\n                _hover: {\n                    color: 'links.hovered.reversed',\n                },\n            },\n            text: {\n                color: 'text',\n            },\n            primary: {\n                color: 'elements.primary.fill',\n            },\n            secondary: {\n                color: 'elements.secondary.fill',\n            },\n            tertiary: {\n                color: 'elements.tertiary.fill',\n            },\n        },\n        underline: {\n            // not implemented: `hover` only version\n            // can manually use `none` with a _hover style\n            always: {\n                textDecorationLine: 'underline',\n                textDecorationColor: '[currentColor/50]',\n                _hover: {\n                    _notDisabled: {\n                        textDecorationColor: '[inherit]',\n                    },\n                },\n            },\n            none: {\n                textDecoration: 'none',\n            },\n        },\n        size: {\n            small: {\n                fontSize: 'sm',\n            },\n            medium: {\n                fontSize: 'md',\n            },\n            large: {\n                fontSize: 'lg',\n            },\n        },\n    },\n    defaultVariants: {\n        underline: 'always',\n    },\n});\n\ntype LinkRecipeProps = RecipeVariantProps<typeof linkRecipe>;\n\nexport { linkRecipe, linkRecipe as default };\nexport type { LinkRecipeProps };\n","import { Link as AriaLink, LinkProps as AriaLinkProps } from 'react-aria-components';\n\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { cx } from '@/utils/cx';\n\nimport linkRecipe, { LinkRecipeProps } from './link.styles';\nimport focusRing from '@/components/shared/focusRing.styles';\n\ntype LinkProps = {\n    className?: string;\n    isDisabled?: boolean;\n    target?: string;\n} & AriaLinkProps &\n    LinkRecipeProps;\n\nfunction Link({ className, children, ...rest }: LinkProps) {\n    const [variantProps, localProps] = linkRecipe.splitVariantProps(rest);\n    // `raw` receipe is required to be able to merge css objects (used in focus ring)\n    const linkRecipeClassNames = linkRecipe.raw(variantProps);\n\n    // RAC converts Link to use a span if there is no `href` or `isDisabled`, this is fine\n    // We could swap for a button if no `href` and `!isDisabled` (onClick/onPress only)\n    return (\n        <AriaLink {...localProps} className={cx(css(focusRing, linkRecipeClassNames), className)}>\n            {children}\n        </AriaLink>\n    );\n}\n\nexport { Link, Link as default };\nexport type { LinkProps };\n","import { Fragment, type ReactNode } from 'react';\n\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { cx } from '@/utils/cx';\n\nimport { FooterRecipeProps, footerRecipe } from './footer.styles';\nimport Link from '../link/Link';\n\ntype FooterProps = {\n    className?: string;\n    linksGroupClassName?: string;\n    copyRightClassName?: string;\n    variant?: 'full' | 'slimLeft' | 'slimCenter';\n    linksGroup?: ReactNode[];\n} & FooterRecipeProps;\n\nfunction Footer({\n    className,\n    linksGroupClassName,\n    copyRightClassName,\n    variant = 'full',\n    linksGroup = [],\n    ...rest\n}: FooterProps) {\n    const [variantProps, localProps] = footerRecipe.splitVariantProps(rest);\n    const recipeClassNames = footerRecipe.raw({ ...variantProps, variant });\n\n    return (\n        <footer className={cx(css(recipeClassNames.root), className)} {...localProps}>\n            {variant === 'full' && (\n                <div className={cx(css(recipeClassNames.linksGroup), linksGroupClassName)}>\n                    {linksGroup.map((link, id) => (\n                        <Fragment key={id}>{link}</Fragment>\n                    ))}\n                </div>\n            )}\n            <div className={cx(css(recipeClassNames.copyRight), copyRightClassName)}>\n                <span>© The Allen Institute for Artificial Intelligence - All Rights Reserved</span>\n                {variant !== 'full' && (\n                    <ul>\n                        <li>\n                            <Link href=\"https://allenai.org/privacy-policy/2022-07-21\">\n                                Privacy Policy\n                            </Link>\n                        </li>\n                        <li>\n                            <Link href=\"https://allenai.org/terms/2024-09-25\">\n                                Terms of Service\n                            </Link>\n                        </li>\n                        <li>\n                            <Link href=\"https://allenai.org/responsible-use\">Responsible use</Link>\n                        </li>\n                    </ul>\n                )}\n            </div>\n        </footer>\n    );\n}\n\nexport { Footer, Footer as default };\nexport type { FooterProps };\n","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g\nvar msPattern = /^ms-/\nvar cache = {}\n\nfunction toHyphenLower(match) {\n  return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n  if (cache.hasOwnProperty(name)) {\n    return cache[name]\n  }\n\n  var hName = name.replace(uppercasePattern, toHyphenLower)\n  return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\nexport default hyphenateStyleName\n","export type validObjectValue = Record<string, any> | null | undefined;\n\nexport default function shallowEqualObjects<T>(\n  objA: validObjectValue,\n  objB: validObjectValue\n): boolean {\n  if (objA === objB) {\n    return true;\n  }\n\n  if (!objA || !objB) {\n    return false;\n  }\n\n  const aKeys = Object.keys(objA);\n  const bKeys = Object.keys(objB);\n  const len = aKeys.length;\n\n  if (bKeys.length !== len) {\n    return false;\n  }\n\n  for (let i = 0; i < len; i++) {\n    const key = aKeys[i];\n\n    if (\n      objA[key] !== objB[key] ||\n      !Object.prototype.hasOwnProperty.call(objB, key)\n    ) {\n      return false;\n    }\n  }\n\n  return true;\n}\n","import PropTypes from 'prop-types'\n\nconst stringOrNumber = PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n\n// media types\nconst types = {\n  all: PropTypes.bool,\n  grid: PropTypes.bool,\n  aural: PropTypes.bool,\n  braille: PropTypes.bool,\n  handheld: PropTypes.bool,\n  print: PropTypes.bool,\n  projection: PropTypes.bool,\n  screen: PropTypes.bool,\n  tty: PropTypes.bool,\n  tv: PropTypes.bool,\n  embossed: PropTypes.bool\n}\n\n// properties that match media queries\nconst matchers = {\n  orientation: PropTypes.oneOf(['portrait', 'landscape']),\n\n  scan: PropTypes.oneOf(['progressive', 'interlace']),\n\n  aspectRatio: PropTypes.string,\n  deviceAspectRatio: PropTypes.string,\n\n  height: stringOrNumber,\n  deviceHeight: stringOrNumber,\n\n  width: stringOrNumber,\n  deviceWidth: stringOrNumber,\n\n  color: PropTypes.bool,\n\n  colorIndex: PropTypes.bool,\n\n  monochrome: PropTypes.bool,\n  resolution: stringOrNumber,\n  type: Object.keys(types)\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst { type, ...featureMatchers } = matchers\n\n// media features\nconst features = {\n  minAspectRatio: PropTypes.string,\n  maxAspectRatio: PropTypes.string,\n  minDeviceAspectRatio: PropTypes.string,\n  maxDeviceAspectRatio: PropTypes.string,\n\n  minHeight: stringOrNumber,\n  maxHeight: stringOrNumber,\n  minDeviceHeight: stringOrNumber,\n  maxDeviceHeight: stringOrNumber,\n\n  minWidth: stringOrNumber,\n  maxWidth: stringOrNumber,\n  minDeviceWidth: stringOrNumber,\n  maxDeviceWidth: stringOrNumber,\n\n  minColor: PropTypes.number,\n  maxColor: PropTypes.number,\n\n  minColorIndex: PropTypes.number,\n  maxColorIndex: PropTypes.number,\n\n  minMonochrome: PropTypes.number,\n  maxMonochrome: PropTypes.number,\n\n  minResolution: stringOrNumber,\n  maxResolution: stringOrNumber,\n\n  ...featureMatchers\n}\n\nconst all = { ...types, ...features }\n\nexport default {\n  all: all,\n  types: types,\n  matchers: matchers,\n  features: features\n}\n","import hyphenate from 'hyphenate-style-name'\nimport mq from './mediaQuery'\nimport { MediaQueryAllQueryable } from './types'\n\nconst negate = (cond: string) => `not ${cond}`\n\nconst keyVal = (k: string, v: unknown): string => {\n  const realKey = hyphenate(k)\n\n  // px shorthand\n  if (typeof v === 'number') {\n    v = `${v}px`\n  }\n  if (v === true) {\n    return realKey\n  }\n  if (v === false) {\n    return negate(realKey)\n  }\n  return `(${realKey}: ${v})`\n}\n\nconst join = (conds: string[]): string => conds.join(' and ')\n\nconst toQuery = (obj: Partial<MediaQueryAllQueryable>): string => {\n  const rules: string[] = []\n  Object.keys(mq.all).forEach((k) => {\n    const v = obj[k as keyof MediaQueryAllQueryable]\n    if (v != null) {\n      rules.push(keyVal(k, v))\n    }\n  })\n  return join(rules)\n}\n\nexport default toQuery\n","import { createContext } from 'react'\nimport { MediaQueryAllQueryable } from './types'\n\nconst Context = createContext<Partial<MediaQueryAllQueryable> | undefined>(\n  undefined\n)\n\nexport default Context\n","import { useRef, useEffect, useContext, useState } from 'react'\nimport matchMedia from 'matchmediaquery'\nimport hyphenate from 'hyphenate-style-name'\nimport { shallowEqualObjects } from 'shallow-equal'\nimport toQuery from './toQuery'\nimport Context from './Context'\nimport { MediaQueryAllQueryable, MediaQueryMatchers } from './types'\n\ntype MediaQuerySettings = Partial<MediaQueryAllQueryable & { query?: string }>\ntype HyphenateKeyTypes = MediaQueryMatchers | MediaQueryAllQueryable\n\nconst makeQuery = (settings: MediaQuerySettings) =>\n  settings.query || toQuery(settings)\n\nconst hyphenateKeys = (obj?: HyphenateKeyTypes) => {\n  type K = keyof HyphenateKeyTypes\n\n  if (!obj) return undefined\n  const keys = Object.keys(obj) as K[]\n\n  return keys.reduce(\n    (result, key) => {\n      result[hyphenate(key)] = obj[key]\n      return result\n    },\n    {} as Record<string, (typeof obj)[K]>\n  )\n}\n\nconst useIsUpdate = () => {\n  const ref = useRef(false)\n\n  useEffect(() => {\n    ref.current = true\n  }, [])\n\n  return ref.current\n}\n\nconst useDevice = (\n  deviceFromProps?: MediaQueryMatchers\n): Partial<MediaQueryAllQueryable> | undefined => {\n  const deviceFromContext = useContext(Context)\n  const getDevice = () =>\n    hyphenateKeys(deviceFromProps) || hyphenateKeys(deviceFromContext)\n  const [device, setDevice] = useState(getDevice)\n\n  useEffect(() => {\n    const newDevice = getDevice()\n    if (!shallowEqualObjects(device, newDevice)) {\n      setDevice(newDevice)\n    }\n  }, [deviceFromProps, deviceFromContext])\n\n  return device\n}\n\nconst useQuery = (settings: MediaQuerySettings) => {\n  const getQuery = () => makeQuery(settings)\n  const [query, setQuery] = useState(getQuery)\n\n  useEffect(() => {\n    const newQuery = getQuery()\n    if (query !== newQuery) {\n      setQuery(newQuery)\n    }\n  }, [settings])\n\n  return query\n}\n\nconst useMatchMedia = (query: string, device?: MediaQueryMatchers) => {\n  const getMatchMedia = () => matchMedia(query, device || {}, !!device)\n  const [mq, setMq] = useState(getMatchMedia)\n  const isUpdate = useIsUpdate()\n\n  useEffect(() => {\n    if (isUpdate) {\n      // skip on mounting, it has already been set\n      const newMq = getMatchMedia()\n      setMq(newMq)\n\n      return () => {\n        if (newMq) {\n          newMq.dispose()\n        }\n      }\n    }\n  }, [query, device])\n\n  return mq\n}\n\nconst useMatches = (mediaQuery: MediaQueryList): boolean => {\n  const [matches, setMatches] = useState<boolean>(mediaQuery.matches)\n\n  useEffect(() => {\n    const updateMatches = (ev: MediaQueryListEvent) => {\n      setMatches(ev.matches)\n    }\n    mediaQuery.addListener(updateMatches)\n    setMatches(mediaQuery.matches)\n\n    return () => {\n      mediaQuery.removeListener(updateMatches)\n    }\n  }, [mediaQuery])\n\n  return matches\n}\n\nconst useMediaQuery = (\n  settings: MediaQuerySettings,\n  device?: MediaQueryMatchers,\n  onChange?: (_: boolean) => void\n) => {\n  const deviceSettings = useDevice(device)\n  const query = useQuery(settings)\n  if (!query) throw new Error('Invalid or missing MediaQuery!')\n  const mq = useMatchMedia(query, deviceSettings)\n  const matches = useMatches(mq as unknown as MediaQueryList)\n  const isUpdate = useIsUpdate()\n\n  useEffect(() => {\n    if (isUpdate && onChange) {\n      onChange(matches)\n    }\n  }, [matches])\n\n  useEffect(\n    () => () => {\n      if (mq) {\n        mq.dispose()\n      }\n    },\n    []\n  )\n\n  return matches\n}\n\nexport default useMediaQuery\n","import { sva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\nconst headerRecipe = sva({\n    slots: ['root', 'container', 'search', 'action', 'nav', 'logo', 'slots', 'container', 'icon'],\n    base: {\n        root: {\n            border: 'none',\n            top: '0',\n            backgroundColor: 'background.opacity-100.reversed',\n            color: 'links.reversed',\n        },\n        container: {\n            color: '[inherit]',\n            display: 'flex',\n            flexDirection: 'row',\n            alignItems: 'center',\n            justifyContent: 'space-between',\n            flexWrap: 'nowrap',\n            whiteSpace: 'nowrap',\n        },\n        logo: {\n            display: 'flex',\n            alignItems: 'center',\n            gap: '[12px]',\n            flexShrink: 0,\n        },\n        slots: {\n            color: '[inherit]',\n            display: 'flex',\n            alignItems: 'center',\n            gap: '[1rem]',\n            flexDirection: 'row',\n        },\n        nav: {\n            display: 'flex',\n            gap: '[16px]',\n            alignSelf: 'center',\n            flexWrap: 'nowrap',\n            whiteSpace: 'nowrap',\n            color: '[inherit]',\n            flexDirection: 'row',\n        },\n        search: {},\n        action: {\n            whiteSpace: 'nowrap',\n            color: '[inherit]',\n        },\n        icon: {\n            display: 'flex',\n            alignItems: 'center',\n            justifyContent: 'center',\n            verticalAlign: 'middle',\n        },\n    },\n    variants: {\n        position: {\n            fixed: {\n                root: {\n                    position: 'fixed',\n                },\n            },\n            sticky: {\n                root: {\n                    position: 'sticky',\n                },\n            },\n        },\n        shape: {\n            box: {\n                root: {\n                    borderRadius: '[16px]',\n                    smOnly: {\n                        borderRadius: '[8px]',\n                    },\n                },\n                container: {\n                    padding: '[16px]',\n                    smOnly: {\n                        padding: '[16px]',\n                    },\n                },\n            },\n            rounded: {\n                root: {\n                    borderRadius: 'full',\n                },\n                container: {\n                    padding: '[16px 32px]',\n                    smOnly: {\n                        padding: '[16px 24px]',\n                    },\n                },\n            },\n            full: {\n                root: {\n                    border: 'none',\n                    backgroundColor: '[transparent]',\n                },\n                container: {\n                    padding: '[16px 24px]',\n                    smOnly: {\n                        padding: '[16px]',\n                    },\n                },\n            },\n        },\n        fullWidth: {\n            false: {},\n            true: {\n                root: {\n                    width: '[100%]',\n                    backgroundColor: '[transparent]',\n                    border: 'none',\n                },\n            },\n        },\n    },\n    defaultVariants: {\n        shape: 'box',\n        position: 'sticky',\n    },\n});\n\ntype HeaderRecipeProps = RecipeVariantProps<typeof headerRecipe>;\n\nexport { headerRecipe, headerRecipe as default };\nexport type { HeaderRecipeProps };\n","import { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { type ReactNode } from 'react';\n\nimport { useMediaQuery } from 'react-responsive';\n\nimport { cx } from '@/utils/cx';\n\nimport headerRecipe, { HeaderRecipeProps } from './header.styles';\nimport { Icons } from '@/index';\n\ntype HeaderProps = {\n    logo?: ReactNode;\n    navItem?: ReactNode;\n    search?: ReactNode;\n    action?: ReactNode;\n    className?: string;\n    searchClassName?: string;\n    actionClassName?: string;\n    navClassName?: string;\n    logoClassName?: string;\n    iconClassName?: string;\n} & HeaderRecipeProps;\n\nconst useIsMobile = () => {\n    return useMediaQuery({ maxWidth: 768 });\n};\n\nfunction Header({\n    logo,\n    navItem,\n    search,\n    action,\n    className,\n    searchClassName,\n    actionClassName,\n    navClassName,\n    logoClassName,\n    ...rest\n}: HeaderProps) {\n    const [variantProps, localProps] = headerRecipe.splitVariantProps(rest);\n    // `raw` receipe is required to be able to merge css objects (used in focus ring)\n    const recipeClassNames = headerRecipe.raw(variantProps);\n    // Note: We should add default new Ai2 Icon once the RAC Icon goes in.\n    // Ref: https://github.com/allenai/varnish/issues/1001\n\n    const isMobile = useIsMobile();\n\n    return (\n        <header className={cx(css(recipeClassNames.root), className)} {...localProps}>\n            <div className={cx(css(recipeClassNames.container))}>\n                <div\n                    aria-label=\"Site Logo\"\n                    className={cx(css(recipeClassNames.logo), logoClassName)}>\n                    {isMobile && (\n                        <span className={cx(css(recipeClassNames.icon))}>\n                            <Icons.Menu />\n                        </span>\n                    )}\n                    {logo}\n                </div>\n                <div className={cx(css(recipeClassNames.slots))}>\n                    {!!navItem && (\n                        <nav\n                            className={cx(css(recipeClassNames.nav), navClassName)}\n                            aria-label=\"Main Navigation\">\n                            {navItem}\n                        </nav>\n                    )}\n                    <div\n                        className={cx(css(recipeClassNames.search), searchClassName)}\n                        aria-label=\"Search Bar\">\n                        {search}\n                    </div>\n                    <div\n                        className={cx(css(recipeClassNames.action), actionClassName)}\n                        aria-label=\"Action Button\">\n                        {action}\n                    </div>\n                </div>\n            </div>\n        </header>\n    );\n}\n\nexport { Header, Header as default };\nexport type { HeaderProps };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\nconst menuRecipe = sva({\n    slots: ['root', 'menuItem', 'menuSection', 'separator', 'header'],\n    base: {\n        root: {\n            maxHeight: '[inherit]',\n            boxSizing: 'border-box',\n            overflow: 'auto',\n            padding: '[2px]',\n            minWidth: '[150px]',\n            outline: 'none',\n            '& a[role=\"menuitem\"]': {\n                textDecoration: 'none',\n                color: 'cream.100',\n            },\n            '& [role=\"separator\"]': {\n                height: '[1px]',\n                background: 'gray.60',\n                margin: '[2px 4px]',\n            },\n        },\n        menuItem: {\n            margin: '[2px]',\n            padding: '[5px, 9px]',\n            borderRadius: '[6px]',\n            outline: 'none',\n            cursor: 'default',\n            fontSize: '[17px]',\n            position: 'relative',\n            display: 'grid',\n            gridTemplateAreas: `\n                \"label kbd\"\n                \"desc  kbd\"\n            `,\n            alignItems: 'center',\n            columnGap: '[20px]',\n            forcedColorAdjust: 'none',\n            '&[data-resizing]': {\n                backgroundColor: 'elements.tertiary.fill',\n            },\n            '&[data-selection-mode]': {\n                paddingLeft: '[24px]',\n                '&::before': {\n                    position: 'absolute',\n                    left: '[4px]',\n                    fontWeight: '[600]',\n                },\n                '&[data-selection-mode=multiple][data-selected]::before': {\n                    content: '\"✓\"',\n                    position: 'absolute',\n                    left: '[4px]',\n                    fontWeight: '[600]',\n                },\n                '&[data-selection-mode=single][data-selected]::before': {\n                    content: '\"●\"',\n                    transform: 'scale(0.7)',\n                },\n            },\n            '&[data-disabled]': {\n                color: 'gray.60',\n            },\n            '&[data-focused]': {\n                backgroundColor: 'elements.tertiary.fill',\n            },\n            '& [slot=\"label\"]': {\n                fontWeight: 'bold',\n                gridArea: 'label',\n            },\n            '& [slot=\"description\"]': {\n                fontSize: 'sm',\n                gridArea: 'desc',\n            },\n            '& kbd': {\n                gridArea: 'kbd',\n                textAlign: 'end',\n            },\n        },\n        separator: {},\n        menuSection: {\n            '&:not(:first-child)': {\n                marginTop: '[12px]',\n            },\n        },\n        header: {\n            fontWeight: 'bold',\n            fontSize: '[18px]',\n        },\n    },\n});\n\ntype MenuRecipeProps = Exclude<RecipeVariantProps<typeof menuRecipe>, undefined>;\n\nexport { menuRecipe };\nexport type { MenuRecipeProps };\n","import { Header as AriaHeader } from 'react-aria-components';\n\nimport { PropsWithChildren, ReactNode } from 'react';\n\nimport { menuRecipe, MenuRecipeProps } from './menu.styles';\nimport { cx } from '@/utils/cx';\n\ntype MenuHeaderProps = {\n    className?: string;\n    children?: ReactNode;\n} & MenuRecipeProps;\n\nconst MenuHeader = ({ className, children, ...rest }: PropsWithChildren<MenuHeaderProps>) => {\n    const [variantProps] = menuRecipe.splitVariantProps(rest);\n    const recipeClassNames = menuRecipe(variantProps);\n\n    return <AriaHeader className={cx(recipeClassNames.header, className)}>{children}</AriaHeader>;\n};\n\nexport { MenuHeader };\nexport type { MenuHeaderProps };\n","/**\n * Count how often a character (or substring) is used in a string.\n *\n * @param {string} value\n *   Value to search in.\n * @param {string} character\n *   Character (or substring) to look for.\n * @return {number}\n *   Number of times `character` occurred in `value`.\n */\nexport function ccount(value, character) {\n  const source = String(value)\n\n  if (typeof character !== 'string') {\n    throw new TypeError('Expected character')\n  }\n\n  let count = 0\n  let index = source.indexOf(character)\n\n  while (index !== -1) {\n    count++\n    index = source.indexOf(character, index + character.length)\n  }\n\n  return count\n}\n","export function deprecate(fn) {\n  return fn\n}\n\nexport function equal() {}\n\nexport function ok() {}\n\nexport function unreachable() {}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n *\n * @param code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport const asciiAlpha = regexCheck(/[A-Za-z]/);\n\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n *\n * @param code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/);\n\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n *\n * @param code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/);\n\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport function asciiControl(code) {\n  return (\n    // Special whitespace codes (which have negative values), C0 and Control\n    // character DEL\n    code !== null && (code < 32 || code === 127)\n  );\n}\n\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n *\n * @param code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport const asciiDigit = regexCheck(/\\d/);\n\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n *\n * @param code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/);\n\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n *\n * @param code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/);\n\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport function markdownLineEnding(code) {\n  return code !== null && code < -2;\n}\n\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport function markdownLineEndingOrSpace(code) {\n  return code !== null && (code < 0 || code === 32);\n}\n\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport function markdownSpace(code) {\n  return code === -2 || code === -1 || code === 32;\n}\n\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n *   Code.\n * @returns\n *   Whether it matches.\n */\nexport const unicodePunctuation = regexCheck(/\\p{P}|\\p{S}/u);\n\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n *   Code.\n * @returns\n *   Whether it matches.\n */\nexport const unicodeWhitespace = regexCheck(/\\s/);\n\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => boolean}\n */\nfunction regexCheck(regex) {\n  return check;\n\n  /**\n   * Check whether a code matches the bound regex.\n   *\n   * @param {Code} code\n   *   Character code.\n   * @returns {boolean}\n   *   Whether the character code matches the bound regex.\n   */\n  function check(code) {\n    return code !== null && code > -1 && regex.test(String.fromCharCode(code));\n  }\n}","export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n *   Check that an arbitrary value is a node.\n * @param {unknown} this\n *   The given context.\n * @param {unknown} [node]\n *   Anything (typically a node).\n * @param {number | null | undefined} [index]\n *   The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n *   The node’s parent.\n * @returns {boolean}\n *   Whether this is a node and passes a test.\n *\n * @typedef {Record<string, unknown> | Node} Props\n *   Object to check for equivalence.\n *\n *   Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array<Props | TestFunction | string> | Props | TestFunction | string | null | undefined} Test\n *   Check for an arbitrary node.\n *\n * @callback TestFunction\n *   Check if a node passes a test.\n * @param {unknown} this\n *   The given context.\n * @param {Node} node\n *   A node.\n * @param {number | undefined} [index]\n *   The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n *   The node’s parent.\n * @returns {boolean | undefined | void}\n *   Whether this node passes the test.\n *\n *   Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n *   Thing to check, typically `Node`.\n * @param {Test} test\n *   A check for a specific node.\n * @param {number | null | undefined} index\n *   The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n *   The node’s parent.\n * @param {unknown} context\n *   Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n *   Whether `node` is a node and passes a test.\n */\nexport const is =\n  // Note: overloads in JSDoc can’t yet use different `@template`s.\n  /**\n   * @type {(\n   *   (<Condition extends string>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n   *   (<Condition extends Props>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n   *   (<Condition extends TestFunction>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n   *   ((node?: null | undefined) => false) &\n   *   ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n   *   ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n   * )}\n   */\n  (\n    /**\n     * @param {unknown} [node]\n     * @param {Test} [test]\n     * @param {number | null | undefined} [index]\n     * @param {Parent | null | undefined} [parent]\n     * @param {unknown} [context]\n     * @returns {boolean}\n     */\n    // eslint-disable-next-line max-params\n    function (node, test, index, parent, context) {\n      const check = convert(test)\n\n      if (\n        index !== undefined &&\n        index !== null &&\n        (typeof index !== 'number' ||\n          index < 0 ||\n          index === Number.POSITIVE_INFINITY)\n      ) {\n        throw new Error('Expected positive finite index')\n      }\n\n      if (\n        parent !== undefined &&\n        parent !== null &&\n        (!is(parent) || !parent.children)\n      ) {\n        throw new Error('Expected parent node')\n      }\n\n      if (\n        (parent === undefined || parent === null) !==\n        (index === undefined || index === null)\n      ) {\n        throw new Error('Expected both parent and index')\n      }\n\n      return looksLikeANode(node)\n        ? check.call(context, node, index, parent)\n        : false\n    }\n  )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n *   *   when nullish, checks if `node` is a `Node`.\n *   *   when `string`, works like passing `(node) => node.type === test`.\n *   *   when `function` checks if function passed the node is true.\n *   *   when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n *   *   when `array`, checks if any one of the subtests pass.\n * @returns {Check}\n *   An assertion.\n */\nexport const convert =\n  // Note: overloads in JSDoc can’t yet use different `@template`s.\n  /**\n   * @type {(\n   *   (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n   *   (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n   *   (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n   *   ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n   *   ((test?: Test) => Check)\n   * )}\n   */\n  (\n    /**\n     * @param {Test} [test]\n     * @returns {Check}\n     */\n    function (test) {\n      if (test === null || test === undefined) {\n        return ok\n      }\n\n      if (typeof test === 'function') {\n        return castFactory(test)\n      }\n\n      if (typeof test === 'object') {\n        return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n      }\n\n      if (typeof test === 'string') {\n        return typeFactory(test)\n      }\n\n      throw new Error('Expected function, string, or object as test')\n    }\n  )\n\n/**\n * @param {Array<Props | TestFunction | string>} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n  /** @type {Array<Check>} */\n  const checks = []\n  let index = -1\n\n  while (++index < tests.length) {\n    checks[index] = convert(tests[index])\n  }\n\n  return castFactory(any)\n\n  /**\n   * @this {unknown}\n   * @type {TestFunction}\n   */\n  function any(...parameters) {\n    let index = -1\n\n    while (++index < checks.length) {\n      if (checks[index].apply(this, parameters)) return true\n    }\n\n    return false\n  }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propsFactory(check) {\n  const checkAsRecord = /** @type {Record<string, unknown>} */ (check)\n\n  return castFactory(all)\n\n  /**\n   * @param {Node} node\n   * @returns {boolean}\n   */\n  function all(node) {\n    const nodeAsRecord = /** @type {Record<string, unknown>} */ (\n      /** @type {unknown} */ (node)\n    )\n\n    /** @type {string} */\n    let key\n\n    for (key in check) {\n      if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n    }\n\n    return true\n  }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction typeFactory(check) {\n  return castFactory(type)\n\n  /**\n   * @param {Node} node\n   */\n  function type(node) {\n    return node && node.type === check\n  }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n  return check\n\n  /**\n   * @this {unknown}\n   * @type {Check}\n   */\n  function check(value, index, parent) {\n    return Boolean(\n      looksLikeANode(value) &&\n        testFunction.call(\n          this,\n          value,\n          typeof index === 'number' ? index : undefined,\n          parent || undefined\n        )\n    )\n  }\n}\n\nfunction ok() {\n  return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n  return value !== null && typeof value === 'object' && 'type' in value\n}\n","/**\n * @param {string} d\n * @returns {string}\n */\nexport function color(d) {\n  return '\\u001B[33m' + d + '\\u001B[39m'\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n */\n\n/**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n *   Test from `unist-util-is`.\n *\n *   Note: we have remove and add `undefined`, because otherwise when generating\n *   automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n *   which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n *   Fn extends (value: any) => value is infer Thing\n *   ? Thing\n *   : Fallback\n * )} Predicate\n *   Get the value of a type guard `Fn`.\n * @template Fn\n *   Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n *   Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n *   Check extends null | undefined // No test.\n *   ? Value\n *   : Value extends {type: Check} // String (type) test.\n *   ? Value\n *   : Value extends Check // Partial test.\n *   ? Value\n *   : Check extends Function // Function test.\n *   ? Predicate<Check, Value> extends Value\n *     ? Predicate<Check, Value>\n *     : never\n *   : never // Some other test?\n * )} MatchesOne\n *   Check whether a node matches a primitive check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n *   Check extends Array<any>\n *   ? MatchesOne<Value, Check[keyof Check]>\n *   : MatchesOne<Value, Check>\n * )} Matches\n *   Check whether a node matches a check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n *   Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n *   Increment a number in the type system.\n * @template {Uint} [I=0]\n *   Index.\n */\n\n/**\n * @typedef {(\n *   Node extends UnistParent\n *   ? Node extends {children: Array<infer Children>}\n *     ? Child extends Children ? Node : never\n *     : never\n *   : never\n * )} InternalParent\n *   Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {InternalParent<InclusiveDescendant<Tree>, Child>} Parent\n *   Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {(\n *   Depth extends Max\n *   ? never\n *   :\n *     | InternalParent<Node, Child>\n *     | InternalAncestor<Node, InternalParent<Node, Child>, Max, Increment<Depth>>\n * )} InternalAncestor\n *   Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @typedef {InternalAncestor<InclusiveDescendant<Tree>, Child>} Ancestor\n *   Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Tree\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {(\n *   Tree extends UnistParent\n *     ? Depth extends Max\n *       ? Tree\n *       : Tree | InclusiveDescendant<Tree['children'][number], Max, Increment<Depth>>\n *     : Tree\n * )} InclusiveDescendant\n *   Collect all (inclusive) descendants of `Tree`.\n *\n *   > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n *   > recurse without actually running into an infinite loop, which the\n *   > previous version did.\n *   >\n *   > Practically, a max of `2` is typically enough assuming a `Root` is\n *   > passed, but it doesn’t improve performance.\n *   > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n *   > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n *   Tree type.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @typedef {'skip' | boolean} Action\n *   Union of the action types.\n *\n * @typedef {number} Index\n *   Move to the sibling at `index` next (after node itself is completely\n *   traversed).\n *\n *   Useful if mutating the tree, such as removing the node the visitor is\n *   currently on, or any of its previous siblings.\n *   Results less than 0 or greater than or equal to `children.length` stop\n *   traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n *   List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n *   Any value that can be returned from a visitor.\n */\n\n/**\n * @callback Visitor\n *   Handle a node (matching `test`, if given).\n *\n *   Visitors are free to transform `node`.\n *   They can also transform the parent of node (the last of `ancestors`).\n *\n *   Replacing `node` itself, if `SKIP` is not returned, still causes its\n *   descendants to be walked (which is a bug).\n *\n *   When adding or removing previous siblings of `node` (or next siblings, in\n *   case of reverse), the `Visitor` should return a new `Index` to specify the\n *   sibling to traverse after `node` is traversed.\n *   Adding or removing next siblings of `node` (or previous siblings, in case\n *   of reverse) is handled as expected without needing to return a new `Index`.\n *\n *   Removing the children property of an ancestor still results in them being\n *   traversed.\n * @param {Visited} node\n *   Found node.\n * @param {Array<VisitedParents>} ancestors\n *   Ancestors of `node`.\n * @returns {VisitorResult}\n *   What to do next.\n *\n *   An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n *   An `Action` is treated as a tuple of `[Action]`.\n *\n *   Passing a tuple back only makes sense if the `Action` is `SKIP`.\n *   When the `Action` is `EXIT`, that action can be returned.\n *   When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n *   Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n *   Ancestor type.\n */\n\n/**\n * @typedef {Visitor<Matches<InclusiveDescendant<Tree>, Check>, Ancestor<Tree, Matches<InclusiveDescendant<Tree>, Check>>>} BuildVisitor\n *   Build a typed `Visitor` function from a tree and a test.\n *\n *   It will infer which values are passed as `node` and which as `parents`.\n * @template {UnistNode} [Tree=UnistNode]\n *   Tree type.\n * @template {Test} [Check=Test]\n *   Test type.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from 'unist-util-visit-parents/do-not-use-color'\n\n/** @type {Readonly<ActionTuple>} */\nconst empty = []\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor<Tree, Check>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor<Tree>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n *   Tree to traverse.\n * @param {Visitor | Test} test\n *   `unist-util-is`-compatible test\n * @param {Visitor | boolean | null | undefined} [visitor]\n *   Handle each node.\n * @param {boolean | null | undefined} [reverse]\n *   Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n *   Nothing.\n *\n * @template {UnistNode} Tree\n *   Node type.\n * @template {Test} Check\n *   `unist-util-is`-compatible test.\n */\nexport function visitParents(tree, test, visitor, reverse) {\n  /** @type {Test} */\n  let check\n\n  if (typeof test === 'function' && typeof visitor !== 'function') {\n    reverse = visitor\n    // @ts-expect-error no visitor given, so `visitor` is test.\n    visitor = test\n  } else {\n    // @ts-expect-error visitor given, so `test` isn’t a visitor.\n    check = test\n  }\n\n  const is = convert(check)\n  const step = reverse ? -1 : 1\n\n  factory(tree, undefined, [])()\n\n  /**\n   * @param {UnistNode} node\n   * @param {number | undefined} index\n   * @param {Array<UnistParent>} parents\n   */\n  function factory(node, index, parents) {\n    const value = /** @type {Record<string, unknown>} */ (\n      node && typeof node === 'object' ? node : {}\n    )\n\n    if (typeof value.type === 'string') {\n      const name =\n        // `hast`\n        typeof value.tagName === 'string'\n          ? value.tagName\n          : // `xast`\n          typeof value.name === 'string'\n          ? value.name\n          : undefined\n\n      Object.defineProperty(visit, 'name', {\n        value:\n          'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n      })\n    }\n\n    return visit\n\n    function visit() {\n      /** @type {Readonly<ActionTuple>} */\n      let result = empty\n      /** @type {Readonly<ActionTuple>} */\n      let subresult\n      /** @type {number} */\n      let offset\n      /** @type {Array<UnistParent>} */\n      let grandparents\n\n      if (!test || is(node, index, parents[parents.length - 1] || undefined)) {\n        // @ts-expect-error: `visitor` is now a visitor.\n        result = toResult(visitor(node, parents))\n\n        if (result[0] === EXIT) {\n          return result\n        }\n      }\n\n      if ('children' in node && node.children) {\n        const nodeAsParent = /** @type {UnistParent} */ (node)\n\n        if (nodeAsParent.children && result[0] !== SKIP) {\n          offset = (reverse ? nodeAsParent.children.length : -1) + step\n          grandparents = parents.concat(nodeAsParent)\n\n          while (offset > -1 && offset < nodeAsParent.children.length) {\n            const child = nodeAsParent.children[offset]\n\n            subresult = factory(child, offset, grandparents)()\n\n            if (subresult[0] === EXIT) {\n              return subresult\n            }\n\n            offset =\n              typeof subresult[1] === 'number' ? subresult[1] : offset + step\n          }\n        }\n      }\n\n      return result\n    }\n  }\n}\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n *   Valid return values from visitors.\n * @returns {Readonly<ActionTuple>}\n *   Clean result.\n */\nfunction toResult(value) {\n  if (Array.isArray(value)) {\n    return value\n  }\n\n  if (typeof value === 'number') {\n    return [CONTINUE, value]\n  }\n\n  return value === null || value === undefined ? empty : [value]\n}\n","/**\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Text} Text\n * @typedef {import('unist-util-visit-parents').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef RegExpMatchObject\n *   Info on the match.\n * @property {number} index\n *   The index of the search at which the result was found.\n * @property {string} input\n *   A copy of the search string in the text node.\n * @property {[...Array<Parents>, Text]} stack\n *   All ancestors of the text node, where the last node is the text itself.\n *\n * @typedef {RegExp | string} Find\n *   Pattern to find.\n *\n *   Strings are escaped and then turned into global expressions.\n *\n * @typedef {Array<FindAndReplaceTuple>} FindAndReplaceList\n *   Several find and replaces, in array form.\n *\n * @typedef {[Find, Replace?]} FindAndReplaceTuple\n *   Find and replace in tuple form.\n *\n * @typedef {ReplaceFunction | string | null | undefined} Replace\n *   Thing to replace with.\n *\n * @callback ReplaceFunction\n *   Callback called when a search matches.\n * @param {...any} parameters\n *   The parameters are the result of corresponding search expression:\n *\n *   * `value` (`string`) — whole match\n *   * `...capture` (`Array<string>`) — matches from regex capture groups\n *   * `match` (`RegExpMatchObject`) — info on the match\n * @returns {Array<PhrasingContent> | PhrasingContent | string | false | null | undefined}\n *   Thing to replace with.\n *\n *   * when `null`, `undefined`, `''`, remove the match\n *   * …or when `false`, do not replace at all\n *   * …or when `string`, replace with a text node of that value\n *   * …or when `Node` or `Array<Node>`, replace with those nodes\n *\n * @typedef {[RegExp, ReplaceFunction]} Pair\n *   Normalized find and replace.\n *\n * @typedef {Array<Pair>} Pairs\n *   All find and replaced.\n *\n * @typedef Options\n *   Configuration.\n * @property {Test | null | undefined} [ignore]\n *   Test for which nodes to ignore (optional).\n */\n\nimport escape from 'escape-string-regexp'\nimport {visitParents} from 'unist-util-visit-parents'\nimport {convert} from 'unist-util-is'\n\n/**\n * Find patterns in a tree and replace them.\n *\n * The algorithm searches the tree in *preorder* for complete values in `Text`\n * nodes.\n * Partial matches are not supported.\n *\n * @param {Nodes} tree\n *   Tree to change.\n * @param {FindAndReplaceList | FindAndReplaceTuple} list\n *   Patterns to find.\n * @param {Options | null | undefined} [options]\n *   Configuration (when `find` is not `Find`).\n * @returns {undefined}\n *   Nothing.\n */\nexport function findAndReplace(tree, list, options) {\n  const settings = options || {}\n  const ignored = convert(settings.ignore || [])\n  const pairs = toPairs(list)\n  let pairIndex = -1\n\n  while (++pairIndex < pairs.length) {\n    visitParents(tree, 'text', visitor)\n  }\n\n  /** @type {import('unist-util-visit-parents').BuildVisitor<Root, 'text'>} */\n  function visitor(node, parents) {\n    let index = -1\n    /** @type {Parents | undefined} */\n    let grandparent\n\n    while (++index < parents.length) {\n      const parent = parents[index]\n      /** @type {Array<Nodes> | undefined} */\n      const siblings = grandparent ? grandparent.children : undefined\n\n      if (\n        ignored(\n          parent,\n          siblings ? siblings.indexOf(parent) : undefined,\n          grandparent\n        )\n      ) {\n        return\n      }\n\n      grandparent = parent\n    }\n\n    if (grandparent) {\n      return handler(node, parents)\n    }\n  }\n\n  /**\n   * Handle a text node which is not in an ignored parent.\n   *\n   * @param {Text} node\n   *   Text node.\n   * @param {Array<Parents>} parents\n   *   Parents.\n   * @returns {VisitorResult}\n   *   Result.\n   */\n  function handler(node, parents) {\n    const parent = parents[parents.length - 1]\n    const find = pairs[pairIndex][0]\n    const replace = pairs[pairIndex][1]\n    let start = 0\n    /** @type {Array<Nodes>} */\n    const siblings = parent.children\n    const index = siblings.indexOf(node)\n    let change = false\n    /** @type {Array<PhrasingContent>} */\n    let nodes = []\n\n    find.lastIndex = 0\n\n    let match = find.exec(node.value)\n\n    while (match) {\n      const position = match.index\n      /** @type {RegExpMatchObject} */\n      const matchObject = {\n        index: match.index,\n        input: match.input,\n        stack: [...parents, node]\n      }\n      let value = replace(...match, matchObject)\n\n      if (typeof value === 'string') {\n        value = value.length > 0 ? {type: 'text', value} : undefined\n      }\n\n      // It wasn’t a match after all.\n      if (value === false) {\n        // False acts as if there was no match.\n        // So we need to reset `lastIndex`, which currently being at the end of\n        // the current match, to the beginning.\n        find.lastIndex = position + 1\n      } else {\n        if (start !== position) {\n          nodes.push({\n            type: 'text',\n            value: node.value.slice(start, position)\n          })\n        }\n\n        if (Array.isArray(value)) {\n          nodes.push(...value)\n        } else if (value) {\n          nodes.push(value)\n        }\n\n        start = position + match[0].length\n        change = true\n      }\n\n      if (!find.global) {\n        break\n      }\n\n      match = find.exec(node.value)\n    }\n\n    if (change) {\n      if (start < node.value.length) {\n        nodes.push({type: 'text', value: node.value.slice(start)})\n      }\n\n      parent.children.splice(index, 1, ...nodes)\n    } else {\n      nodes = [node]\n    }\n\n    return index + nodes.length\n  }\n}\n\n/**\n * Turn a tuple or a list of tuples into pairs.\n *\n * @param {FindAndReplaceList | FindAndReplaceTuple} tupleOrList\n *   Schema.\n * @returns {Pairs}\n *   Clean pairs.\n */\nfunction toPairs(tupleOrList) {\n  /** @type {Pairs} */\n  const result = []\n\n  if (!Array.isArray(tupleOrList)) {\n    throw new TypeError('Expected find and replace tuple or list of tuples')\n  }\n\n  /** @type {FindAndReplaceList} */\n  // @ts-expect-error: correct.\n  const list =\n    !tupleOrList[0] || Array.isArray(tupleOrList[0])\n      ? tupleOrList\n      : [tupleOrList]\n\n  let index = -1\n\n  while (++index < list.length) {\n    const tuple = list[index]\n    result.push([toExpression(tuple[0]), toFunction(tuple[1])])\n  }\n\n  return result\n}\n\n/**\n * Turn a find into an expression.\n *\n * @param {Find} find\n *   Find.\n * @returns {RegExp}\n *   Expression.\n */\nfunction toExpression(find) {\n  return typeof find === 'string' ? new RegExp(escape(find), 'g') : find\n}\n\n/**\n * Turn a replace into a function.\n *\n * @param {Replace} replace\n *   Replace.\n * @returns {ReplaceFunction}\n *   Function.\n */\nfunction toFunction(replace) {\n  return typeof replace === 'function'\n    ? replace\n    : function () {\n        return replace\n      }\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-from-markdown').Transform} FromMarkdownTransform\n *\n * @typedef {import('mdast-util-to-markdown').ConstructName} ConstructName\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n *\n * @typedef {import('mdast-util-find-and-replace').RegExpMatchObject} RegExpMatchObject\n * @typedef {import('mdast-util-find-and-replace').ReplaceFunction} ReplaceFunction\n */\n\nimport {ccount} from 'ccount'\nimport {ok as assert} from 'devlop'\nimport {unicodePunctuation, unicodeWhitespace} from 'micromark-util-character'\nimport {findAndReplace} from 'mdast-util-find-and-replace'\n\n/** @type {ConstructName} */\nconst inConstruct = 'phrasing'\n/** @type {Array<ConstructName>} */\nconst notInConstruct = ['autolink', 'link', 'image', 'label']\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM autolink\n * literals in markdown.\n *\n * @returns {FromMarkdownExtension}\n *   Extension for `mdast-util-to-markdown` to enable GFM autolink literals.\n */\nexport function gfmAutolinkLiteralFromMarkdown() {\n  return {\n    transforms: [transformGfmAutolinkLiterals],\n    enter: {\n      literalAutolink: enterLiteralAutolink,\n      literalAutolinkEmail: enterLiteralAutolinkValue,\n      literalAutolinkHttp: enterLiteralAutolinkValue,\n      literalAutolinkWww: enterLiteralAutolinkValue\n    },\n    exit: {\n      literalAutolink: exitLiteralAutolink,\n      literalAutolinkEmail: exitLiteralAutolinkEmail,\n      literalAutolinkHttp: exitLiteralAutolinkHttp,\n      literalAutolinkWww: exitLiteralAutolinkWww\n    }\n  }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM autolink\n * literals in markdown.\n *\n * @returns {ToMarkdownExtension}\n *   Extension for `mdast-util-to-markdown` to enable GFM autolink literals.\n */\nexport function gfmAutolinkLiteralToMarkdown() {\n  return {\n    unsafe: [\n      {\n        character: '@',\n        before: '[+\\\\-.\\\\w]',\n        after: '[\\\\-.\\\\w]',\n        inConstruct,\n        notInConstruct\n      },\n      {\n        character: '.',\n        before: '[Ww]',\n        after: '[\\\\-.\\\\w]',\n        inConstruct,\n        notInConstruct\n      },\n      {\n        character: ':',\n        before: '[ps]',\n        after: '\\\\/',\n        inConstruct,\n        notInConstruct\n      }\n    ]\n  }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterLiteralAutolink(token) {\n  this.enter({type: 'link', title: null, url: '', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterLiteralAutolinkValue(token) {\n  this.config.enter.autolinkProtocol.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkHttp(token) {\n  this.config.exit.autolinkProtocol.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkWww(token) {\n  this.config.exit.data.call(this, token)\n  const node = this.stack[this.stack.length - 1]\n  assert(node.type === 'link')\n  node.url = 'http://' + this.sliceSerialize(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkEmail(token) {\n  this.config.exit.autolinkEmail.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolink(token) {\n  this.exit(token)\n}\n\n/** @type {FromMarkdownTransform} */\nfunction transformGfmAutolinkLiterals(tree) {\n  findAndReplace(\n    tree,\n    [\n      [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi, findUrl],\n      [/([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/g, findEmail]\n    ],\n    {ignore: ['link', 'linkReference']}\n  )\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} protocol\n * @param {string} domain\n * @param {string} path\n * @param {RegExpMatchObject} match\n * @returns {Array<PhrasingContent> | Link | false}\n */\n// eslint-disable-next-line max-params\nfunction findUrl(_, protocol, domain, path, match) {\n  let prefix = ''\n\n  // Not an expected previous character.\n  if (!previous(match)) {\n    return false\n  }\n\n  // Treat `www` as part of the domain.\n  if (/^w/i.test(protocol)) {\n    domain = protocol + domain\n    protocol = ''\n    prefix = 'http://'\n  }\n\n  if (!isCorrectDomain(domain)) {\n    return false\n  }\n\n  const parts = splitUrl(domain + path)\n\n  if (!parts[0]) return false\n\n  /** @type {Link} */\n  const result = {\n    type: 'link',\n    title: null,\n    url: prefix + protocol + parts[0],\n    children: [{type: 'text', value: protocol + parts[0]}]\n  }\n\n  if (parts[1]) {\n    return [result, {type: 'text', value: parts[1]}]\n  }\n\n  return result\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} atext\n * @param {string} label\n * @param {RegExpMatchObject} match\n * @returns {Link | false}\n */\nfunction findEmail(_, atext, label, match) {\n  if (\n    // Not an expected previous character.\n    !previous(match, true) ||\n    // Label ends in not allowed character.\n    /[-\\d_]$/.test(label)\n  ) {\n    return false\n  }\n\n  return {\n    type: 'link',\n    title: null,\n    url: 'mailto:' + atext + '@' + label,\n    children: [{type: 'text', value: atext + '@' + label}]\n  }\n}\n\n/**\n * @param {string} domain\n * @returns {boolean}\n */\nfunction isCorrectDomain(domain) {\n  const parts = domain.split('.')\n\n  if (\n    parts.length < 2 ||\n    (parts[parts.length - 1] &&\n      (/_/.test(parts[parts.length - 1]) ||\n        !/[a-zA-Z\\d]/.test(parts[parts.length - 1]))) ||\n    (parts[parts.length - 2] &&\n      (/_/.test(parts[parts.length - 2]) ||\n        !/[a-zA-Z\\d]/.test(parts[parts.length - 2])))\n  ) {\n    return false\n  }\n\n  return true\n}\n\n/**\n * @param {string} url\n * @returns {[string, string | undefined]}\n */\nfunction splitUrl(url) {\n  const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url)\n\n  if (!trailExec) {\n    return [url, undefined]\n  }\n\n  url = url.slice(0, trailExec.index)\n\n  let trail = trailExec[0]\n  let closingParenIndex = trail.indexOf(')')\n  const openingParens = ccount(url, '(')\n  let closingParens = ccount(url, ')')\n\n  while (closingParenIndex !== -1 && openingParens > closingParens) {\n    url += trail.slice(0, closingParenIndex + 1)\n    trail = trail.slice(closingParenIndex + 1)\n    closingParenIndex = trail.indexOf(')')\n    closingParens++\n  }\n\n  return [url, trail]\n}\n\n/**\n * @param {RegExpMatchObject} match\n * @param {boolean | null | undefined} [email=false]\n * @returns {boolean}\n */\nfunction previous(match, email) {\n  const code = match.input.charCodeAt(match.index - 1)\n\n  return (\n    (match.index === 0 ||\n      unicodeWhitespace(code) ||\n      unicodePunctuation(code)) &&\n    (!email || code !== 47)\n  )\n}\n","/**\n * Normalize an identifier (as found in references, definitions).\n *\n * Collapses markdown whitespace, trim, and then lower- and uppercase.\n *\n * Some characters are considered “uppercase”, such as U+03F4 (`ϴ`), but if their\n * lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different\n * uppercase character (U+0398 (`Θ`)).\n * So, to get a canonical form, we perform both lower- and uppercase.\n *\n * Using uppercase last makes sure keys will never interact with default\n * prototypal values (such as `constructor`): nothing in the prototype of\n * `Object` is uppercase.\n *\n * @param {string} value\n *   Identifier to normalize.\n * @returns {string}\n *   Normalized identifier.\n */\nexport function normalizeIdentifier(value) {\n  return (\n    value\n      // Collapse markdown whitespace.\n      .replace(/[\\t\\n\\r ]+/g, ' ')\n      // Trim.\n      .replace(/^ | $/g, '')\n      // Some characters are considered “uppercase”, but if their lowercase\n      // counterpart is uppercased will result in a different uppercase\n      // character.\n      // Hence, to get that form, we perform both lower- and uppercase.\n      // Upper case makes sure keys will not interact with default prototypal\n      // methods: no method is uppercase.\n      .toLowerCase()\n      .toUpperCase()\n  )\n}\n","/**\n * @typedef {import('mdast').FootnoteDefinition} FootnoteDefinition\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Map} Map\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n */\n\nimport {ok as assert} from 'devlop'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\n\nfootnoteReference.peek = footnoteReferencePeek\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM footnotes\n * in markdown.\n *\n * @returns {FromMarkdownExtension}\n *   Extension for `mdast-util-from-markdown`.\n */\nexport function gfmFootnoteFromMarkdown() {\n  return {\n    enter: {\n      gfmFootnoteDefinition: enterFootnoteDefinition,\n      gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString,\n      gfmFootnoteCall: enterFootnoteCall,\n      gfmFootnoteCallString: enterFootnoteCallString\n    },\n    exit: {\n      gfmFootnoteDefinition: exitFootnoteDefinition,\n      gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString,\n      gfmFootnoteCall: exitFootnoteCall,\n      gfmFootnoteCallString: exitFootnoteCallString\n    }\n  }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM footnotes\n * in markdown.\n *\n * @returns {ToMarkdownExtension}\n *   Extension for `mdast-util-to-markdown`.\n */\nexport function gfmFootnoteToMarkdown() {\n  return {\n    // This is on by default already.\n    unsafe: [{character: '[', inConstruct: ['phrasing', 'label', 'reference']}],\n    handlers: {footnoteDefinition, footnoteReference}\n  }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteDefinition(token) {\n  this.enter(\n    {type: 'footnoteDefinition', identifier: '', label: '', children: []},\n    token\n  )\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteDefinitionLabelString() {\n  this.buffer()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteDefinitionLabelString(token) {\n  const label = this.resume()\n  const node = this.stack[this.stack.length - 1]\n  assert(node.type === 'footnoteDefinition')\n  node.label = label\n  node.identifier = normalizeIdentifier(\n    this.sliceSerialize(token)\n  ).toLowerCase()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteDefinition(token) {\n  this.exit(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteCall(token) {\n  this.enter({type: 'footnoteReference', identifier: '', label: ''}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteCallString() {\n  this.buffer()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteCallString(token) {\n  const label = this.resume()\n  const node = this.stack[this.stack.length - 1]\n  assert(node.type === 'footnoteReference')\n  node.label = label\n  node.identifier = normalizeIdentifier(\n    this.sliceSerialize(token)\n  ).toLowerCase()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteCall(token) {\n  this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {FootnoteReference} node\n */\nfunction footnoteReference(node, _, state, info) {\n  const tracker = state.createTracker(info)\n  let value = tracker.move('[^')\n  const exit = state.enter('footnoteReference')\n  const subexit = state.enter('reference')\n  value += tracker.move(\n    state.safe(state.associationId(node), {\n      ...tracker.current(),\n      before: value,\n      after: ']'\n    })\n  )\n  subexit()\n  exit()\n  value += tracker.move(']')\n  return value\n}\n\n/** @type {ToMarkdownHandle} */\nfunction footnoteReferencePeek() {\n  return '['\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {FootnoteDefinition} node\n */\nfunction footnoteDefinition(node, _, state, info) {\n  const tracker = state.createTracker(info)\n  let value = tracker.move('[^')\n  const exit = state.enter('footnoteDefinition')\n  const subexit = state.enter('label')\n  value += tracker.move(\n    state.safe(state.associationId(node), {\n      ...tracker.current(),\n      before: value,\n      after: ']'\n    })\n  )\n  subexit()\n  value += tracker.move(\n    ']:' + (node.children && node.children.length > 0 ? ' ' : '')\n  )\n  tracker.shift(4)\n  value += tracker.move(\n    state.indentLines(state.containerFlow(node, tracker.current()), map)\n  )\n  exit()\n\n  return value\n}\n\n/** @type {Map} */\nfunction map(line, index, blank) {\n  if (index === 0) {\n    return line\n  }\n\n  return (blank ? '' : '    ') + line\n}\n","/**\n * @typedef {import('mdast').Delete} Delete\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n *\n * @typedef {import('mdast-util-to-markdown').ConstructName} ConstructName\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n */\n\n/**\n * List of constructs that occur in phrasing (paragraphs, headings), but cannot\n * contain strikethrough.\n * So they sort of cancel each other out.\n * Note: could use a better name.\n *\n * Note: keep in sync with: <https://github.com/syntax-tree/mdast-util-to-markdown/blob/8ce8dbf/lib/unsafe.js#L14>\n *\n * @type {Array<ConstructName>}\n */\nconst constructsWithoutStrikethrough = [\n  'autolink',\n  'destinationLiteral',\n  'destinationRaw',\n  'reference',\n  'titleQuote',\n  'titleApostrophe'\n]\n\nhandleDelete.peek = peekDelete\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM\n * strikethrough in markdown.\n *\n * @returns {FromMarkdownExtension}\n *   Extension for `mdast-util-from-markdown` to enable GFM strikethrough.\n */\nexport function gfmStrikethroughFromMarkdown() {\n  return {\n    canContainEols: ['delete'],\n    enter: {strikethrough: enterStrikethrough},\n    exit: {strikethrough: exitStrikethrough}\n  }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM\n * strikethrough in markdown.\n *\n * @returns {ToMarkdownExtension}\n *   Extension for `mdast-util-to-markdown` to enable GFM strikethrough.\n */\nexport function gfmStrikethroughToMarkdown() {\n  return {\n    unsafe: [\n      {\n        character: '~',\n        inConstruct: 'phrasing',\n        notInConstruct: constructsWithoutStrikethrough\n      }\n    ],\n    handlers: {delete: handleDelete}\n  }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterStrikethrough(token) {\n  this.enter({type: 'delete', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitStrikethrough(token) {\n  this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {Delete} node\n */\nfunction handleDelete(node, _, state, info) {\n  const tracker = state.createTracker(info)\n  const exit = state.enter('strikethrough')\n  let value = tracker.move('~~')\n  value += state.containerPhrasing(node, {\n    ...tracker.current(),\n    before: value,\n    after: '~'\n  })\n  value += tracker.move('~~')\n  exit()\n  return value\n}\n\n/** @type {ToMarkdownHandle} */\nfunction peekDelete() {\n  return '~'\n}\n","/**\n * @typedef Options\n *   Configuration (optional).\n * @property {string|null|ReadonlyArray<string|null|undefined>} [align]\n *   One style for all columns, or styles for their respective columns.\n *   Each style is either `'l'` (left), `'r'` (right), or `'c'` (center).\n *   Other values are treated as `''`, which doesn’t place the colon in the\n *   alignment row but does align left.\n *   *Only the lowercased first character is used, so `Right` is fine.*\n * @property {boolean} [padding=true]\n *   Whether to add a space of padding between delimiters and cells.\n *\n *   When `true`, there is padding:\n *\n *   ```markdown\n *   | Alpha | B     |\n *   | ----- | ----- |\n *   | C     | Delta |\n *   ```\n *\n *   When `false`, there is no padding:\n *\n *   ```markdown\n *   |Alpha|B    |\n *   |-----|-----|\n *   |C    |Delta|\n *   ```\n * @property {boolean} [delimiterStart=true]\n *   Whether to begin each row with the delimiter.\n *\n *   > 👉 **Note**: please don’t use this: it could create fragile structures\n *   > that aren’t understandable to some markdown parsers.\n *\n *   When `true`, there are starting delimiters:\n *\n *   ```markdown\n *   | Alpha | B     |\n *   | ----- | ----- |\n *   | C     | Delta |\n *   ```\n *\n *   When `false`, there are no starting delimiters:\n *\n *   ```markdown\n *   Alpha | B     |\n *   ----- | ----- |\n *   C     | Delta |\n *   ```\n * @property {boolean} [delimiterEnd=true]\n *   Whether to end each row with the delimiter.\n *\n *   > 👉 **Note**: please don’t use this: it could create fragile structures\n *   > that aren’t understandable to some markdown parsers.\n *\n *   When `true`, there are ending delimiters:\n *\n *   ```markdown\n *   | Alpha | B     |\n *   | ----- | ----- |\n *   | C     | Delta |\n *   ```\n *\n *   When `false`, there are no ending delimiters:\n *\n *   ```markdown\n *   | Alpha | B\n *   | ----- | -----\n *   | C     | Delta\n *   ```\n * @property {boolean} [alignDelimiters=true]\n *   Whether to align the delimiters.\n *   By default, they are aligned:\n *\n *   ```markdown\n *   | Alpha | B     |\n *   | ----- | ----- |\n *   | C     | Delta |\n *   ```\n *\n *   Pass `false` to make them staggered:\n *\n *   ```markdown\n *   | Alpha | B |\n *   | - | - |\n *   | C | Delta |\n *   ```\n * @property {(value: string) => number} [stringLength]\n *   Function to detect the length of table cell content.\n *   This is used when aligning the delimiters (`|`) between table cells.\n *   Full-width characters and emoji mess up delimiter alignment when viewing\n *   the markdown source.\n *   To fix this, you can pass this function, which receives the cell content\n *   and returns its “visible” size.\n *   Note that what is and isn’t visible depends on where the text is displayed.\n *\n *   Without such a function, the following:\n *\n *   ```js\n *   markdownTable([\n *     ['Alpha', 'Bravo'],\n *     ['中文', 'Charlie'],\n *     ['👩‍❤️‍👩', 'Delta']\n *   ])\n *   ```\n *\n *   Yields:\n *\n *   ```markdown\n *   | Alpha | Bravo |\n *   | - | - |\n *   | 中文 | Charlie |\n *   | 👩‍❤️‍👩 | Delta |\n *   ```\n *\n *   With [`string-width`](https://github.com/sindresorhus/string-width):\n *\n *   ```js\n *   import stringWidth from 'string-width'\n *\n *   markdownTable(\n *     [\n *       ['Alpha', 'Bravo'],\n *       ['中文', 'Charlie'],\n *       ['👩‍❤️‍👩', 'Delta']\n *     ],\n *     {stringLength: stringWidth}\n *   )\n *   ```\n *\n *   Yields:\n *\n *   ```markdown\n *   | Alpha | Bravo   |\n *   | ----- | ------- |\n *   | 中文  | Charlie |\n *   | 👩‍❤️‍👩    | Delta   |\n *   ```\n */\n\n/**\n * @typedef {Options} MarkdownTableOptions\n * @todo\n *   Remove next major.\n */\n\n/**\n * Generate a markdown ([GFM](https://docs.github.com/en/github/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables)) table..\n *\n * @param {ReadonlyArray<ReadonlyArray<string|null|undefined>>} table\n *   Table data (matrix of strings).\n * @param {Options} [options]\n *   Configuration (optional).\n * @returns {string}\n */\nexport function markdownTable(table, options = {}) {\n  const align = (options.align || []).concat()\n  const stringLength = options.stringLength || defaultStringLength\n  /** @type {Array<number>} Character codes as symbols for alignment per column. */\n  const alignments = []\n  /** @type {Array<Array<string>>} Cells per row. */\n  const cellMatrix = []\n  /** @type {Array<Array<number>>} Sizes of each cell per row. */\n  const sizeMatrix = []\n  /** @type {Array<number>} */\n  const longestCellByColumn = []\n  let mostCellsPerRow = 0\n  let rowIndex = -1\n\n  // This is a superfluous loop if we don’t align delimiters, but otherwise we’d\n  // do superfluous work when aligning, so optimize for aligning.\n  while (++rowIndex < table.length) {\n    /** @type {Array<string>} */\n    const row = []\n    /** @type {Array<number>} */\n    const sizes = []\n    let columnIndex = -1\n\n    if (table[rowIndex].length > mostCellsPerRow) {\n      mostCellsPerRow = table[rowIndex].length\n    }\n\n    while (++columnIndex < table[rowIndex].length) {\n      const cell = serialize(table[rowIndex][columnIndex])\n\n      if (options.alignDelimiters !== false) {\n        const size = stringLength(cell)\n        sizes[columnIndex] = size\n\n        if (\n          longestCellByColumn[columnIndex] === undefined ||\n          size > longestCellByColumn[columnIndex]\n        ) {\n          longestCellByColumn[columnIndex] = size\n        }\n      }\n\n      row.push(cell)\n    }\n\n    cellMatrix[rowIndex] = row\n    sizeMatrix[rowIndex] = sizes\n  }\n\n  // Figure out which alignments to use.\n  let columnIndex = -1\n\n  if (typeof align === 'object' && 'length' in align) {\n    while (++columnIndex < mostCellsPerRow) {\n      alignments[columnIndex] = toAlignment(align[columnIndex])\n    }\n  } else {\n    const code = toAlignment(align)\n\n    while (++columnIndex < mostCellsPerRow) {\n      alignments[columnIndex] = code\n    }\n  }\n\n  // Inject the alignment row.\n  columnIndex = -1\n  /** @type {Array<string>} */\n  const row = []\n  /** @type {Array<number>} */\n  const sizes = []\n\n  while (++columnIndex < mostCellsPerRow) {\n    const code = alignments[columnIndex]\n    let before = ''\n    let after = ''\n\n    if (code === 99 /* `c` */) {\n      before = ':'\n      after = ':'\n    } else if (code === 108 /* `l` */) {\n      before = ':'\n    } else if (code === 114 /* `r` */) {\n      after = ':'\n    }\n\n    // There *must* be at least one hyphen-minus in each alignment cell.\n    let size =\n      options.alignDelimiters === false\n        ? 1\n        : Math.max(\n            1,\n            longestCellByColumn[columnIndex] - before.length - after.length\n          )\n\n    const cell = before + '-'.repeat(size) + after\n\n    if (options.alignDelimiters !== false) {\n      size = before.length + size + after.length\n\n      if (size > longestCellByColumn[columnIndex]) {\n        longestCellByColumn[columnIndex] = size\n      }\n\n      sizes[columnIndex] = size\n    }\n\n    row[columnIndex] = cell\n  }\n\n  // Inject the alignment row.\n  cellMatrix.splice(1, 0, row)\n  sizeMatrix.splice(1, 0, sizes)\n\n  rowIndex = -1\n  /** @type {Array<string>} */\n  const lines = []\n\n  while (++rowIndex < cellMatrix.length) {\n    const row = cellMatrix[rowIndex]\n    const sizes = sizeMatrix[rowIndex]\n    columnIndex = -1\n    /** @type {Array<string>} */\n    const line = []\n\n    while (++columnIndex < mostCellsPerRow) {\n      const cell = row[columnIndex] || ''\n      let before = ''\n      let after = ''\n\n      if (options.alignDelimiters !== false) {\n        const size =\n          longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0)\n        const code = alignments[columnIndex]\n\n        if (code === 114 /* `r` */) {\n          before = ' '.repeat(size)\n        } else if (code === 99 /* `c` */) {\n          if (size % 2) {\n            before = ' '.repeat(size / 2 + 0.5)\n            after = ' '.repeat(size / 2 - 0.5)\n          } else {\n            before = ' '.repeat(size / 2)\n            after = before\n          }\n        } else {\n          after = ' '.repeat(size)\n        }\n      }\n\n      if (options.delimiterStart !== false && !columnIndex) {\n        line.push('|')\n      }\n\n      if (\n        options.padding !== false &&\n        // Don’t add the opening space if we’re not aligning and the cell is\n        // empty: there will be a closing space.\n        !(options.alignDelimiters === false && cell === '') &&\n        (options.delimiterStart !== false || columnIndex)\n      ) {\n        line.push(' ')\n      }\n\n      if (options.alignDelimiters !== false) {\n        line.push(before)\n      }\n\n      line.push(cell)\n\n      if (options.alignDelimiters !== false) {\n        line.push(after)\n      }\n\n      if (options.padding !== false) {\n        line.push(' ')\n      }\n\n      if (\n        options.delimiterEnd !== false ||\n        columnIndex !== mostCellsPerRow - 1\n      ) {\n        line.push('|')\n      }\n    }\n\n    lines.push(\n      options.delimiterEnd === false\n        ? line.join('').replace(/ +$/, '')\n        : line.join('')\n    )\n  }\n\n  return lines.join('\\n')\n}\n\n/**\n * @param {string|null|undefined} [value]\n * @returns {string}\n */\nfunction serialize(value) {\n  return value === null || value === undefined ? '' : String(value)\n}\n\n/**\n * @param {string} value\n * @returns {number}\n */\nfunction defaultStringLength(value) {\n  return value.length\n}\n\n/**\n * @param {string|null|undefined} value\n * @returns {number}\n */\nfunction toAlignment(value) {\n  const code = typeof value === 'string' ? value.codePointAt(0) : 0\n\n  return code === 67 /* `C` */ || code === 99 /* `c` */\n    ? 99 /* `c` */\n    : code === 76 /* `L` */ || code === 108 /* `l` */\n    ? 108 /* `l` */\n    : code === 82 /* `R` */ || code === 114 /* `r` */\n    ? 114 /* `r` */\n    : 0\n}\n","/**\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Map} Map\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Blockquote} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function blockquote(node, _, state, info) {\n  const exit = state.enter('blockquote')\n  const tracker = state.createTracker(info)\n  tracker.move('> ')\n  tracker.shift(2)\n  const value = state.indentLines(\n    state.containerFlow(node, tracker.current()),\n    map\n  )\n  exit()\n  return value\n}\n\n/** @type {Map} */\nfunction map(line, _, blank) {\n  return '>' + (blank ? '' : ' ') + line\n}\n","/**\n * @typedef {import('../types.js').ConstructName} ConstructName\n * @typedef {import('../types.js').Unsafe} Unsafe\n */\n\n/**\n * @param {Array<ConstructName>} stack\n * @param {Unsafe} pattern\n * @returns {boolean}\n */\nexport function patternInScope(stack, pattern) {\n  return (\n    listInScope(stack, pattern.inConstruct, true) &&\n    !listInScope(stack, pattern.notInConstruct, false)\n  )\n}\n\n/**\n * @param {Array<ConstructName>} stack\n * @param {Unsafe['inConstruct']} list\n * @param {boolean} none\n * @returns {boolean}\n */\nfunction listInScope(stack, list, none) {\n  if (typeof list === 'string') {\n    list = [list]\n  }\n\n  if (!list || list.length === 0) {\n    return none\n  }\n\n  let index = -1\n\n  while (++index < list.length) {\n    if (stack.includes(list[index])) {\n      return true\n    }\n  }\n\n  return false\n}\n","/**\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {patternInScope} from '../util/pattern-in-scope.js'\n\n/**\n * @param {Break} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function hardBreak(_, _1, state, info) {\n  let index = -1\n\n  while (++index < state.unsafe.length) {\n    // If we can’t put eols in this construct (setext headings, tables), use a\n    // space instead.\n    if (\n      state.unsafe[index].character === '\\n' &&\n      patternInScope(state.stack, state.unsafe[index])\n    ) {\n      return /[ \\t]/.test(info.before) ? '' : ' '\n    }\n  }\n\n  return '\\\\\\n'\n}\n","/**\n * Get the count of the longest repeating streak of `substring` in `value`.\n *\n * @param {string} value\n *   Content to search in.\n * @param {string} substring\n *   Substring to look for, typically one character.\n * @returns {number}\n *   Count of most frequent adjacent `substring`s in `value`.\n */\nexport function longestStreak(value, substring) {\n  const source = String(value)\n  let index = source.indexOf(substring)\n  let expected = index\n  let count = 0\n  let max = 0\n\n  if (typeof substring !== 'string') {\n    throw new TypeError('Expected substring')\n  }\n\n  while (index !== -1) {\n    if (index === expected) {\n      if (++count > max) {\n        max = count\n      }\n    } else {\n      count = 1\n    }\n\n    expected = index + substring.length\n    index = source.indexOf(substring, expected)\n  }\n\n  return max\n}\n","/**\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Code} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatCodeAsIndented(node, state) {\n  return Boolean(\n    state.options.fences === false &&\n      node.value &&\n      // If there’s no info…\n      !node.lang &&\n      // And there’s a non-whitespace character…\n      /[^ \\r\\n]/.test(node.value) &&\n      // And the value doesn’t start or end in a blank…\n      !/^[\\t ]*(?:[\\r\\n]|$)|(?:^|[\\r\\n])[\\t ]*$/.test(node.value)\n  )\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['fence'], null | undefined>}\n */\nexport function checkFence(state) {\n  const marker = state.options.fence || '`'\n\n  if (marker !== '`' && marker !== '~') {\n    throw new Error(\n      'Cannot serialize code with `' +\n        marker +\n        '` for `options.fence`, expected `` ` `` or `~`'\n    )\n  }\n\n  return marker\n}\n","/**\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Map} Map\n * @typedef {import('../types.js').State} State\n */\n\nimport {longestStreak} from 'longest-streak'\nimport {formatCodeAsIndented} from '../util/format-code-as-indented.js'\nimport {checkFence} from '../util/check-fence.js'\n\n/**\n * @param {Code} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function code(node, _, state, info) {\n  const marker = checkFence(state)\n  const raw = node.value || ''\n  const suffix = marker === '`' ? 'GraveAccent' : 'Tilde'\n\n  if (formatCodeAsIndented(node, state)) {\n    const exit = state.enter('codeIndented')\n    const value = state.indentLines(raw, map)\n    exit()\n    return value\n  }\n\n  const tracker = state.createTracker(info)\n  const sequence = marker.repeat(Math.max(longestStreak(raw, marker) + 1, 3))\n  const exit = state.enter('codeFenced')\n  let value = tracker.move(sequence)\n\n  if (node.lang) {\n    const subexit = state.enter(`codeFencedLang${suffix}`)\n    value += tracker.move(\n      state.safe(node.lang, {\n        before: value,\n        after: ' ',\n        encode: ['`'],\n        ...tracker.current()\n      })\n    )\n    subexit()\n  }\n\n  if (node.lang && node.meta) {\n    const subexit = state.enter(`codeFencedMeta${suffix}`)\n    value += tracker.move(' ')\n    value += tracker.move(\n      state.safe(node.meta, {\n        before: value,\n        after: '\\n',\n        encode: ['`'],\n        ...tracker.current()\n      })\n    )\n    subexit()\n  }\n\n  value += tracker.move('\\n')\n\n  if (raw) {\n    value += tracker.move(raw + '\\n')\n  }\n\n  value += tracker.move(sequence)\n  exit()\n  return value\n}\n\n/** @type {Map} */\nfunction map(line, _, blank) {\n  return (blank ? '' : '    ') + line\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['quote'], null | undefined>}\n */\nexport function checkQuote(state) {\n  const marker = state.options.quote || '\"'\n\n  if (marker !== '\"' && marker !== \"'\") {\n    throw new Error(\n      'Cannot serialize title with `' +\n        marker +\n        '` for `options.quote`, expected `\"`, or `\\'`'\n    )\n  }\n\n  return marker\n}\n","/**\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkQuote} from '../util/check-quote.js'\n\n/**\n * @param {Definition} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function definition(node, _, state, info) {\n  const quote = checkQuote(state)\n  const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n  const exit = state.enter('definition')\n  let subexit = state.enter('label')\n  const tracker = state.createTracker(info)\n  let value = tracker.move('[')\n  value += tracker.move(\n    state.safe(state.associationId(node), {\n      before: value,\n      after: ']',\n      ...tracker.current()\n    })\n  )\n  value += tracker.move(']: ')\n\n  subexit()\n\n  if (\n    // If there’s no url, or…\n    !node.url ||\n    // If there are control characters or whitespace.\n    /[\\0- \\u007F]/.test(node.url)\n  ) {\n    subexit = state.enter('destinationLiteral')\n    value += tracker.move('<')\n    value += tracker.move(\n      state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n    )\n    value += tracker.move('>')\n  } else {\n    // No whitespace, raw is prettier.\n    subexit = state.enter('destinationRaw')\n    value += tracker.move(\n      state.safe(node.url, {\n        before: value,\n        after: node.title ? ' ' : '\\n',\n        ...tracker.current()\n      })\n    )\n  }\n\n  subexit()\n\n  if (node.title) {\n    subexit = state.enter(`title${suffix}`)\n    value += tracker.move(' ' + quote)\n    value += tracker.move(\n      state.safe(node.title, {\n        before: value,\n        after: quote,\n        ...tracker.current()\n      })\n    )\n    value += tracker.move(quote)\n    subexit()\n  }\n\n  exit()\n\n  return value\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['emphasis'], null | undefined>}\n */\nexport function checkEmphasis(state) {\n  const marker = state.options.emphasis || '*'\n\n  if (marker !== '*' && marker !== '_') {\n    throw new Error(\n      'Cannot serialize emphasis with `' +\n        marker +\n        '` for `options.emphasis`, expected `*`, or `_`'\n    )\n  }\n\n  return marker\n}\n","/**\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkEmphasis} from '../util/check-emphasis.js'\n\nemphasis.peek = emphasisPeek\n\n// To do: there are cases where emphasis cannot “form” depending on the\n// previous or next character of sequences.\n// There’s no way around that though, except for injecting zero-width stuff.\n// Do we need to safeguard against that?\n/**\n * @param {Emphasis} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function emphasis(node, _, state, info) {\n  const marker = checkEmphasis(state)\n  const exit = state.enter('emphasis')\n  const tracker = state.createTracker(info)\n  let value = tracker.move(marker)\n  value += tracker.move(\n    state.containerPhrasing(node, {\n      before: value,\n      after: marker,\n      ...tracker.current()\n    })\n  )\n  value += tracker.move(marker)\n  exit()\n  return value\n}\n\n/**\n * @param {Emphasis} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nfunction emphasisPeek(_, _1, state) {\n  return state.options.emphasis || '*'\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n *   Test from `unist-util-is`.\n *\n *   Note: we have remove and add `undefined`, because otherwise when generating\n *   automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n *   which doesn’t work when publishing on npm.\n */\n\n// To do: use types from `unist-util-visit-parents` when it’s released.\n\n/**\n * @typedef {(\n *   Fn extends (value: any) => value is infer Thing\n *   ? Thing\n *   : Fallback\n * )} Predicate\n *   Get the value of a type guard `Fn`.\n * @template Fn\n *   Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n *   Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n *   Check extends null | undefined // No test.\n *   ? Value\n *   : Value extends {type: Check} // String (type) test.\n *   ? Value\n *   : Value extends Check // Partial test.\n *   ? Value\n *   : Check extends Function // Function test.\n *   ? Predicate<Check, Value> extends Value\n *     ? Predicate<Check, Value>\n *     : never\n *   : never // Some other test?\n * )} MatchesOne\n *   Check whether a node matches a primitive check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n *   Check extends Array<any>\n *   ? MatchesOne<Value, Check[keyof Check]>\n *   : MatchesOne<Value, Check>\n * )} Matches\n *   Check whether a node matches a check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n *   Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n *   Increment a number in the type system.\n * @template {Uint} [I=0]\n *   Index.\n */\n\n/**\n * @typedef {(\n *   Node extends UnistParent\n *   ? Node extends {children: Array<infer Children>}\n *     ? Child extends Children ? Node : never\n *     : never\n *   : never\n * )} InternalParent\n *   Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {InternalParent<InclusiveDescendant<Tree>, Child>} Parent\n *   Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {(\n *   Depth extends Max\n *   ? never\n *   :\n *     | InternalParent<Node, Child>\n *     | InternalAncestor<Node, InternalParent<Node, Child>, Max, Increment<Depth>>\n * )} InternalAncestor\n *   Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @typedef {(\n *   Tree extends UnistParent\n *     ? Depth extends Max\n *       ? Tree\n *       : Tree | InclusiveDescendant<Tree['children'][number], Max, Increment<Depth>>\n *     : Tree\n * )} InclusiveDescendant\n *   Collect all (inclusive) descendants of `Tree`.\n *\n *   > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n *   > recurse without actually running into an infinite loop, which the\n *   > previous version did.\n *   >\n *   > Practically, a max of `2` is typically enough assuming a `Root` is\n *   > passed, but it doesn’t improve performance.\n *   > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n *   > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n *   Tree type.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @callback Visitor\n *   Handle a node (matching `test`, if given).\n *\n *   Visitors are free to transform `node`.\n *   They can also transform `parent`.\n *\n *   Replacing `node` itself, if `SKIP` is not returned, still causes its\n *   descendants to be walked (which is a bug).\n *\n *   When adding or removing previous siblings of `node` (or next siblings, in\n *   case of reverse), the `Visitor` should return a new `Index` to specify the\n *   sibling to traverse after `node` is traversed.\n *   Adding or removing next siblings of `node` (or previous siblings, in case\n *   of reverse) is handled as expected without needing to return a new `Index`.\n *\n *   Removing the children property of `parent` still results in them being\n *   traversed.\n * @param {Visited} node\n *   Found node.\n * @param {Visited extends UnistNode ? number | undefined : never} index\n *   Index of `node` in `parent`.\n * @param {Ancestor extends UnistParent ? Ancestor | undefined : never} parent\n *   Parent of `node`.\n * @returns {VisitorResult}\n *   What to do next.\n *\n *   An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n *   An `Action` is treated as a tuple of `[Action]`.\n *\n *   Passing a tuple back only makes sense if the `Action` is `SKIP`.\n *   When the `Action` is `EXIT`, that action can be returned.\n *   When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n *   Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n *   Ancestor type.\n */\n\n/**\n * @typedef {Visitor<Visited, Parent<Ancestor, Visited>>} BuildVisitorFromMatch\n *   Build a typed `Visitor` function from a node and all possible parents.\n *\n *   It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Visited\n *   Node type.\n * @template {UnistParent} Ancestor\n *   Parent type.\n */\n\n/**\n * @typedef {(\n *   BuildVisitorFromMatch<\n *     Matches<Descendant, Check>,\n *     Extract<Descendant, UnistParent>\n *   >\n * )} BuildVisitorFromDescendants\n *   Build a typed `Visitor` function from a list of descendants and a test.\n *\n *   It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Descendant\n *   Node type.\n * @template {Test} Check\n *   Test type.\n */\n\n/**\n * @typedef {(\n *   BuildVisitorFromDescendants<\n *     InclusiveDescendant<Tree>,\n *     Check\n *   >\n * )} BuildVisitor\n *   Build a typed `Visitor` function from a tree and a test.\n *\n *   It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} [Tree=UnistNode]\n *   Node type.\n * @template {Test} [Check=Test]\n *   Test type.\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor<Tree, Check>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor<Tree>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n *   Tree to traverse.\n * @param {Visitor | Test} testOrVisitor\n *   `unist-util-is`-compatible test (optional, omit to pass a visitor).\n * @param {Visitor | boolean | null | undefined} [visitorOrReverse]\n *   Handle each node (when test is omitted, pass `reverse`).\n * @param {boolean | null | undefined} [maybeReverse=false]\n *   Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n *   Nothing.\n *\n * @template {UnistNode} Tree\n *   Node type.\n * @template {Test} Check\n *   `unist-util-is`-compatible test.\n */\nexport function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n  /** @type {boolean | null | undefined} */\n  let reverse\n  /** @type {Test} */\n  let test\n  /** @type {Visitor} */\n  let visitor\n\n  if (\n    typeof testOrVisitor === 'function' &&\n    typeof visitorOrReverse !== 'function'\n  ) {\n    test = undefined\n    visitor = testOrVisitor\n    reverse = visitorOrReverse\n  } else {\n    // @ts-expect-error: assume the overload with test was given.\n    test = testOrVisitor\n    // @ts-expect-error: assume the overload with test was given.\n    visitor = visitorOrReverse\n    reverse = maybeReverse\n  }\n\n  visitParents(tree, test, overload, reverse)\n\n  /**\n   * @param {UnistNode} node\n   * @param {Array<UnistParent>} parents\n   */\n  function overload(node, parents) {\n    const parent = parents[parents.length - 1]\n    const index = parent ? parent.children.indexOf(node) : undefined\n    return visitor(node, index, parent)\n  }\n}\n","/**\n * @typedef {import('mdast').Nodes} Nodes\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [includeImageAlt=true]\n *   Whether to use `alt` for `image`s (default: `true`).\n * @property {boolean | null | undefined} [includeHtml=true]\n *   Whether to use `value` of HTML (default: `true`).\n */\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Get the text content of a node or list of nodes.\n *\n * Prefers the node’s plain-text fields, otherwise serializes its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} [value]\n *   Thing to serialize, typically `Node`.\n * @param {Options | null | undefined} [options]\n *   Configuration (optional).\n * @returns {string}\n *   Serialized `value`.\n */\nexport function toString(value, options) {\n  const settings = options || emptyOptions\n  const includeImageAlt =\n    typeof settings.includeImageAlt === 'boolean'\n      ? settings.includeImageAlt\n      : true\n  const includeHtml =\n    typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true\n\n  return one(value, includeImageAlt, includeHtml)\n}\n\n/**\n * One node or several nodes.\n *\n * @param {unknown} value\n *   Thing to serialize.\n * @param {boolean} includeImageAlt\n *   Include image `alt`s.\n * @param {boolean} includeHtml\n *   Include HTML.\n * @returns {string}\n *   Serialized node.\n */\nfunction one(value, includeImageAlt, includeHtml) {\n  if (node(value)) {\n    if ('value' in value) {\n      return value.type === 'html' && !includeHtml ? '' : value.value\n    }\n\n    if (includeImageAlt && 'alt' in value && value.alt) {\n      return value.alt\n    }\n\n    if ('children' in value) {\n      return all(value.children, includeImageAlt, includeHtml)\n    }\n  }\n\n  if (Array.isArray(value)) {\n    return all(value, includeImageAlt, includeHtml)\n  }\n\n  return ''\n}\n\n/**\n * Serialize a list of nodes.\n *\n * @param {Array<unknown>} values\n *   Thing to serialize.\n * @param {boolean} includeImageAlt\n *   Include image `alt`s.\n * @param {boolean} includeHtml\n *   Include HTML.\n * @returns {string}\n *   Serialized nodes.\n */\nfunction all(values, includeImageAlt, includeHtml) {\n  /** @type {Array<string>} */\n  const result = []\n  let index = -1\n\n  while (++index < values.length) {\n    result[index] = one(values[index], includeImageAlt, includeHtml)\n  }\n\n  return result.join('')\n}\n\n/**\n * Check if `value` looks like a node.\n *\n * @param {unknown} value\n *   Thing.\n * @returns {value is Nodes}\n *   Whether `value` is a node.\n */\nfunction node(value) {\n  return Boolean(value && typeof value === 'object')\n}\n","/**\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../types.js').State} State\n */\n\nimport {EXIT, visit} from 'unist-util-visit'\nimport {toString} from 'mdast-util-to-string'\n\n/**\n * @param {Heading} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatHeadingAsSetext(node, state) {\n  let literalWithBreak = false\n\n  // Look for literals with a line break.\n  // Note that this also\n  visit(node, function (node) {\n    if (\n      ('value' in node && /\\r?\\n|\\r/.test(node.value)) ||\n      node.type === 'break'\n    ) {\n      literalWithBreak = true\n      return EXIT\n    }\n  })\n\n  return Boolean(\n    (!node.depth || node.depth < 3) &&\n      toString(node) &&\n      (state.options.setext || literalWithBreak)\n  )\n}\n","/**\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {formatHeadingAsSetext} from '../util/format-heading-as-setext.js'\n\n/**\n * @param {Heading} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function heading(node, _, state, info) {\n  const rank = Math.max(Math.min(6, node.depth || 1), 1)\n  const tracker = state.createTracker(info)\n\n  if (formatHeadingAsSetext(node, state)) {\n    const exit = state.enter('headingSetext')\n    const subexit = state.enter('phrasing')\n    const value = state.containerPhrasing(node, {\n      ...tracker.current(),\n      before: '\\n',\n      after: '\\n'\n    })\n    subexit()\n    exit()\n\n    return (\n      value +\n      '\\n' +\n      (rank === 1 ? '=' : '-').repeat(\n        // The whole size…\n        value.length -\n          // Minus the position of the character after the last EOL (or\n          // 0 if there is none)…\n          (Math.max(value.lastIndexOf('\\r'), value.lastIndexOf('\\n')) + 1)\n      )\n    )\n  }\n\n  const sequence = '#'.repeat(rank)\n  const exit = state.enter('headingAtx')\n  const subexit = state.enter('phrasing')\n\n  // Note: for proper tracking, we should reset the output positions when there\n  // is no content returned, because then the space is not output.\n  // Practically, in that case, there is no content, so it doesn’t matter that\n  // we’ve tracked one too many characters.\n  tracker.move(sequence + ' ')\n\n  let value = state.containerPhrasing(node, {\n    before: '# ',\n    after: '\\n',\n    ...tracker.current()\n  })\n\n  if (/^[\\t ]/.test(value)) {\n    // To do: what effect has the character reference on tracking?\n    value =\n      '&#x' +\n      value.charCodeAt(0).toString(16).toUpperCase() +\n      ';' +\n      value.slice(1)\n  }\n\n  value = value ? sequence + ' ' + value : sequence\n\n  if (state.options.closeAtx) {\n    value += ' ' + sequence\n  }\n\n  subexit()\n  exit()\n\n  return value\n}\n","/**\n * @typedef {import('mdast').Html} Html\n */\n\nhtml.peek = htmlPeek\n\n/**\n * @param {Html} node\n * @returns {string}\n */\nexport function html(node) {\n  return node.value || ''\n}\n\n/**\n * @returns {string}\n */\nfunction htmlPeek() {\n  return '<'\n}\n","/**\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkQuote} from '../util/check-quote.js'\n\nimage.peek = imagePeek\n\n/**\n * @param {Image} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function image(node, _, state, info) {\n  const quote = checkQuote(state)\n  const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n  const exit = state.enter('image')\n  let subexit = state.enter('label')\n  const tracker = state.createTracker(info)\n  let value = tracker.move('![')\n  value += tracker.move(\n    state.safe(node.alt, {before: value, after: ']', ...tracker.current()})\n  )\n  value += tracker.move('](')\n\n  subexit()\n\n  if (\n    // If there’s no url but there is a title…\n    (!node.url && node.title) ||\n    // If there are control characters or whitespace.\n    /[\\0- \\u007F]/.test(node.url)\n  ) {\n    subexit = state.enter('destinationLiteral')\n    value += tracker.move('<')\n    value += tracker.move(\n      state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n    )\n    value += tracker.move('>')\n  } else {\n    // No whitespace, raw is prettier.\n    subexit = state.enter('destinationRaw')\n    value += tracker.move(\n      state.safe(node.url, {\n        before: value,\n        after: node.title ? ' ' : ')',\n        ...tracker.current()\n      })\n    )\n  }\n\n  subexit()\n\n  if (node.title) {\n    subexit = state.enter(`title${suffix}`)\n    value += tracker.move(' ' + quote)\n    value += tracker.move(\n      state.safe(node.title, {\n        before: value,\n        after: quote,\n        ...tracker.current()\n      })\n    )\n    value += tracker.move(quote)\n    subexit()\n  }\n\n  value += tracker.move(')')\n  exit()\n\n  return value\n}\n\n/**\n * @returns {string}\n */\nfunction imagePeek() {\n  return '!'\n}\n","/**\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimageReference.peek = imageReferencePeek\n\n/**\n * @param {ImageReference} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function imageReference(node, _, state, info) {\n  const type = node.referenceType\n  const exit = state.enter('imageReference')\n  let subexit = state.enter('label')\n  const tracker = state.createTracker(info)\n  let value = tracker.move('![')\n  const alt = state.safe(node.alt, {\n    before: value,\n    after: ']',\n    ...tracker.current()\n  })\n  value += tracker.move(alt + '][')\n\n  subexit()\n  // Hide the fact that we’re in phrasing, because escapes don’t work.\n  const stack = state.stack\n  state.stack = []\n  subexit = state.enter('reference')\n  // Note: for proper tracking, we should reset the output positions when we end\n  // up making a `shortcut` reference, because then there is no brace output.\n  // Practically, in that case, there is no content, so it doesn’t matter that\n  // we’ve tracked one too many characters.\n  const reference = state.safe(state.associationId(node), {\n    before: value,\n    after: ']',\n    ...tracker.current()\n  })\n  subexit()\n  state.stack = stack\n  exit()\n\n  if (type === 'full' || !alt || alt !== reference) {\n    value += tracker.move(reference + ']')\n  } else if (type === 'shortcut') {\n    // Remove the unwanted `[`.\n    value = value.slice(0, -1)\n  } else {\n    value += tracker.move(']')\n  }\n\n  return value\n}\n\n/**\n * @returns {string}\n */\nfunction imageReferencePeek() {\n  return '!'\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').State} State\n */\n\ninlineCode.peek = inlineCodePeek\n\n/**\n * @param {InlineCode} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @returns {string}\n */\nexport function inlineCode(node, _, state) {\n  let value = node.value || ''\n  let sequence = '`'\n  let index = -1\n\n  // If there is a single grave accent on its own in the code, use a fence of\n  // two.\n  // If there are two in a row, use one.\n  while (new RegExp('(^|[^`])' + sequence + '([^`]|$)').test(value)) {\n    sequence += '`'\n  }\n\n  // If this is not just spaces or eols (tabs don’t count), and either the\n  // first or last character are a space, eol, or tick, then pad with spaces.\n  if (\n    /[^ \\r\\n]/.test(value) &&\n    ((/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value)) || /^`|`$/.test(value))\n  ) {\n    value = ' ' + value + ' '\n  }\n\n  // We have a potential problem: certain characters after eols could result in\n  // blocks being seen.\n  // For example, if someone injected the string `'\\n# b'`, then that would\n  // result in an ATX heading.\n  // We can’t escape characters in `inlineCode`, but because eols are\n  // transformed to spaces when going from markdown to HTML anyway, we can swap\n  // them out.\n  while (++index < state.unsafe.length) {\n    const pattern = state.unsafe[index]\n    const expression = state.compilePattern(pattern)\n    /** @type {RegExpExecArray | null} */\n    let match\n\n    // Only look for `atBreak`s.\n    // Btw: note that `atBreak` patterns will always start the regex at LF or\n    // CR.\n    if (!pattern.atBreak) continue\n\n    while ((match = expression.exec(value))) {\n      let position = match.index\n\n      // Support CRLF (patterns only look for one of the characters).\n      if (\n        value.charCodeAt(position) === 10 /* `\\n` */ &&\n        value.charCodeAt(position - 1) === 13 /* `\\r` */\n      ) {\n        position--\n      }\n\n      value = value.slice(0, position) + ' ' + value.slice(match.index + 1)\n    }\n  }\n\n  return sequence + value + sequence\n}\n\n/**\n * @returns {string}\n */\nfunction inlineCodePeek() {\n  return '`'\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../types.js').State} State\n */\n\nimport {toString} from 'mdast-util-to-string'\n\n/**\n * @param {Link} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatLinkAsAutolink(node, state) {\n  const raw = toString(node)\n\n  return Boolean(\n    !state.options.resourceLink &&\n      // If there’s a url…\n      node.url &&\n      // And there’s a no title…\n      !node.title &&\n      // And the content of `node` is a single text node…\n      node.children &&\n      node.children.length === 1 &&\n      node.children[0].type === 'text' &&\n      // And if the url is the same as the content…\n      (raw === node.url || 'mailto:' + raw === node.url) &&\n      // And that starts w/ a protocol…\n      /^[a-z][a-z+.-]+:/i.test(node.url) &&\n      // And that doesn’t contain ASCII control codes (character escapes and\n      // references don’t work), space, or angle brackets…\n      !/[\\0- <>\\u007F]/.test(node.url)\n  )\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Exit} Exit\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkQuote} from '../util/check-quote.js'\nimport {formatLinkAsAutolink} from '../util/format-link-as-autolink.js'\n\nlink.peek = linkPeek\n\n/**\n * @param {Link} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function link(node, _, state, info) {\n  const quote = checkQuote(state)\n  const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n  const tracker = state.createTracker(info)\n  /** @type {Exit} */\n  let exit\n  /** @type {Exit} */\n  let subexit\n\n  if (formatLinkAsAutolink(node, state)) {\n    // Hide the fact that we’re in phrasing, because escapes don’t work.\n    const stack = state.stack\n    state.stack = []\n    exit = state.enter('autolink')\n    let value = tracker.move('<')\n    value += tracker.move(\n      state.containerPhrasing(node, {\n        before: value,\n        after: '>',\n        ...tracker.current()\n      })\n    )\n    value += tracker.move('>')\n    exit()\n    state.stack = stack\n    return value\n  }\n\n  exit = state.enter('link')\n  subexit = state.enter('label')\n  let value = tracker.move('[')\n  value += tracker.move(\n    state.containerPhrasing(node, {\n      before: value,\n      after: '](',\n      ...tracker.current()\n    })\n  )\n  value += tracker.move('](')\n  subexit()\n\n  if (\n    // If there’s no url but there is a title…\n    (!node.url && node.title) ||\n    // If there are control characters or whitespace.\n    /[\\0- \\u007F]/.test(node.url)\n  ) {\n    subexit = state.enter('destinationLiteral')\n    value += tracker.move('<')\n    value += tracker.move(\n      state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n    )\n    value += tracker.move('>')\n  } else {\n    // No whitespace, raw is prettier.\n    subexit = state.enter('destinationRaw')\n    value += tracker.move(\n      state.safe(node.url, {\n        before: value,\n        after: node.title ? ' ' : ')',\n        ...tracker.current()\n      })\n    )\n  }\n\n  subexit()\n\n  if (node.title) {\n    subexit = state.enter(`title${suffix}`)\n    value += tracker.move(' ' + quote)\n    value += tracker.move(\n      state.safe(node.title, {\n        before: value,\n        after: quote,\n        ...tracker.current()\n      })\n    )\n    value += tracker.move(quote)\n    subexit()\n  }\n\n  value += tracker.move(')')\n\n  exit()\n  return value\n}\n\n/**\n * @param {Link} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @returns {string}\n */\nfunction linkPeek(node, _, state) {\n  return formatLinkAsAutolink(node, state) ? '<' : '['\n}\n","/**\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nlinkReference.peek = linkReferencePeek\n\n/**\n * @param {LinkReference} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function linkReference(node, _, state, info) {\n  const type = node.referenceType\n  const exit = state.enter('linkReference')\n  let subexit = state.enter('label')\n  const tracker = state.createTracker(info)\n  let value = tracker.move('[')\n  const text = state.containerPhrasing(node, {\n    before: value,\n    after: ']',\n    ...tracker.current()\n  })\n  value += tracker.move(text + '][')\n\n  subexit()\n  // Hide the fact that we’re in phrasing, because escapes don’t work.\n  const stack = state.stack\n  state.stack = []\n  subexit = state.enter('reference')\n  // Note: for proper tracking, we should reset the output positions when we end\n  // up making a `shortcut` reference, because then there is no brace output.\n  // Practically, in that case, there is no content, so it doesn’t matter that\n  // we’ve tracked one too many characters.\n  const reference = state.safe(state.associationId(node), {\n    before: value,\n    after: ']',\n    ...tracker.current()\n  })\n  subexit()\n  state.stack = stack\n  exit()\n\n  if (type === 'full' || !text || text !== reference) {\n    value += tracker.move(reference + ']')\n  } else if (type === 'shortcut') {\n    // Remove the unwanted `[`.\n    value = value.slice(0, -1)\n  } else {\n    value += tracker.move(']')\n  }\n\n  return value\n}\n\n/**\n * @returns {string}\n */\nfunction linkReferencePeek() {\n  return '['\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['bullet'], null | undefined>}\n */\nexport function checkBullet(state) {\n  const marker = state.options.bullet || '*'\n\n  if (marker !== '*' && marker !== '+' && marker !== '-') {\n    throw new Error(\n      'Cannot serialize items with `' +\n        marker +\n        '` for `options.bullet`, expected `*`, `+`, or `-`'\n    )\n  }\n\n  return marker\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkBullet} from './check-bullet.js'\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['bullet'], null | undefined>}\n */\nexport function checkBulletOther(state) {\n  const bullet = checkBullet(state)\n  const bulletOther = state.options.bulletOther\n\n  if (!bulletOther) {\n    return bullet === '*' ? '-' : '*'\n  }\n\n  if (bulletOther !== '*' && bulletOther !== '+' && bulletOther !== '-') {\n    throw new Error(\n      'Cannot serialize items with `' +\n        bulletOther +\n        '` for `options.bulletOther`, expected `*`, `+`, or `-`'\n    )\n  }\n\n  if (bulletOther === bullet) {\n    throw new Error(\n      'Expected `bullet` (`' +\n        bullet +\n        '`) and `bulletOther` (`' +\n        bulletOther +\n        '`) to be different'\n    )\n  }\n\n  return bulletOther\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['bulletOrdered'], null | undefined>}\n */\nexport function checkBulletOrdered(state) {\n  const marker = state.options.bulletOrdered || '.'\n\n  if (marker !== '.' && marker !== ')') {\n    throw new Error(\n      'Cannot serialize items with `' +\n        marker +\n        '` for `options.bulletOrdered`, expected `.` or `)`'\n    )\n  }\n\n  return marker\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['rule'], null | undefined>}\n */\nexport function checkRule(state) {\n  const marker = state.options.rule || '*'\n\n  if (marker !== '*' && marker !== '-' && marker !== '_') {\n    throw new Error(\n      'Cannot serialize rules with `' +\n        marker +\n        '` for `options.rule`, expected `*`, `-`, or `_`'\n    )\n  }\n\n  return marker\n}\n","/**\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkBulletOther} from '../util/check-bullet-other.js'\nimport {checkBulletOrdered} from '../util/check-bullet-ordered.js'\nimport {checkRule} from '../util/check-rule.js'\n\n/**\n * @param {List} node\n * @param {Parents | undefined} parent\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function list(node, parent, state, info) {\n  const exit = state.enter('list')\n  const bulletCurrent = state.bulletCurrent\n  /** @type {string} */\n  let bullet = node.ordered ? checkBulletOrdered(state) : checkBullet(state)\n  /** @type {string} */\n  const bulletOther = node.ordered\n    ? bullet === '.'\n      ? ')'\n      : '.'\n    : checkBulletOther(state)\n  let useDifferentMarker =\n    parent && state.bulletLastUsed ? bullet === state.bulletLastUsed : false\n\n  if (!node.ordered) {\n    const firstListItem = node.children ? node.children[0] : undefined\n\n    // If there’s an empty first list item directly in two list items,\n    // we have to use a different bullet:\n    //\n    // ```markdown\n    // * - *\n    // ```\n    //\n    // …because otherwise it would become one big thematic break.\n    if (\n      // Bullet could be used as a thematic break marker:\n      (bullet === '*' || bullet === '-') &&\n      // Empty first list item:\n      firstListItem &&\n      (!firstListItem.children || !firstListItem.children[0]) &&\n      // Directly in two other list items:\n      state.stack[state.stack.length - 1] === 'list' &&\n      state.stack[state.stack.length - 2] === 'listItem' &&\n      state.stack[state.stack.length - 3] === 'list' &&\n      state.stack[state.stack.length - 4] === 'listItem' &&\n      // That are each the first child.\n      state.indexStack[state.indexStack.length - 1] === 0 &&\n      state.indexStack[state.indexStack.length - 2] === 0 &&\n      state.indexStack[state.indexStack.length - 3] === 0\n    ) {\n      useDifferentMarker = true\n    }\n\n    // If there’s a thematic break at the start of the first list item,\n    // we have to use a different bullet:\n    //\n    // ```markdown\n    // * ---\n    // ```\n    //\n    // …because otherwise it would become one big thematic break.\n    if (checkRule(state) === bullet && firstListItem) {\n      let index = -1\n\n      while (++index < node.children.length) {\n        const item = node.children[index]\n\n        if (\n          item &&\n          item.type === 'listItem' &&\n          item.children &&\n          item.children[0] &&\n          item.children[0].type === 'thematicBreak'\n        ) {\n          useDifferentMarker = true\n          break\n        }\n      }\n    }\n  }\n\n  if (useDifferentMarker) {\n    bullet = bulletOther\n  }\n\n  state.bulletCurrent = bullet\n  const value = state.containerFlow(node, info)\n  state.bulletLastUsed = bullet\n  state.bulletCurrent = bulletCurrent\n  exit()\n  return value\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['listItemIndent'], null | undefined>}\n */\nexport function checkListItemIndent(state) {\n  const style = state.options.listItemIndent || 'one'\n\n  if (style !== 'tab' && style !== 'one' && style !== 'mixed') {\n    throw new Error(\n      'Cannot serialize items with `' +\n        style +\n        '` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`'\n    )\n  }\n\n  return style\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Map} Map\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkListItemIndent} from '../util/check-list-item-indent.js'\n\n/**\n * @param {ListItem} node\n * @param {Parents | undefined} parent\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function listItem(node, parent, state, info) {\n  const listItemIndent = checkListItemIndent(state)\n  let bullet = state.bulletCurrent || checkBullet(state)\n\n  // Add the marker value for ordered lists.\n  if (parent && parent.type === 'list' && parent.ordered) {\n    bullet =\n      (typeof parent.start === 'number' && parent.start > -1\n        ? parent.start\n        : 1) +\n      (state.options.incrementListMarker === false\n        ? 0\n        : parent.children.indexOf(node)) +\n      bullet\n  }\n\n  let size = bullet.length + 1\n\n  if (\n    listItemIndent === 'tab' ||\n    (listItemIndent === 'mixed' &&\n      ((parent && parent.type === 'list' && parent.spread) || node.spread))\n  ) {\n    size = Math.ceil(size / 4) * 4\n  }\n\n  const tracker = state.createTracker(info)\n  tracker.move(bullet + ' '.repeat(size - bullet.length))\n  tracker.shift(size)\n  const exit = state.enter('listItem')\n  const value = state.indentLines(\n    state.containerFlow(node, tracker.current()),\n    map\n  )\n  exit()\n\n  return value\n\n  /** @type {Map} */\n  function map(line, index, blank) {\n    if (index) {\n      return (blank ? '' : ' '.repeat(size)) + line\n    }\n\n    return (blank ? bullet : bullet + ' '.repeat(size - bullet.length)) + line\n  }\n}\n","/**\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Paragraph} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function paragraph(node, _, state, info) {\n  const exit = state.enter('paragraph')\n  const subexit = state.enter('phrasing')\n  const value = state.containerPhrasing(node, info)\n  subexit()\n  exit()\n  return value\n}\n","/**\n * @typedef {import('mdast').Html} Html\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n */\n\nimport {convert} from 'unist-util-is'\n\n/**\n * Check if the given value is *phrasing content*.\n *\n * > 👉 **Note**: Excludes `html`, which can be both phrasing or flow.\n *\n * @param node\n *   Thing to check, typically `Node`.\n * @returns\n *   Whether `value` is phrasing content.\n */\n\nexport const phrasing =\n  /** @type {(node?: unknown) => node is Exclude<PhrasingContent, Html>} */\n  (\n    convert([\n      'break',\n      'delete',\n      'emphasis',\n      // To do: next major: removed since footnotes were added to GFM.\n      'footnote',\n      'footnoteReference',\n      'image',\n      'imageReference',\n      'inlineCode',\n      // Enabled by `mdast-util-math`:\n      'inlineMath',\n      'link',\n      'linkReference',\n      // Enabled by `mdast-util-mdx`:\n      'mdxJsxTextElement',\n      // Enabled by `mdast-util-mdx`:\n      'mdxTextExpression',\n      'strong',\n      'text',\n      // Enabled by `mdast-util-directive`:\n      'textDirective'\n    ])\n  )\n","/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {phrasing} from 'mdast-util-phrasing'\n\n/**\n * @param {Root} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function root(node, _, state, info) {\n  // Note: `html` nodes are ambiguous.\n  const hasPhrasing = node.children.some(function (d) {\n    return phrasing(d)\n  })\n  const fn = hasPhrasing ? state.containerPhrasing : state.containerFlow\n  return fn.call(state, node, info)\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['strong'], null | undefined>}\n */\nexport function checkStrong(state) {\n  const marker = state.options.strong || '*'\n\n  if (marker !== '*' && marker !== '_') {\n    throw new Error(\n      'Cannot serialize strong with `' +\n        marker +\n        '` for `options.strong`, expected `*`, or `_`'\n    )\n  }\n\n  return marker\n}\n","/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkStrong} from '../util/check-strong.js'\n\nstrong.peek = strongPeek\n\n// To do: there are cases where emphasis cannot “form” depending on the\n// previous or next character of sequences.\n// There’s no way around that though, except for injecting zero-width stuff.\n// Do we need to safeguard against that?\n/**\n * @param {Strong} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function strong(node, _, state, info) {\n  const marker = checkStrong(state)\n  const exit = state.enter('strong')\n  const tracker = state.createTracker(info)\n  let value = tracker.move(marker + marker)\n  value += tracker.move(\n    state.containerPhrasing(node, {\n      before: value,\n      after: marker,\n      ...tracker.current()\n    })\n  )\n  value += tracker.move(marker + marker)\n  exit()\n  return value\n}\n\n/**\n * @param {Strong} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nfunction strongPeek(_, _1, state) {\n  return state.options.strong || '*'\n}\n","/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').Text} Text\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Text} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function text(node, _, state, info) {\n  return state.safe(node.value, info)\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['ruleRepetition'], null | undefined>}\n */\nexport function checkRuleRepetition(state) {\n  const repetition = state.options.ruleRepetition || 3\n\n  if (repetition < 3) {\n    throw new Error(\n      'Cannot serialize rules with repetition `' +\n        repetition +\n        '` for `options.ruleRepetition`, expected `3` or more'\n    )\n  }\n\n  return repetition\n}\n","/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkRuleRepetition} from '../util/check-rule-repetition.js'\nimport {checkRule} from '../util/check-rule.js'\n\n/**\n * @param {ThematicBreak} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nexport function thematicBreak(_, _1, state) {\n  const value = (\n    checkRule(state) + (state.options.ruleSpaces ? ' ' : '')\n  ).repeat(checkRuleRepetition(state))\n\n  return state.options.ruleSpaces ? value.slice(0, -1) : value\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {definition} from './definition.js'\nimport {emphasis} from './emphasis.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {image} from './image.js'\nimport {imageReference} from './image-reference.js'\nimport {inlineCode} from './inline-code.js'\nimport {link} from './link.js'\nimport {linkReference} from './link-reference.js'\nimport {list} from './list.js'\nimport {listItem} from './list-item.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default (CommonMark) handlers.\n */\nexport const handle = {\n  blockquote,\n  break: hardBreak,\n  code,\n  definition,\n  emphasis,\n  hardBreak,\n  heading,\n  html,\n  image,\n  imageReference,\n  inlineCode,\n  link,\n  linkReference,\n  list,\n  listItem,\n  paragraph,\n  root,\n  strong,\n  text,\n  thematicBreak\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Table} Table\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('mdast').TableRow} TableRow\n *\n * @typedef {import('markdown-table').Options} MarkdownTableOptions\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n *\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').State} State\n * @typedef {import('mdast-util-to-markdown').Info} Info\n */\n\n/**\n * @typedef Options\n *   Configuration.\n * @property {boolean | null | undefined} [tableCellPadding=true]\n *   Whether to add a space of padding between delimiters and cells (default:\n *   `true`).\n * @property {boolean | null | undefined} [tablePipeAlign=true]\n *   Whether to align the delimiters (default: `true`).\n * @property {MarkdownTableOptions['stringLength'] | null | undefined} [stringLength]\n *   Function to detect the length of table cell content, used when aligning\n *   the delimiters between cells (optional).\n */\n\nimport {ok as assert} from 'devlop'\nimport {markdownTable} from 'markdown-table'\nimport {defaultHandlers} from 'mdast-util-to-markdown'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM tables in\n * markdown.\n *\n * @returns {FromMarkdownExtension}\n *   Extension for `mdast-util-from-markdown` to enable GFM tables.\n */\nexport function gfmTableFromMarkdown() {\n  return {\n    enter: {\n      table: enterTable,\n      tableData: enterCell,\n      tableHeader: enterCell,\n      tableRow: enterRow\n    },\n    exit: {\n      codeText: exitCodeText,\n      table: exitTable,\n      tableData: exit,\n      tableHeader: exit,\n      tableRow: exit\n    }\n  }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterTable(token) {\n  const align = token._align\n  assert(align, 'expected `_align` on table')\n  this.enter(\n    {\n      type: 'table',\n      align: align.map(function (d) {\n        return d === 'none' ? null : d\n      }),\n      children: []\n    },\n    token\n  )\n  this.data.inTable = true\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitTable(token) {\n  this.exit(token)\n  this.data.inTable = undefined\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterRow(token) {\n  this.enter({type: 'tableRow', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exit(token) {\n  this.exit(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterCell(token) {\n  this.enter({type: 'tableCell', children: []}, token)\n}\n\n// Overwrite the default code text data handler to unescape escaped pipes when\n// they are in tables.\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitCodeText(token) {\n  let value = this.resume()\n\n  if (this.data.inTable) {\n    value = value.replace(/\\\\([\\\\|])/g, replace)\n  }\n\n  const node = this.stack[this.stack.length - 1]\n  assert(node.type === 'inlineCode')\n  node.value = value\n  this.exit(token)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @returns {string}\n */\nfunction replace($0, $1) {\n  // Pipes work, backslashes don’t (but can’t escape pipes).\n  return $1 === '|' ? $1 : $0\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM tables in\n * markdown.\n *\n * @param {Options | null | undefined} [options]\n *   Configuration.\n * @returns {ToMarkdownExtension}\n *   Extension for `mdast-util-to-markdown` to enable GFM tables.\n */\nexport function gfmTableToMarkdown(options) {\n  const settings = options || {}\n  const padding = settings.tableCellPadding\n  const alignDelimiters = settings.tablePipeAlign\n  const stringLength = settings.stringLength\n  const around = padding ? ' ' : '|'\n\n  return {\n    unsafe: [\n      {character: '\\r', inConstruct: 'tableCell'},\n      {character: '\\n', inConstruct: 'tableCell'},\n      // A pipe, when followed by a tab or space (padding), or a dash or colon\n      // (unpadded delimiter row), could result in a table.\n      {atBreak: true, character: '|', after: '[\\t :-]'},\n      // A pipe in a cell must be encoded.\n      {character: '|', inConstruct: 'tableCell'},\n      // A colon must be followed by a dash, in which case it could start a\n      // delimiter row.\n      {atBreak: true, character: ':', after: '-'},\n      // A delimiter row can also start with a dash, when followed by more\n      // dashes, a colon, or a pipe.\n      // This is a stricter version than the built in check for lists, thematic\n      // breaks, and setex heading underlines though:\n      // <https://github.com/syntax-tree/mdast-util-to-markdown/blob/51a2038/lib/unsafe.js#L57>\n      {atBreak: true, character: '-', after: '[:|-]'}\n    ],\n    handlers: {\n      inlineCode: inlineCodeWithTable,\n      table: handleTable,\n      tableCell: handleTableCell,\n      tableRow: handleTableRow\n    }\n  }\n\n  /**\n   * @type {ToMarkdownHandle}\n   * @param {Table} node\n   */\n  function handleTable(node, _, state, info) {\n    return serializeData(handleTableAsData(node, state, info), node.align)\n  }\n\n  /**\n   * This function isn’t really used normally, because we handle rows at the\n   * table level.\n   * But, if someone passes in a table row, this ensures we make somewhat sense.\n   *\n   * @type {ToMarkdownHandle}\n   * @param {TableRow} node\n   */\n  function handleTableRow(node, _, state, info) {\n    const row = handleTableRowAsData(node, state, info)\n    const value = serializeData([row])\n    // `markdown-table` will always add an align row\n    return value.slice(0, value.indexOf('\\n'))\n  }\n\n  /**\n   * @type {ToMarkdownHandle}\n   * @param {TableCell} node\n   */\n  function handleTableCell(node, _, state, info) {\n    const exit = state.enter('tableCell')\n    const subexit = state.enter('phrasing')\n    const value = state.containerPhrasing(node, {\n      ...info,\n      before: around,\n      after: around\n    })\n    subexit()\n    exit()\n    return value\n  }\n\n  /**\n   * @param {Array<Array<string>>} matrix\n   * @param {Array<string | null | undefined> | null | undefined} [align]\n   */\n  function serializeData(matrix, align) {\n    return markdownTable(matrix, {\n      align,\n      // @ts-expect-error: `markdown-table` types should support `null`.\n      alignDelimiters,\n      // @ts-expect-error: `markdown-table` types should support `null`.\n      padding,\n      // @ts-expect-error: `markdown-table` types should support `null`.\n      stringLength\n    })\n  }\n\n  /**\n   * @param {Table} node\n   * @param {State} state\n   * @param {Info} info\n   */\n  function handleTableAsData(node, state, info) {\n    const children = node.children\n    let index = -1\n    /** @type {Array<Array<string>>} */\n    const result = []\n    const subexit = state.enter('table')\n\n    while (++index < children.length) {\n      result[index] = handleTableRowAsData(children[index], state, info)\n    }\n\n    subexit()\n\n    return result\n  }\n\n  /**\n   * @param {TableRow} node\n   * @param {State} state\n   * @param {Info} info\n   */\n  function handleTableRowAsData(node, state, info) {\n    const children = node.children\n    let index = -1\n    /** @type {Array<string>} */\n    const result = []\n    const subexit = state.enter('tableRow')\n\n    while (++index < children.length) {\n      // Note: the positional info as used here is incorrect.\n      // Making it correct would be impossible due to aligning cells?\n      // And it would need copy/pasting `markdown-table` into this project.\n      result[index] = handleTableCell(children[index], node, state, info)\n    }\n\n    subexit()\n\n    return result\n  }\n\n  /**\n   * @type {ToMarkdownHandle}\n   * @param {InlineCode} node\n   */\n  function inlineCodeWithTable(node, parent, state) {\n    let value = defaultHandlers.inlineCode(node, parent, state)\n\n    if (state.stack.includes('tableCell')) {\n      value = value.replace(/\\|/g, '\\\\$&')\n    }\n\n    return value\n  }\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n */\n\nimport {ok as assert} from 'devlop'\nimport {defaultHandlers} from 'mdast-util-to-markdown'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM task\n * list items in markdown.\n *\n * @returns {FromMarkdownExtension}\n *   Extension for `mdast-util-from-markdown` to enable GFM task list items.\n */\nexport function gfmTaskListItemFromMarkdown() {\n  return {\n    exit: {\n      taskListCheckValueChecked: exitCheck,\n      taskListCheckValueUnchecked: exitCheck,\n      paragraph: exitParagraphWithTaskListItem\n    }\n  }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM task list\n * items in markdown.\n *\n * @returns {ToMarkdownExtension}\n *   Extension for `mdast-util-to-markdown` to enable GFM task list items.\n */\nexport function gfmTaskListItemToMarkdown() {\n  return {\n    unsafe: [{atBreak: true, character: '-', after: '[:|-]'}],\n    handlers: {listItem: listItemWithTaskListItem}\n  }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitCheck(token) {\n  // We’re always in a paragraph, in a list item.\n  const node = this.stack[this.stack.length - 2]\n  assert(node.type === 'listItem')\n  node.checked = token.type === 'taskListCheckValueChecked'\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitParagraphWithTaskListItem(token) {\n  const parent = this.stack[this.stack.length - 2]\n\n  if (\n    parent &&\n    parent.type === 'listItem' &&\n    typeof parent.checked === 'boolean'\n  ) {\n    const node = this.stack[this.stack.length - 1]\n    assert(node.type === 'paragraph')\n    const head = node.children[0]\n\n    if (head && head.type === 'text') {\n      const siblings = parent.children\n      let index = -1\n      /** @type {Paragraph | undefined} */\n      let firstParaghraph\n\n      while (++index < siblings.length) {\n        const sibling = siblings[index]\n        if (sibling.type === 'paragraph') {\n          firstParaghraph = sibling\n          break\n        }\n      }\n\n      if (firstParaghraph === node) {\n        // Must start with a space or a tab.\n        head.value = head.value.slice(1)\n\n        if (head.value.length === 0) {\n          node.children.shift()\n        } else if (\n          node.position &&\n          head.position &&\n          typeof head.position.start.offset === 'number'\n        ) {\n          head.position.start.column++\n          head.position.start.offset++\n          node.position.start = Object.assign({}, head.position.start)\n        }\n      }\n    }\n  }\n\n  this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {ListItem} node\n */\nfunction listItemWithTaskListItem(node, parent, state, info) {\n  const head = node.children[0]\n  const checkable =\n    typeof node.checked === 'boolean' && head && head.type === 'paragraph'\n  const checkbox = '[' + (node.checked ? 'x' : ' ') + '] '\n  const tracker = state.createTracker(info)\n\n  if (checkable) {\n    tracker.move(checkbox)\n  }\n\n  let value = defaultHandlers.listItem(node, parent, state, {\n    ...info,\n    ...tracker.current()\n  })\n\n  if (checkable) {\n    value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check)\n  }\n\n  return value\n\n  /**\n   * @param {string} $0\n   * @returns {string}\n   */\n  function check($0) {\n    return $0 + checkbox\n  }\n}\n","/**\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n */\n\n/**\n * @typedef {import('mdast-util-gfm-table').Options} Options\n *   Configuration.\n */\n\nimport {\n  gfmAutolinkLiteralFromMarkdown,\n  gfmAutolinkLiteralToMarkdown\n} from 'mdast-util-gfm-autolink-literal'\nimport {\n  gfmFootnoteFromMarkdown,\n  gfmFootnoteToMarkdown\n} from 'mdast-util-gfm-footnote'\nimport {\n  gfmStrikethroughFromMarkdown,\n  gfmStrikethroughToMarkdown\n} from 'mdast-util-gfm-strikethrough'\nimport {gfmTableFromMarkdown, gfmTableToMarkdown} from 'mdast-util-gfm-table'\nimport {\n  gfmTaskListItemFromMarkdown,\n  gfmTaskListItemToMarkdown\n} from 'mdast-util-gfm-task-list-item'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM (autolink\n * literals, footnotes, strikethrough, tables, tasklists).\n *\n * @returns {Array<FromMarkdownExtension>}\n *   Extension for `mdast-util-from-markdown` to enable GFM (autolink literals,\n *   footnotes, strikethrough, tables, tasklists).\n */\nexport function gfmFromMarkdown() {\n  return [\n    gfmAutolinkLiteralFromMarkdown(),\n    gfmFootnoteFromMarkdown(),\n    gfmStrikethroughFromMarkdown(),\n    gfmTableFromMarkdown(),\n    gfmTaskListItemFromMarkdown()\n  ]\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM (autolink\n * literals, footnotes, strikethrough, tables, tasklists).\n *\n * @param {Options | null | undefined} [options]\n *   Configuration.\n * @returns {ToMarkdownExtension}\n *   Extension for `mdast-util-to-markdown` to enable GFM (autolink literals,\n *   footnotes, strikethrough, tables, tasklists).\n */\nexport function gfmToMarkdown(options) {\n  return {\n    extensions: [\n      gfmAutolinkLiteralToMarkdown(),\n      gfmFootnoteToMarkdown(),\n      gfmStrikethroughToMarkdown(),\n      gfmTableToMarkdown(options),\n      gfmTaskListItemToMarkdown()\n    ]\n  }\n}\n","/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n *   Item type.\n * @param {Array<T>} list\n *   List to operate on.\n * @param {number} start\n *   Index to remove/insert at (can be negative).\n * @param {number} remove\n *   Number of items to remove.\n * @param {Array<T>} items\n *   Items to inject into `list`.\n * @returns {undefined}\n *   Nothing.\n */\nexport function splice(list, start, remove, items) {\n  const end = list.length\n  let chunkStart = 0\n  /** @type {Array<unknown>} */\n  let parameters\n\n  // Make start between zero and `end` (included).\n  if (start < 0) {\n    start = -start > end ? 0 : end + start\n  } else {\n    start = start > end ? end : start\n  }\n  remove = remove > 0 ? remove : 0\n\n  // No need to chunk the items if there’s only a couple (10k) items.\n  if (items.length < 10000) {\n    parameters = Array.from(items)\n    parameters.unshift(start, remove)\n    // @ts-expect-error Hush, it’s fine.\n    list.splice(...parameters)\n  } else {\n    // Delete `remove` items starting from `start`\n    if (remove) list.splice(start, remove)\n\n    // Insert the items in chunks to not cause stack overflows.\n    while (chunkStart < items.length) {\n      parameters = items.slice(chunkStart, chunkStart + 10000)\n      parameters.unshift(start, 0)\n      // @ts-expect-error Hush, it’s fine.\n      list.splice(...parameters)\n      chunkStart += 10000\n      start += 10000\n    }\n  }\n}\n\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n *   Item type.\n * @param {Array<T>} list\n *   List to operate on.\n * @param {Array<T>} items\n *   Items to add to `list`.\n * @returns {Array<T>}\n *   Either `list` or `items`.\n */\nexport function push(list, items) {\n  if (list.length > 0) {\n    splice(list, list.length, 0, items)\n    return list\n  }\n  return items\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Handles} Handles\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine multiple syntax extensions into one.\n *\n * @param {Array<Extension>} extensions\n *   List of syntax extensions.\n * @returns {NormalizedExtension}\n *   A single combined extension.\n */\nexport function combineExtensions(extensions) {\n  /** @type {NormalizedExtension} */\n  const all = {}\n  let index = -1\n\n  while (++index < extensions.length) {\n    syntaxExtension(all, extensions[index])\n  }\n\n  return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all\n *   Extension to merge into.\n * @param {Extension} extension\n *   Extension to merge.\n * @returns {undefined}\n */\nfunction syntaxExtension(all, extension) {\n  /** @type {keyof Extension} */\n  let hook\n\n  for (hook in extension) {\n    const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n    /** @type {Record<string, unknown>} */\n    const left = maybe || (all[hook] = {})\n    /** @type {Record<string, unknown> | undefined} */\n    const right = extension[hook]\n    /** @type {string} */\n    let code\n\n    if (right) {\n      for (code in right) {\n        if (!hasOwnProperty.call(left, code)) left[code] = []\n        const value = right[code]\n        constructs(\n          // @ts-expect-error Looks like a list.\n          left[code],\n          Array.isArray(value) ? value : value ? [value] : []\n        )\n      }\n    }\n  }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {Array<unknown>} existing\n * @param {Array<unknown>} list\n * @returns {undefined}\n */\nfunction constructs(existing, list) {\n  let index = -1\n  /** @type {Array<unknown>} */\n  const before = []\n\n  while (++index < list.length) {\n    // @ts-expect-error Looks like an object.\n    ;(list[index].add === 'after' ? existing : before).push(list[index])\n  }\n\n  splice(existing, 0, 0, before)\n}\n\n/**\n * Combine multiple HTML extensions into one.\n *\n * @param {Array<HtmlExtension>} htmlExtensions\n *   List of HTML extensions.\n * @returns {HtmlExtension}\n *   A single combined HTML extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n  /** @type {HtmlExtension} */\n  const handlers = {}\n  let index = -1\n\n  while (++index < htmlExtensions.length) {\n    htmlExtension(handlers, htmlExtensions[index])\n  }\n\n  return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all\n *   Extension to merge into.\n * @param {HtmlExtension} extension\n *   Extension to merge.\n * @returns {undefined}\n */\nfunction htmlExtension(all, extension) {\n  /** @type {keyof HtmlExtension} */\n  let hook\n\n  for (hook in extension) {\n    const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n    const left = maybe || (all[hook] = {})\n    const right = extension[hook]\n    /** @type {keyof Handles} */\n    let type\n\n    if (right) {\n      for (type in right) {\n        // @ts-expect-error assume document vs regular handler are managed correctly.\n        left[type] = right[type]\n      }\n    }\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {\n  asciiAlpha,\n  asciiAlphanumeric,\n  asciiControl,\n  markdownLineEndingOrSpace,\n  unicodePunctuation,\n  unicodeWhitespace\n} from 'micromark-util-character'\nconst wwwPrefix = {\n  tokenize: tokenizeWwwPrefix,\n  partial: true\n}\nconst domain = {\n  tokenize: tokenizeDomain,\n  partial: true\n}\nconst path = {\n  tokenize: tokenizePath,\n  partial: true\n}\nconst trail = {\n  tokenize: tokenizeTrail,\n  partial: true\n}\nconst emailDomainDotTrail = {\n  tokenize: tokenizeEmailDomainDotTrail,\n  partial: true\n}\nconst wwwAutolink = {\n  tokenize: tokenizeWwwAutolink,\n  previous: previousWww\n}\nconst protocolAutolink = {\n  tokenize: tokenizeProtocolAutolink,\n  previous: previousProtocol\n}\nconst emailAutolink = {\n  tokenize: tokenizeEmailAutolink,\n  previous: previousEmail\n}\n\n/** @type {ConstructRecord} */\nconst text = {}\n\n/**\n * Create an extension for `micromark` to support GitHub autolink literal\n * syntax.\n *\n * @returns {Extension}\n *   Extension for `micromark` that can be passed in `extensions` to enable GFM\n *   autolink literal syntax.\n */\nexport function gfmAutolinkLiteral() {\n  return {\n    text\n  }\n}\n\n/** @type {Code} */\nlet code = 48\n\n// Add alphanumerics.\nwhile (code < 123) {\n  text[code] = emailAutolink\n  code++\n  if (code === 58) code = 65\n  else if (code === 91) code = 97\n}\ntext[43] = emailAutolink\ntext[45] = emailAutolink\ntext[46] = emailAutolink\ntext[95] = emailAutolink\ntext[72] = [emailAutolink, protocolAutolink]\ntext[104] = [emailAutolink, protocolAutolink]\ntext[87] = [emailAutolink, wwwAutolink]\ntext[119] = [emailAutolink, wwwAutolink]\n\n// To do: perform email autolink literals on events, afterwards.\n// That’s where `markdown-rs` and `cmark-gfm` perform it.\n// It should look for `@`, then for atext backwards, and then for a label\n// forwards.\n// To do: `mailto:`, `xmpp:` protocol as prefix.\n\n/**\n * Email autolink literal.\n *\n * ```markdown\n * > | a contact@example.org b\n *       ^^^^^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeEmailAutolink(effects, ok, nok) {\n  const self = this\n  /** @type {boolean | undefined} */\n  let dot\n  /** @type {boolean} */\n  let data\n  return start\n\n  /**\n   * Start of email autolink literal.\n   *\n   * ```markdown\n   * > | a contact@example.org b\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    if (\n      !gfmAtext(code) ||\n      !previousEmail.call(self, self.previous) ||\n      previousUnbalanced(self.events)\n    ) {\n      return nok(code)\n    }\n    effects.enter('literalAutolink')\n    effects.enter('literalAutolinkEmail')\n    return atext(code)\n  }\n\n  /**\n   * In email atext.\n   *\n   * ```markdown\n   * > | a contact@example.org b\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function atext(code) {\n    if (gfmAtext(code)) {\n      effects.consume(code)\n      return atext\n    }\n    if (code === 64) {\n      effects.consume(code)\n      return emailDomain\n    }\n    return nok(code)\n  }\n\n  /**\n   * In email domain.\n   *\n   * The reference code is a bit overly complex as it handles the `@`, of which\n   * there may be just one.\n   * Source: <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L318>\n   *\n   * ```markdown\n   * > | a contact@example.org b\n   *               ^\n   * ```\n   *\n   * @type {State}\n   */\n  function emailDomain(code) {\n    // Dot followed by alphanumerical (not `-` or `_`).\n    if (code === 46) {\n      return effects.check(\n        emailDomainDotTrail,\n        emailDomainAfter,\n        emailDomainDot\n      )(code)\n    }\n\n    // Alphanumerical, `-`, and `_`.\n    if (code === 45 || code === 95 || asciiAlphanumeric(code)) {\n      data = true\n      effects.consume(code)\n      return emailDomain\n    }\n\n    // To do: `/` if xmpp.\n\n    // Note: normally we’d truncate trailing punctuation from the link.\n    // However, email autolink literals cannot contain any of those markers,\n    // except for `.`, but that can only occur if it isn’t trailing.\n    // So we can ignore truncating!\n    return emailDomainAfter(code)\n  }\n\n  /**\n   * In email domain, on dot that is not a trail.\n   *\n   * ```markdown\n   * > | a contact@example.org b\n   *                      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function emailDomainDot(code) {\n    effects.consume(code)\n    dot = true\n    return emailDomain\n  }\n\n  /**\n   * After email domain.\n   *\n   * ```markdown\n   * > | a contact@example.org b\n   *                          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function emailDomainAfter(code) {\n    // Domain must not be empty, must include a dot, and must end in alphabetical.\n    // Source: <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L332>.\n    if (data && dot && asciiAlpha(self.previous)) {\n      effects.exit('literalAutolinkEmail')\n      effects.exit('literalAutolink')\n      return ok(code)\n    }\n    return nok(code)\n  }\n}\n\n/**\n * `www` autolink literal.\n *\n * ```markdown\n * > | a www.example.org b\n *       ^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeWwwAutolink(effects, ok, nok) {\n  const self = this\n  return wwwStart\n\n  /**\n   * Start of www autolink literal.\n   *\n   * ```markdown\n   * > | www.example.com/a?b#c\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function wwwStart(code) {\n    if (\n      (code !== 87 && code !== 119) ||\n      !previousWww.call(self, self.previous) ||\n      previousUnbalanced(self.events)\n    ) {\n      return nok(code)\n    }\n    effects.enter('literalAutolink')\n    effects.enter('literalAutolinkWww')\n    // Note: we *check*, so we can discard the `www.` we parsed.\n    // If it worked, we consider it as a part of the domain.\n    return effects.check(\n      wwwPrefix,\n      effects.attempt(domain, effects.attempt(path, wwwAfter), nok),\n      nok\n    )(code)\n  }\n\n  /**\n   * After a www autolink literal.\n   *\n   * ```markdown\n   * > | www.example.com/a?b#c\n   *                          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function wwwAfter(code) {\n    effects.exit('literalAutolinkWww')\n    effects.exit('literalAutolink')\n    return ok(code)\n  }\n}\n\n/**\n * Protocol autolink literal.\n *\n * ```markdown\n * > | a https://example.org b\n *       ^^^^^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeProtocolAutolink(effects, ok, nok) {\n  const self = this\n  let buffer = ''\n  let seen = false\n  return protocolStart\n\n  /**\n   * Start of protocol autolink literal.\n   *\n   * ```markdown\n   * > | https://example.com/a?b#c\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function protocolStart(code) {\n    if (\n      (code === 72 || code === 104) &&\n      previousProtocol.call(self, self.previous) &&\n      !previousUnbalanced(self.events)\n    ) {\n      effects.enter('literalAutolink')\n      effects.enter('literalAutolinkHttp')\n      buffer += String.fromCodePoint(code)\n      effects.consume(code)\n      return protocolPrefixInside\n    }\n    return nok(code)\n  }\n\n  /**\n   * In protocol.\n   *\n   * ```markdown\n   * > | https://example.com/a?b#c\n   *     ^^^^^\n   * ```\n   *\n   * @type {State}\n   */\n  function protocolPrefixInside(code) {\n    // `5` is size of `https`\n    if (asciiAlpha(code) && buffer.length < 5) {\n      // @ts-expect-error: definitely number.\n      buffer += String.fromCodePoint(code)\n      effects.consume(code)\n      return protocolPrefixInside\n    }\n    if (code === 58) {\n      const protocol = buffer.toLowerCase()\n      if (protocol === 'http' || protocol === 'https') {\n        effects.consume(code)\n        return protocolSlashesInside\n      }\n    }\n    return nok(code)\n  }\n\n  /**\n   * In slashes.\n   *\n   * ```markdown\n   * > | https://example.com/a?b#c\n   *           ^^\n   * ```\n   *\n   * @type {State}\n   */\n  function protocolSlashesInside(code) {\n    if (code === 47) {\n      effects.consume(code)\n      if (seen) {\n        return afterProtocol\n      }\n      seen = true\n      return protocolSlashesInside\n    }\n    return nok(code)\n  }\n\n  /**\n   * After protocol, before domain.\n   *\n   * ```markdown\n   * > | https://example.com/a?b#c\n   *             ^\n   * ```\n   *\n   * @type {State}\n   */\n  function afterProtocol(code) {\n    // To do: this is different from `markdown-rs`:\n    // https://github.com/wooorm/markdown-rs/blob/b3a921c761309ae00a51fe348d8a43adbc54b518/src/construct/gfm_autolink_literal.rs#L172-L182\n    return code === null ||\n      asciiControl(code) ||\n      markdownLineEndingOrSpace(code) ||\n      unicodeWhitespace(code) ||\n      unicodePunctuation(code)\n      ? nok(code)\n      : effects.attempt(domain, effects.attempt(path, protocolAfter), nok)(code)\n  }\n\n  /**\n   * After a protocol autolink literal.\n   *\n   * ```markdown\n   * > | https://example.com/a?b#c\n   *                              ^\n   * ```\n   *\n   * @type {State}\n   */\n  function protocolAfter(code) {\n    effects.exit('literalAutolinkHttp')\n    effects.exit('literalAutolink')\n    return ok(code)\n  }\n}\n\n/**\n * `www` prefix.\n *\n * ```markdown\n * > | a www.example.org b\n *       ^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeWwwPrefix(effects, ok, nok) {\n  let size = 0\n  return wwwPrefixInside\n\n  /**\n   * In www prefix.\n   *\n   * ```markdown\n   * > | www.example.com\n   *     ^^^^\n   * ```\n   *\n   * @type {State}\n   */\n  function wwwPrefixInside(code) {\n    if ((code === 87 || code === 119) && size < 3) {\n      size++\n      effects.consume(code)\n      return wwwPrefixInside\n    }\n    if (code === 46 && size === 3) {\n      effects.consume(code)\n      return wwwPrefixAfter\n    }\n    return nok(code)\n  }\n\n  /**\n   * After www prefix.\n   *\n   * ```markdown\n   * > | www.example.com\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function wwwPrefixAfter(code) {\n    // If there is *anything*, we can link.\n    return code === null ? nok(code) : ok(code)\n  }\n}\n\n/**\n * Domain.\n *\n * ```markdown\n * > | a https://example.org b\n *               ^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDomain(effects, ok, nok) {\n  /** @type {boolean | undefined} */\n  let underscoreInLastSegment\n  /** @type {boolean | undefined} */\n  let underscoreInLastLastSegment\n  /** @type {boolean | undefined} */\n  let seen\n  return domainInside\n\n  /**\n   * In domain.\n   *\n   * ```markdown\n   * > | https://example.com/a\n   *             ^^^^^^^^^^^\n   * ```\n   *\n   * @type {State}\n   */\n  function domainInside(code) {\n    // Check whether this marker, which is a trailing punctuation\n    // marker, optionally followed by more trailing markers, and then\n    // followed by an end.\n    if (code === 46 || code === 95) {\n      return effects.check(trail, domainAfter, domainAtPunctuation)(code)\n    }\n\n    // GH documents that only alphanumerics (other than `-`, `.`, and `_`) can\n    // occur, which sounds like ASCII only, but they also support `www.點看.com`,\n    // so that’s Unicode.\n    // Instead of some new production for Unicode alphanumerics, markdown\n    // already has that for Unicode punctuation and whitespace, so use those.\n    // Source: <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L12>.\n    if (\n      code === null ||\n      markdownLineEndingOrSpace(code) ||\n      unicodeWhitespace(code) ||\n      (code !== 45 && unicodePunctuation(code))\n    ) {\n      return domainAfter(code)\n    }\n    seen = true\n    effects.consume(code)\n    return domainInside\n  }\n\n  /**\n   * In domain, at potential trailing punctuation, that was not trailing.\n   *\n   * ```markdown\n   * > | https://example.com\n   *                    ^\n   * ```\n   *\n   * @type {State}\n   */\n  function domainAtPunctuation(code) {\n    // There is an underscore in the last segment of the domain\n    if (code === 95) {\n      underscoreInLastSegment = true\n    }\n    // Otherwise, it’s a `.`: save the last segment underscore in the\n    // penultimate segment slot.\n    else {\n      underscoreInLastLastSegment = underscoreInLastSegment\n      underscoreInLastSegment = undefined\n    }\n    effects.consume(code)\n    return domainInside\n  }\n\n  /**\n   * After domain.\n   *\n   * ```markdown\n   * > | https://example.com/a\n   *                        ^\n   * ```\n   *\n   * @type {State} */\n  function domainAfter(code) {\n    // Note: that’s GH says a dot is needed, but it’s not true:\n    // <https://github.com/github/cmark-gfm/issues/279>\n    if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) {\n      return nok(code)\n    }\n    return ok(code)\n  }\n}\n\n/**\n * Path.\n *\n * ```markdown\n * > | a https://example.org/stuff b\n *                          ^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizePath(effects, ok) {\n  let sizeOpen = 0\n  let sizeClose = 0\n  return pathInside\n\n  /**\n   * In path.\n   *\n   * ```markdown\n   * > | https://example.com/a\n   *                        ^^\n   * ```\n   *\n   * @type {State}\n   */\n  function pathInside(code) {\n    if (code === 40) {\n      sizeOpen++\n      effects.consume(code)\n      return pathInside\n    }\n\n    // To do: `markdown-rs` also needs this.\n    // If this is a paren, and there are less closings than openings,\n    // we don’t check for a trail.\n    if (code === 41 && sizeClose < sizeOpen) {\n      return pathAtPunctuation(code)\n    }\n\n    // Check whether this trailing punctuation marker is optionally\n    // followed by more trailing markers, and then followed\n    // by an end.\n    if (\n      code === 33 ||\n      code === 34 ||\n      code === 38 ||\n      code === 39 ||\n      code === 41 ||\n      code === 42 ||\n      code === 44 ||\n      code === 46 ||\n      code === 58 ||\n      code === 59 ||\n      code === 60 ||\n      code === 63 ||\n      code === 93 ||\n      code === 95 ||\n      code === 126\n    ) {\n      return effects.check(trail, ok, pathAtPunctuation)(code)\n    }\n    if (\n      code === null ||\n      markdownLineEndingOrSpace(code) ||\n      unicodeWhitespace(code)\n    ) {\n      return ok(code)\n    }\n    effects.consume(code)\n    return pathInside\n  }\n\n  /**\n   * In path, at potential trailing punctuation, that was not trailing.\n   *\n   * ```markdown\n   * > | https://example.com/a\"b\n   *                          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function pathAtPunctuation(code) {\n    // Count closing parens.\n    if (code === 41) {\n      sizeClose++\n    }\n    effects.consume(code)\n    return pathInside\n  }\n}\n\n/**\n * Trail.\n *\n * This calls `ok` if this *is* the trail, followed by an end, which means\n * the entire trail is not part of the link.\n * It calls `nok` if this *is* part of the link.\n *\n * ```markdown\n * > | https://example.com\").\n *                        ^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTrail(effects, ok, nok) {\n  return trail\n\n  /**\n   * In trail of domain or path.\n   *\n   * ```markdown\n   * > | https://example.com\").\n   *                        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function trail(code) {\n    // Regular trailing punctuation.\n    if (\n      code === 33 ||\n      code === 34 ||\n      code === 39 ||\n      code === 41 ||\n      code === 42 ||\n      code === 44 ||\n      code === 46 ||\n      code === 58 ||\n      code === 59 ||\n      code === 63 ||\n      code === 95 ||\n      code === 126\n    ) {\n      effects.consume(code)\n      return trail\n    }\n\n    // `&` followed by one or more alphabeticals and then a `;`, is\n    // as a whole considered as trailing punctuation.\n    // In all other cases, it is considered as continuation of the URL.\n    if (code === 38) {\n      effects.consume(code)\n      return trailCharRefStart\n    }\n\n    // Needed because we allow literals after `[`, as we fix:\n    // <https://github.com/github/cmark-gfm/issues/278>.\n    // Check that it is not followed by `(` or `[`.\n    if (code === 93) {\n      effects.consume(code)\n      return trailBracketAfter\n    }\n    if (\n      // `<` is an end.\n      code === 60 ||\n      // So is whitespace.\n      code === null ||\n      markdownLineEndingOrSpace(code) ||\n      unicodeWhitespace(code)\n    ) {\n      return ok(code)\n    }\n    return nok(code)\n  }\n\n  /**\n   * In trail, after `]`.\n   *\n   * > 👉 **Note**: this deviates from `cmark-gfm` to fix a bug.\n   * > See end of <https://github.com/github/cmark-gfm/issues/278> for more.\n   *\n   * ```markdown\n   * > | https://example.com](\n   *                         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function trailBracketAfter(code) {\n    // Whitespace or something that could start a resource or reference is the end.\n    // Switch back to trail otherwise.\n    if (\n      code === null ||\n      code === 40 ||\n      code === 91 ||\n      markdownLineEndingOrSpace(code) ||\n      unicodeWhitespace(code)\n    ) {\n      return ok(code)\n    }\n    return trail(code)\n  }\n\n  /**\n   * In character-reference like trail, after `&`.\n   *\n   * ```markdown\n   * > | https://example.com&amp;).\n   *                         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function trailCharRefStart(code) {\n    // When non-alpha, it’s not a trail.\n    return asciiAlpha(code) ? trailCharRefInside(code) : nok(code)\n  }\n\n  /**\n   * In character-reference like trail.\n   *\n   * ```markdown\n   * > | https://example.com&amp;).\n   *                         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function trailCharRefInside(code) {\n    // Switch back to trail if this is well-formed.\n    if (code === 59) {\n      effects.consume(code)\n      return trail\n    }\n    if (asciiAlpha(code)) {\n      effects.consume(code)\n      return trailCharRefInside\n    }\n\n    // It’s not a trail.\n    return nok(code)\n  }\n}\n\n/**\n * Dot in email domain trail.\n *\n * This calls `ok` if this *is* the trail, followed by an end, which means\n * the trail is not part of the link.\n * It calls `nok` if this *is* part of the link.\n *\n * ```markdown\n * > | contact@example.org.\n *                        ^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeEmailDomainDotTrail(effects, ok, nok) {\n  return start\n\n  /**\n   * Dot.\n   *\n   * ```markdown\n   * > | contact@example.org.\n   *                    ^   ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    // Must be dot.\n    effects.consume(code)\n    return after\n  }\n\n  /**\n   * After dot.\n   *\n   * ```markdown\n   * > | contact@example.org.\n   *                     ^   ^\n   * ```\n   *\n   * @type {State}\n   */\n  function after(code) {\n    // Not a trail if alphanumeric.\n    return asciiAlphanumeric(code) ? nok(code) : ok(code)\n  }\n}\n\n/**\n * See:\n * <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L156>.\n *\n * @type {Previous}\n */\nfunction previousWww(code) {\n  return (\n    code === null ||\n    code === 40 ||\n    code === 42 ||\n    code === 95 ||\n    code === 91 ||\n    code === 93 ||\n    code === 126 ||\n    markdownLineEndingOrSpace(code)\n  )\n}\n\n/**\n * See:\n * <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L214>.\n *\n * @type {Previous}\n */\nfunction previousProtocol(code) {\n  return !asciiAlpha(code)\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previousEmail(code) {\n  // Do not allow a slash “inside” atext.\n  // The reference code is a bit weird, but that’s what it results in.\n  // Source: <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L307>.\n  // Other than slash, every preceding character is allowed.\n  return !(code === 47 || gfmAtext(code))\n}\n\n/**\n * @param {Code} code\n * @returns {boolean}\n */\nfunction gfmAtext(code) {\n  return (\n    code === 43 ||\n    code === 45 ||\n    code === 46 ||\n    code === 95 ||\n    asciiAlphanumeric(code)\n  )\n}\n\n/**\n * @param {Array<Event>} events\n * @returns {boolean}\n */\nfunction previousUnbalanced(events) {\n  let index = events.length\n  let result = false\n  while (index--) {\n    const token = events[index][1]\n    if (\n      (token.type === 'labelLink' || token.type === 'labelImage') &&\n      !token._balanced\n    ) {\n      result = true\n      break\n    }\n\n    // If we’ve seen this token, and it was marked as not having any unbalanced\n    // bracket before it, we can exit.\n    if (token._gfmAutolinkLiteralWalkedInto) {\n      result = false\n      break\n    }\n  }\n  if (events.length > 0 && !result) {\n    // Mark the last token as “walked into” w/o finding\n    // anything.\n    events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true\n  }\n  return result\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport {\n  markdownLineEndingOrSpace,\n  unicodePunctuation,\n  unicodeWhitespace\n} from 'micromark-util-character'\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n *   Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n *   Group.\n */\nexport function classifyCharacter(code) {\n  if (\n    code === null ||\n    markdownLineEndingOrSpace(code) ||\n    unicodeWhitespace(code)\n  ) {\n    return 1\n  }\n  if (unicodePunctuation(code)) {\n    return 2\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {Array<{resolveAll?: Resolver | undefined}>} constructs\n *   List of constructs, optionally with `resolveAll`s.\n * @param {Array<Event>} events\n *   List of events.\n * @param {TokenizeContext} context\n *   Context used by `tokenize`.\n * @returns {Array<Event>}\n *   Changed events.\n */\nexport function resolveAll(constructs, events, context) {\n  /** @type {Array<Resolver>} */\n  const called = []\n  let index = -1\n\n  while (++index < constructs.length) {\n    const resolve = constructs[index].resolveAll\n\n    if (resolve && !called.includes(resolve)) {\n      events = resolve(events, context)\n      called.push(resolve)\n    }\n  }\n\n  return events\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {markdownSpace} from 'micromark-util-character'\n\n// To do: implement `spaceOrTab`, `spaceOrTabMinMax`, `spaceOrTabWithOptions`.\n\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * *   spaces in markdown are often optional, in which case this factory can be\n *     used and `ok` will be switched to whether spaces were found or not\n * *   one line ending or space can be detected with `markdownSpace(code)` right\n *     before using `factorySpace`\n *\n * ###### Examples\n *\n * Where `␉` represents a tab (plus how much it expands) and `␠` represents a\n * single space.\n *\n * ```markdown\n * ␉\n * ␠␠␠␠\n * ␉␠\n * ```\n *\n * @param {Effects} effects\n *   Context.\n * @param {State} ok\n *   State switched to when successful.\n * @param {TokenType} type\n *   Type (`' \\t'`).\n * @param {number | undefined} [max=Infinity]\n *   Max (exclusive).\n * @returns {State}\n *   Start state.\n */\nexport function factorySpace(effects, ok, type, max) {\n  const limit = max ? max - 1 : Number.POSITIVE_INFINITY\n  let size = 0\n  return start\n\n  /** @type {State} */\n  function start(code) {\n    if (markdownSpace(code)) {\n      effects.enter(type)\n      return prefix(code)\n    }\n    return ok(code)\n  }\n\n  /** @type {State} */\n  function prefix(code) {\n    if (markdownSpace(code) && size++ < limit) {\n      effects.consume(code)\n      return prefix\n    }\n    effects.exit(type)\n    return ok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const blankLine = {\n  tokenize: tokenizeBlankLine,\n  partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLine(effects, ok, nok) {\n  return start\n\n  /**\n   * Start of blank line.\n   *\n   * > 👉 **Note**: `␠` represents a space character.\n   *\n   * ```markdown\n   * > | ␠␠␊\n   *     ^\n   * > | ␊\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    return markdownSpace(code)\n      ? factorySpace(effects, after, 'linePrefix')(code)\n      : after(code)\n  }\n\n  /**\n   * At eof/eol, after optional whitespace.\n   *\n   * > 👉 **Note**: `␠` represents a space character.\n   *\n   * ```markdown\n   * > | ␠␠␊\n   *       ^\n   * > | ␊\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function after(code) {\n    return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {blankLine} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEndingOrSpace} from 'micromark-util-character'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nconst indent = {\n  tokenize: tokenizeIndent,\n  partial: true\n}\n\n// To do: micromark should support a `_hiddenGfmFootnoteSupport`, which only\n// affects label start (image).\n// That will let us drop `tokenizePotentialGfmFootnote*`.\n// It currently has a `_hiddenFootnoteSupport`, which affects that and more.\n// That can be removed when `micromark-extension-footnote` is archived.\n\n/**\n * Create an extension for `micromark` to enable GFM footnote syntax.\n *\n * @returns {Extension}\n *   Extension for `micromark` that can be passed in `extensions` to\n *   enable GFM footnote syntax.\n */\nexport function gfmFootnote() {\n  /** @type {Extension} */\n  return {\n    document: {\n      [91]: {\n        tokenize: tokenizeDefinitionStart,\n        continuation: {\n          tokenize: tokenizeDefinitionContinuation\n        },\n        exit: gfmFootnoteDefinitionEnd\n      }\n    },\n    text: {\n      [91]: {\n        tokenize: tokenizeGfmFootnoteCall\n      },\n      [93]: {\n        add: 'after',\n        tokenize: tokenizePotentialGfmFootnoteCall,\n        resolveTo: resolveToPotentialGfmFootnoteCall\n      }\n    }\n  }\n}\n\n// To do: remove after micromark update.\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizePotentialGfmFootnoteCall(effects, ok, nok) {\n  const self = this\n  let index = self.events.length\n  const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n  /** @type {Token} */\n  let labelStart\n\n  // Find an opening.\n  while (index--) {\n    const token = self.events[index][1]\n    if (token.type === 'labelImage') {\n      labelStart = token\n      break\n    }\n\n    // Exit if we’ve walked far enough.\n    if (\n      token.type === 'gfmFootnoteCall' ||\n      token.type === 'labelLink' ||\n      token.type === 'label' ||\n      token.type === 'image' ||\n      token.type === 'link'\n    ) {\n      break\n    }\n  }\n  return start\n\n  /**\n   * @type {State}\n   */\n  function start(code) {\n    if (!labelStart || !labelStart._balanced) {\n      return nok(code)\n    }\n    const id = normalizeIdentifier(\n      self.sliceSerialize({\n        start: labelStart.end,\n        end: self.now()\n      })\n    )\n    if (id.codePointAt(0) !== 94 || !defined.includes(id.slice(1))) {\n      return nok(code)\n    }\n    effects.enter('gfmFootnoteCallLabelMarker')\n    effects.consume(code)\n    effects.exit('gfmFootnoteCallLabelMarker')\n    return ok(code)\n  }\n}\n\n// To do: remove after micromark update.\n/** @type {Resolver} */\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n  let index = events.length\n  /** @type {Token | undefined} */\n  let labelStart\n\n  // Find an opening.\n  while (index--) {\n    if (\n      events[index][1].type === 'labelImage' &&\n      events[index][0] === 'enter'\n    ) {\n      labelStart = events[index][1]\n      break\n    }\n  }\n  // Change the `labelImageMarker` to a `data`.\n  events[index + 1][1].type = 'data'\n  events[index + 3][1].type = 'gfmFootnoteCallLabelMarker'\n\n  // The whole (without `!`):\n  /** @type {Token} */\n  const call = {\n    type: 'gfmFootnoteCall',\n    start: Object.assign({}, events[index + 3][1].start),\n    end: Object.assign({}, events[events.length - 1][1].end)\n  }\n  // The `^` marker\n  /** @type {Token} */\n  const marker = {\n    type: 'gfmFootnoteCallMarker',\n    start: Object.assign({}, events[index + 3][1].end),\n    end: Object.assign({}, events[index + 3][1].end)\n  }\n  // Increment the end 1 character.\n  marker.end.column++\n  marker.end.offset++\n  marker.end._bufferIndex++\n  /** @type {Token} */\n  const string = {\n    type: 'gfmFootnoteCallString',\n    start: Object.assign({}, marker.end),\n    end: Object.assign({}, events[events.length - 1][1].start)\n  }\n  /** @type {Token} */\n  const chunk = {\n    type: 'chunkString',\n    contentType: 'string',\n    start: Object.assign({}, string.start),\n    end: Object.assign({}, string.end)\n  }\n\n  /** @type {Array<Event>} */\n  const replacement = [\n    // Take the `labelImageMarker` (now `data`, the `!`)\n    events[index + 1],\n    events[index + 2],\n    ['enter', call, context],\n    // The `[`\n    events[index + 3],\n    events[index + 4],\n    // The `^`.\n    ['enter', marker, context],\n    ['exit', marker, context],\n    // Everything in between.\n    ['enter', string, context],\n    ['enter', chunk, context],\n    ['exit', chunk, context],\n    ['exit', string, context],\n    // The ending (`]`, properly parsed and labelled).\n    events[events.length - 2],\n    events[events.length - 1],\n    ['exit', call, context]\n  ]\n  events.splice(index, events.length - index + 1, ...replacement)\n  return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeGfmFootnoteCall(effects, ok, nok) {\n  const self = this\n  const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n  let size = 0\n  /** @type {boolean} */\n  let data\n\n  // Note: the implementation of `markdown-rs` is different, because it houses\n  // core *and* extensions in one project.\n  // Therefore, it can include footnote logic inside `label-end`.\n  // We can’t do that, but luckily, we can parse footnotes in a simpler way than\n  // needed for labels.\n  return start\n\n  /**\n   * Start of footnote label.\n   *\n   * ```markdown\n   * > | a [^b] c\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    effects.enter('gfmFootnoteCall')\n    effects.enter('gfmFootnoteCallLabelMarker')\n    effects.consume(code)\n    effects.exit('gfmFootnoteCallLabelMarker')\n    return callStart\n  }\n\n  /**\n   * After `[`, at `^`.\n   *\n   * ```markdown\n   * > | a [^b] c\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function callStart(code) {\n    if (code !== 94) return nok(code)\n    effects.enter('gfmFootnoteCallMarker')\n    effects.consume(code)\n    effects.exit('gfmFootnoteCallMarker')\n    effects.enter('gfmFootnoteCallString')\n    effects.enter('chunkString').contentType = 'string'\n    return callData\n  }\n\n  /**\n   * In label.\n   *\n   * ```markdown\n   * > | a [^b] c\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function callData(code) {\n    if (\n      // Too long.\n      size > 999 ||\n      // Closing brace with nothing.\n      (code === 93 && !data) ||\n      // Space or tab is not supported by GFM for some reason.\n      // `\\n` and `[` not being supported makes sense.\n      code === null ||\n      code === 91 ||\n      markdownLineEndingOrSpace(code)\n    ) {\n      return nok(code)\n    }\n    if (code === 93) {\n      effects.exit('chunkString')\n      const token = effects.exit('gfmFootnoteCallString')\n      if (!defined.includes(normalizeIdentifier(self.sliceSerialize(token)))) {\n        return nok(code)\n      }\n      effects.enter('gfmFootnoteCallLabelMarker')\n      effects.consume(code)\n      effects.exit('gfmFootnoteCallLabelMarker')\n      effects.exit('gfmFootnoteCall')\n      return ok\n    }\n    if (!markdownLineEndingOrSpace(code)) {\n      data = true\n    }\n    size++\n    effects.consume(code)\n    return code === 92 ? callEscape : callData\n  }\n\n  /**\n   * On character after escape.\n   *\n   * ```markdown\n   * > | a [^b\\c] d\n   *           ^\n   * ```\n   *\n   * @type {State}\n   */\n  function callEscape(code) {\n    if (code === 91 || code === 92 || code === 93) {\n      effects.consume(code)\n      size++\n      return callData\n    }\n    return callData(code)\n  }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinitionStart(effects, ok, nok) {\n  const self = this\n  const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n  /** @type {string} */\n  let identifier\n  let size = 0\n  /** @type {boolean | undefined} */\n  let data\n  return start\n\n  /**\n   * Start of GFM footnote definition.\n   *\n   * ```markdown\n   * > | [^a]: b\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    effects.enter('gfmFootnoteDefinition')._container = true\n    effects.enter('gfmFootnoteDefinitionLabel')\n    effects.enter('gfmFootnoteDefinitionLabelMarker')\n    effects.consume(code)\n    effects.exit('gfmFootnoteDefinitionLabelMarker')\n    return labelAtMarker\n  }\n\n  /**\n   * In label, at caret.\n   *\n   * ```markdown\n   * > | [^a]: b\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function labelAtMarker(code) {\n    if (code === 94) {\n      effects.enter('gfmFootnoteDefinitionMarker')\n      effects.consume(code)\n      effects.exit('gfmFootnoteDefinitionMarker')\n      effects.enter('gfmFootnoteDefinitionLabelString')\n      effects.enter('chunkString').contentType = 'string'\n      return labelInside\n    }\n    return nok(code)\n  }\n\n  /**\n   * In label.\n   *\n   * > 👉 **Note**: `cmark-gfm` prevents whitespace from occurring in footnote\n   * > definition labels.\n   *\n   * ```markdown\n   * > | [^a]: b\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function labelInside(code) {\n    if (\n      // Too long.\n      size > 999 ||\n      // Closing brace with nothing.\n      (code === 93 && !data) ||\n      // Space or tab is not supported by GFM for some reason.\n      // `\\n` and `[` not being supported makes sense.\n      code === null ||\n      code === 91 ||\n      markdownLineEndingOrSpace(code)\n    ) {\n      return nok(code)\n    }\n    if (code === 93) {\n      effects.exit('chunkString')\n      const token = effects.exit('gfmFootnoteDefinitionLabelString')\n      identifier = normalizeIdentifier(self.sliceSerialize(token))\n      effects.enter('gfmFootnoteDefinitionLabelMarker')\n      effects.consume(code)\n      effects.exit('gfmFootnoteDefinitionLabelMarker')\n      effects.exit('gfmFootnoteDefinitionLabel')\n      return labelAfter\n    }\n    if (!markdownLineEndingOrSpace(code)) {\n      data = true\n    }\n    size++\n    effects.consume(code)\n    return code === 92 ? labelEscape : labelInside\n  }\n\n  /**\n   * After `\\`, at a special character.\n   *\n   * > 👉 **Note**: `cmark-gfm` currently does not support escaped brackets:\n   * > <https://github.com/github/cmark-gfm/issues/240>\n   *\n   * ```markdown\n   * > | [^a\\*b]: c\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function labelEscape(code) {\n    if (code === 91 || code === 92 || code === 93) {\n      effects.consume(code)\n      size++\n      return labelInside\n    }\n    return labelInside(code)\n  }\n\n  /**\n   * After definition label.\n   *\n   * ```markdown\n   * > | [^a]: b\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function labelAfter(code) {\n    if (code === 58) {\n      effects.enter('definitionMarker')\n      effects.consume(code)\n      effects.exit('definitionMarker')\n      if (!defined.includes(identifier)) {\n        defined.push(identifier)\n      }\n\n      // Any whitespace after the marker is eaten, forming indented code\n      // is not possible.\n      // No space is also fine, just like a block quote marker.\n      return factorySpace(\n        effects,\n        whitespaceAfter,\n        'gfmFootnoteDefinitionWhitespace'\n      )\n    }\n    return nok(code)\n  }\n\n  /**\n   * After definition prefix.\n   *\n   * ```markdown\n   * > | [^a]: b\n   *           ^\n   * ```\n   *\n   * @type {State}\n   */\n  function whitespaceAfter(code) {\n    // `markdown-rs` has a wrapping token for the prefix that is closed here.\n    return ok(code)\n  }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinitionContinuation(effects, ok, nok) {\n  /// Start of footnote definition continuation.\n  ///\n  /// ```markdown\n  ///   | [^a]: b\n  /// > |     c\n  ///     ^\n  /// ```\n  //\n  // Either a blank line, which is okay, or an indented thing.\n  return effects.check(blankLine, ok, effects.attempt(indent, ok, nok))\n}\n\n/** @type {Exiter} */\nfunction gfmFootnoteDefinitionEnd(effects) {\n  effects.exit('gfmFootnoteDefinition')\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n  const self = this\n  return factorySpace(\n    effects,\n    afterPrefix,\n    'gfmFootnoteDefinitionIndent',\n    4 + 1\n  )\n\n  /**\n   * @type {State}\n   */\n  function afterPrefix(code) {\n    const tail = self.events[self.events.length - 1]\n    return tail &&\n      tail[1].type === 'gfmFootnoteDefinitionIndent' &&\n      tail[2].sliceSerialize(tail[1], true).length === 4\n      ? ok(code)\n      : nok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [singleTilde=true]\n *   Whether to support strikethrough with a single tilde (default: `true`).\n *\n *   Single tildes work on github.com, but are technically prohibited by the\n *   GFM spec.\n */\n\nimport {splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/**\n * Create an extension for `micromark` to enable GFM strikethrough syntax.\n *\n * @param {Options | null | undefined} [options={}]\n *   Configuration.\n * @returns {Extension}\n *   Extension for `micromark` that can be passed in `extensions`, to\n *   enable GFM strikethrough syntax.\n */\nexport function gfmStrikethrough(options) {\n  const options_ = options || {}\n  let single = options_.singleTilde\n  const tokenizer = {\n    tokenize: tokenizeStrikethrough,\n    resolveAll: resolveAllStrikethrough\n  }\n  if (single === null || single === undefined) {\n    single = true\n  }\n  return {\n    text: {\n      [126]: tokenizer\n    },\n    insideSpan: {\n      null: [tokenizer]\n    },\n    attentionMarkers: {\n      null: [126]\n    }\n  }\n\n  /**\n   * Take events and resolve strikethrough.\n   *\n   * @type {Resolver}\n   */\n  function resolveAllStrikethrough(events, context) {\n    let index = -1\n\n    // Walk through all events.\n    while (++index < events.length) {\n      // Find a token that can close.\n      if (\n        events[index][0] === 'enter' &&\n        events[index][1].type === 'strikethroughSequenceTemporary' &&\n        events[index][1]._close\n      ) {\n        let open = index\n\n        // Now walk back to find an opener.\n        while (open--) {\n          // Find a token that can open the closer.\n          if (\n            events[open][0] === 'exit' &&\n            events[open][1].type === 'strikethroughSequenceTemporary' &&\n            events[open][1]._open &&\n            // If the sizes are the same:\n            events[index][1].end.offset - events[index][1].start.offset ===\n              events[open][1].end.offset - events[open][1].start.offset\n          ) {\n            events[index][1].type = 'strikethroughSequence'\n            events[open][1].type = 'strikethroughSequence'\n\n            /** @type {Token} */\n            const strikethrough = {\n              type: 'strikethrough',\n              start: Object.assign({}, events[open][1].start),\n              end: Object.assign({}, events[index][1].end)\n            }\n\n            /** @type {Token} */\n            const text = {\n              type: 'strikethroughText',\n              start: Object.assign({}, events[open][1].end),\n              end: Object.assign({}, events[index][1].start)\n            }\n\n            // Opening.\n            /** @type {Array<Event>} */\n            const nextEvents = [\n              ['enter', strikethrough, context],\n              ['enter', events[open][1], context],\n              ['exit', events[open][1], context],\n              ['enter', text, context]\n            ]\n            const insideSpan = context.parser.constructs.insideSpan.null\n            if (insideSpan) {\n              // Between.\n              splice(\n                nextEvents,\n                nextEvents.length,\n                0,\n                resolveAll(insideSpan, events.slice(open + 1, index), context)\n              )\n            }\n\n            // Closing.\n            splice(nextEvents, nextEvents.length, 0, [\n              ['exit', text, context],\n              ['enter', events[index][1], context],\n              ['exit', events[index][1], context],\n              ['exit', strikethrough, context]\n            ])\n            splice(events, open - 1, index - open + 3, nextEvents)\n            index = open + nextEvents.length - 2\n            break\n          }\n        }\n      }\n    }\n    index = -1\n    while (++index < events.length) {\n      if (events[index][1].type === 'strikethroughSequenceTemporary') {\n        events[index][1].type = 'data'\n      }\n    }\n    return events\n  }\n\n  /**\n   * @this {TokenizeContext}\n   * @type {Tokenizer}\n   */\n  function tokenizeStrikethrough(effects, ok, nok) {\n    const previous = this.previous\n    const events = this.events\n    let size = 0\n    return start\n\n    /** @type {State} */\n    function start(code) {\n      if (\n        previous === 126 &&\n        events[events.length - 1][1].type !== 'characterEscape'\n      ) {\n        return nok(code)\n      }\n      effects.enter('strikethroughSequenceTemporary')\n      return more(code)\n    }\n\n    /** @type {State} */\n    function more(code) {\n      const before = classifyCharacter(previous)\n      if (code === 126) {\n        // If this is the third marker, exit.\n        if (size > 1) return nok(code)\n        effects.consume(code)\n        size++\n        return more\n      }\n      if (size < 2 && !single) return nok(code)\n      const token = effects.exit('strikethroughSequenceTemporary')\n      const after = classifyCharacter(code)\n      token._open = !after || (after === 2 && Boolean(before))\n      token._close = !before || (before === 2 && Boolean(after))\n      return ok(code)\n    }\n  }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\n// Port of `edit_map.rs` from `markdown-rs`.\n// This should move to `markdown-js` later.\n\n// Deal with several changes in events, batching them together.\n//\n// Preferably, changes should be kept to a minimum.\n// Sometimes, it’s needed to change the list of events, because parsing can be\n// messy, and it helps to expose a cleaner interface of events to the compiler\n// and other users.\n// It can also help to merge many adjacent similar events.\n// And, in other cases, it’s needed to parse subcontent: pass some events\n// through another tokenizer and inject the result.\n\n/**\n * @typedef {[number, number, Array<Event>]} Change\n * @typedef {[number, number, number]} Jump\n */\n\n/**\n * Tracks a bunch of edits.\n */\nexport class EditMap {\n  /**\n   * Create a new edit map.\n   */\n  constructor() {\n    /**\n     * Record of changes.\n     *\n     * @type {Array<Change>}\n     */\n    this.map = []\n  }\n\n  /**\n   * Create an edit: a remove and/or add at a certain place.\n   *\n   * @param {number} index\n   * @param {number} remove\n   * @param {Array<Event>} add\n   * @returns {undefined}\n   */\n  add(index, remove, add) {\n    addImpl(this, index, remove, add)\n  }\n\n  // To do: add this when moving to `micromark`.\n  // /**\n  //  * Create an edit: but insert `add` before existing additions.\n  //  *\n  //  * @param {number} index\n  //  * @param {number} remove\n  //  * @param {Array<Event>} add\n  //  * @returns {undefined}\n  //  */\n  // addBefore(index, remove, add) {\n  //   addImpl(this, index, remove, add, true)\n  // }\n\n  /**\n   * Done, change the events.\n   *\n   * @param {Array<Event>} events\n   * @returns {undefined}\n   */\n  consume(events) {\n    this.map.sort(function (a, b) {\n      return a[0] - b[0]\n    })\n\n    /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */\n    if (this.map.length === 0) {\n      return\n    }\n\n    // To do: if links are added in events, like they are in `markdown-rs`,\n    // this is needed.\n    // // Calculate jumps: where items in the current list move to.\n    // /** @type {Array<Jump>} */\n    // const jumps = []\n    // let index = 0\n    // let addAcc = 0\n    // let removeAcc = 0\n    // while (index < this.map.length) {\n    //   const [at, remove, add] = this.map[index]\n    //   removeAcc += remove\n    //   addAcc += add.length\n    //   jumps.push([at, removeAcc, addAcc])\n    //   index += 1\n    // }\n    //\n    // . shiftLinks(events, jumps)\n\n    let index = this.map.length\n    /** @type {Array<Array<Event>>} */\n    const vecs = []\n    while (index > 0) {\n      index -= 1\n      vecs.push(\n        events.slice(this.map[index][0] + this.map[index][1]),\n        this.map[index][2]\n      )\n\n      // Truncate rest.\n      events.length = this.map[index][0]\n    }\n    vecs.push([...events])\n    events.length = 0\n    let slice = vecs.pop()\n    while (slice) {\n      events.push(...slice)\n      slice = vecs.pop()\n    }\n\n    // Truncate everything.\n    this.map.length = 0\n  }\n}\n\n/**\n * Create an edit.\n *\n * @param {EditMap} editMap\n * @param {number} at\n * @param {number} remove\n * @param {Array<Event>} add\n * @returns {undefined}\n */\nfunction addImpl(editMap, at, remove, add) {\n  let index = 0\n\n  /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */\n  if (remove === 0 && add.length === 0) {\n    return\n  }\n  while (index < editMap.map.length) {\n    if (editMap.map[index][0] === at) {\n      editMap.map[index][1] += remove\n\n      // To do: before not used by tables, use when moving to micromark.\n      // if (before) {\n      //   add.push(...editMap.map[index][2])\n      //   editMap.map[index][2] = add\n      // } else {\n      editMap.map[index][2].push(...add)\n      // }\n\n      return\n    }\n    index += 1\n  }\n  editMap.map.push([at, remove, add])\n}\n\n// /**\n//  * Shift `previous` and `next` links according to `jumps`.\n//  *\n//  * This fixes links in case there are events removed or added between them.\n//  *\n//  * @param {Array<Event>} events\n//  * @param {Array<Jump>} jumps\n//  */\n// function shiftLinks(events, jumps) {\n//   let jumpIndex = 0\n//   let index = 0\n//   let add = 0\n//   let rm = 0\n\n//   while (index < events.length) {\n//     const rmCurr = rm\n\n//     while (jumpIndex < jumps.length && jumps[jumpIndex][0] <= index) {\n//       add = jumps[jumpIndex][2]\n//       rm = jumps[jumpIndex][1]\n//       jumpIndex += 1\n//     }\n\n//     // Ignore items that will be removed.\n//     if (rm > rmCurr) {\n//       index += rm - rmCurr\n//     } else {\n//       // ?\n//       // if let Some(link) = &events[index].link {\n//       //     if let Some(next) = link.next {\n//       //         events[next].link.as_mut().unwrap().previous = Some(index + add - rm);\n//       //         while jumpIndex < jumps.len() && jumps[jumpIndex].0 <= next {\n//       //             add = jumps[jumpIndex].2;\n//       //             rm = jumps[jumpIndex].1;\n//       //             jumpIndex += 1;\n//       //         }\n//       //         events[index].link.as_mut().unwrap().next = Some(next + add - rm);\n//       //         index = next;\n//       //         continue;\n//       //     }\n//       // }\n//       index += 1\n//     }\n//   }\n// }\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\n/**\n * @typedef {'center' | 'left' | 'none' | 'right'} Align\n */\n\n/**\n * Figure out the alignment of a GFM table.\n *\n * @param {Readonly<Array<Event>>} events\n *   List of events.\n * @param {number} index\n *   Table enter event.\n * @returns {Array<Align>}\n *   List of aligns.\n */\nexport function gfmTableAlign(events, index) {\n  let inDelimiterRow = false\n  /** @type {Array<Align>} */\n  const align = []\n  while (index < events.length) {\n    const event = events[index]\n    if (inDelimiterRow) {\n      if (event[0] === 'enter') {\n        // Start of alignment value: set a new column.\n        // To do: `markdown-rs` uses `tableDelimiterCellValue`.\n        if (event[1].type === 'tableContent') {\n          align.push(\n            events[index + 1][1].type === 'tableDelimiterMarker'\n              ? 'left'\n              : 'none'\n          )\n        }\n      }\n      // Exits:\n      // End of alignment value: change the column.\n      // To do: `markdown-rs` uses `tableDelimiterCellValue`.\n      else if (event[1].type === 'tableContent') {\n        if (events[index - 1][1].type === 'tableDelimiterMarker') {\n          const alignIndex = align.length - 1\n          align[alignIndex] = align[alignIndex] === 'left' ? 'center' : 'right'\n        }\n      }\n      // Done!\n      else if (event[1].type === 'tableDelimiterRow') {\n        break\n      }\n    } else if (event[0] === 'enter' && event[1].type === 'tableDelimiterRow') {\n      inDelimiterRow = true\n    }\n    index += 1\n  }\n  return align\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n/**\n * @typedef {[number, number, number, number]} Range\n *   Cell info.\n *\n * @typedef {0 | 1 | 2 | 3} RowKind\n *   Where we are: `1` for head row, `2` for delimiter row, `3` for body row.\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n  markdownLineEnding,\n  markdownLineEndingOrSpace,\n  markdownSpace\n} from 'micromark-util-character'\nimport {EditMap} from './edit-map.js'\nimport {gfmTableAlign} from './infer.js'\n\n/**\n * Create an HTML extension for `micromark` to support GitHub tables syntax.\n *\n * @returns {Extension}\n *   Extension for `micromark` that can be passed in `extensions` to enable GFM\n *   table syntax.\n */\nexport function gfmTable() {\n  return {\n    flow: {\n      null: {\n        tokenize: tokenizeTable,\n        resolveAll: resolveTable\n      }\n    }\n  }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTable(effects, ok, nok) {\n  const self = this\n  let size = 0\n  let sizeB = 0\n  /** @type {boolean | undefined} */\n  let seen\n  return start\n\n  /**\n   * Start of a GFM table.\n   *\n   * If there is a valid table row or table head before, then we try to parse\n   * another row.\n   * Otherwise, we try to parse a head.\n   *\n   * ```markdown\n   * > | | a |\n   *     ^\n   *   | | - |\n   * > | | b |\n   *     ^\n   * ```\n   * @type {State}\n   */\n  function start(code) {\n    let index = self.events.length - 1\n    while (index > -1) {\n      const type = self.events[index][1].type\n      if (\n        type === 'lineEnding' ||\n        // Note: markdown-rs uses `whitespace` instead of `linePrefix`\n        type === 'linePrefix'\n      )\n        index--\n      else break\n    }\n    const tail = index > -1 ? self.events[index][1].type : null\n    const next =\n      tail === 'tableHead' || tail === 'tableRow' ? bodyRowStart : headRowBefore\n\n    // Don’t allow lazy body rows.\n    if (next === bodyRowStart && self.parser.lazy[self.now().line]) {\n      return nok(code)\n    }\n    return next(code)\n  }\n\n  /**\n   * Before table head row.\n   *\n   * ```markdown\n   * > | | a |\n   *     ^\n   *   | | - |\n   *   | | b |\n   * ```\n   *\n   * @type {State}\n   */\n  function headRowBefore(code) {\n    effects.enter('tableHead')\n    effects.enter('tableRow')\n    return headRowStart(code)\n  }\n\n  /**\n   * Before table head row, after whitespace.\n   *\n   * ```markdown\n   * > | | a |\n   *     ^\n   *   | | - |\n   *   | | b |\n   * ```\n   *\n   * @type {State}\n   */\n  function headRowStart(code) {\n    if (code === 124) {\n      return headRowBreak(code)\n    }\n\n    // To do: micromark-js should let us parse our own whitespace in extensions,\n    // like `markdown-rs`:\n    //\n    // ```js\n    // // 4+ spaces.\n    // if (markdownSpace(code)) {\n    //   return nok(code)\n    // }\n    // ```\n\n    seen = true\n    // Count the first character, that isn’t a pipe, double.\n    sizeB += 1\n    return headRowBreak(code)\n  }\n\n  /**\n   * At break in table head row.\n   *\n   * ```markdown\n   * > | | a |\n   *     ^\n   *       ^\n   *         ^\n   *   | | - |\n   *   | | b |\n   * ```\n   *\n   * @type {State}\n   */\n  function headRowBreak(code) {\n    if (code === null) {\n      // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n      return nok(code)\n    }\n    if (markdownLineEnding(code)) {\n      // If anything other than one pipe (ignoring whitespace) was used, it’s fine.\n      if (sizeB > 1) {\n        sizeB = 0\n        // To do: check if this works.\n        // Feel free to interrupt:\n        self.interrupt = true\n        effects.exit('tableRow')\n        effects.enter('lineEnding')\n        effects.consume(code)\n        effects.exit('lineEnding')\n        return headDelimiterStart\n      }\n\n      // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n      return nok(code)\n    }\n    if (markdownSpace(code)) {\n      // To do: check if this is fine.\n      // effects.attempt(State::Next(StateName::GfmTableHeadRowBreak), State::Nok)\n      // State::Retry(space_or_tab(tokenizer))\n      return factorySpace(effects, headRowBreak, 'whitespace')(code)\n    }\n    sizeB += 1\n    if (seen) {\n      seen = false\n      // Header cell count.\n      size += 1\n    }\n    if (code === 124) {\n      effects.enter('tableCellDivider')\n      effects.consume(code)\n      effects.exit('tableCellDivider')\n      // Whether a delimiter was seen.\n      seen = true\n      return headRowBreak\n    }\n\n    // Anything else is cell data.\n    effects.enter('data')\n    return headRowData(code)\n  }\n\n  /**\n   * In table head row data.\n   *\n   * ```markdown\n   * > | | a |\n   *       ^\n   *   | | - |\n   *   | | b |\n   * ```\n   *\n   * @type {State}\n   */\n  function headRowData(code) {\n    if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n      effects.exit('data')\n      return headRowBreak(code)\n    }\n    effects.consume(code)\n    return code === 92 ? headRowEscape : headRowData\n  }\n\n  /**\n   * In table head row escape.\n   *\n   * ```markdown\n   * > | | a\\-b |\n   *         ^\n   *   | | ---- |\n   *   | | c    |\n   * ```\n   *\n   * @type {State}\n   */\n  function headRowEscape(code) {\n    if (code === 92 || code === 124) {\n      effects.consume(code)\n      return headRowData\n    }\n    return headRowData(code)\n  }\n\n  /**\n   * Before delimiter row.\n   *\n   * ```markdown\n   *   | | a |\n   * > | | - |\n   *     ^\n   *   | | b |\n   * ```\n   *\n   * @type {State}\n   */\n  function headDelimiterStart(code) {\n    // Reset `interrupt`.\n    self.interrupt = false\n\n    // Note: in `markdown-rs`, we need to handle piercing here too.\n    if (self.parser.lazy[self.now().line]) {\n      return nok(code)\n    }\n    effects.enter('tableDelimiterRow')\n    // Track if we’ve seen a `:` or `|`.\n    seen = false\n    if (markdownSpace(code)) {\n      return factorySpace(\n        effects,\n        headDelimiterBefore,\n        'linePrefix',\n        self.parser.constructs.disable.null.includes('codeIndented')\n          ? undefined\n          : 4\n      )(code)\n    }\n    return headDelimiterBefore(code)\n  }\n\n  /**\n   * Before delimiter row, after optional whitespace.\n   *\n   * Reused when a `|` is found later, to parse another cell.\n   *\n   * ```markdown\n   *   | | a |\n   * > | | - |\n   *     ^\n   *   | | b |\n   * ```\n   *\n   * @type {State}\n   */\n  function headDelimiterBefore(code) {\n    if (code === 45 || code === 58) {\n      return headDelimiterValueBefore(code)\n    }\n    if (code === 124) {\n      seen = true\n      // If we start with a pipe, we open a cell marker.\n      effects.enter('tableCellDivider')\n      effects.consume(code)\n      effects.exit('tableCellDivider')\n      return headDelimiterCellBefore\n    }\n\n    // More whitespace / empty row not allowed at start.\n    return headDelimiterNok(code)\n  }\n\n  /**\n   * After `|`, before delimiter cell.\n   *\n   * ```markdown\n   *   | | a |\n   * > | | - |\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function headDelimiterCellBefore(code) {\n    if (markdownSpace(code)) {\n      return factorySpace(effects, headDelimiterValueBefore, 'whitespace')(code)\n    }\n    return headDelimiterValueBefore(code)\n  }\n\n  /**\n   * Before delimiter cell value.\n   *\n   * ```markdown\n   *   | | a |\n   * > | | - |\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function headDelimiterValueBefore(code) {\n    // Align: left.\n    if (code === 58) {\n      sizeB += 1\n      seen = true\n      effects.enter('tableDelimiterMarker')\n      effects.consume(code)\n      effects.exit('tableDelimiterMarker')\n      return headDelimiterLeftAlignmentAfter\n    }\n\n    // Align: none.\n    if (code === 45) {\n      sizeB += 1\n      // To do: seems weird that this *isn’t* left aligned, but that state is used?\n      return headDelimiterLeftAlignmentAfter(code)\n    }\n    if (code === null || markdownLineEnding(code)) {\n      return headDelimiterCellAfter(code)\n    }\n    return headDelimiterNok(code)\n  }\n\n  /**\n   * After delimiter cell left alignment marker.\n   *\n   * ```markdown\n   *   | | a  |\n   * > | | :- |\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function headDelimiterLeftAlignmentAfter(code) {\n    if (code === 45) {\n      effects.enter('tableDelimiterFiller')\n      return headDelimiterFiller(code)\n    }\n\n    // Anything else is not ok after the left-align colon.\n    return headDelimiterNok(code)\n  }\n\n  /**\n   * In delimiter cell filler.\n   *\n   * ```markdown\n   *   | | a |\n   * > | | - |\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function headDelimiterFiller(code) {\n    if (code === 45) {\n      effects.consume(code)\n      return headDelimiterFiller\n    }\n\n    // Align is `center` if it was `left`, `right` otherwise.\n    if (code === 58) {\n      seen = true\n      effects.exit('tableDelimiterFiller')\n      effects.enter('tableDelimiterMarker')\n      effects.consume(code)\n      effects.exit('tableDelimiterMarker')\n      return headDelimiterRightAlignmentAfter\n    }\n    effects.exit('tableDelimiterFiller')\n    return headDelimiterRightAlignmentAfter(code)\n  }\n\n  /**\n   * After delimiter cell right alignment marker.\n   *\n   * ```markdown\n   *   | |  a |\n   * > | | -: |\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function headDelimiterRightAlignmentAfter(code) {\n    if (markdownSpace(code)) {\n      return factorySpace(effects, headDelimiterCellAfter, 'whitespace')(code)\n    }\n    return headDelimiterCellAfter(code)\n  }\n\n  /**\n   * After delimiter cell.\n   *\n   * ```markdown\n   *   | |  a |\n   * > | | -: |\n   *          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function headDelimiterCellAfter(code) {\n    if (code === 124) {\n      return headDelimiterBefore(code)\n    }\n    if (code === null || markdownLineEnding(code)) {\n      // Exit when:\n      // * there was no `:` or `|` at all (it’s a thematic break or setext\n      //   underline instead)\n      // * the header cell count is not the delimiter cell count\n      if (!seen || size !== sizeB) {\n        return headDelimiterNok(code)\n      }\n\n      // Note: in markdown-rs`, a reset is needed here.\n      effects.exit('tableDelimiterRow')\n      effects.exit('tableHead')\n      // To do: in `markdown-rs`, resolvers need to be registered manually.\n      // effects.register_resolver(ResolveName::GfmTable)\n      return ok(code)\n    }\n    return headDelimiterNok(code)\n  }\n\n  /**\n   * In delimiter row, at a disallowed byte.\n   *\n   * ```markdown\n   *   | | a |\n   * > | | x |\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function headDelimiterNok(code) {\n    // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n    return nok(code)\n  }\n\n  /**\n   * Before table body row.\n   *\n   * ```markdown\n   *   | | a |\n   *   | | - |\n   * > | | b |\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function bodyRowStart(code) {\n    // Note: in `markdown-rs` we need to manually take care of a prefix,\n    // but in `micromark-js` that is done for us, so if we’re here, we’re\n    // never at whitespace.\n    effects.enter('tableRow')\n    return bodyRowBreak(code)\n  }\n\n  /**\n   * At break in table body row.\n   *\n   * ```markdown\n   *   | | a |\n   *   | | - |\n   * > | | b |\n   *     ^\n   *       ^\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function bodyRowBreak(code) {\n    if (code === 124) {\n      effects.enter('tableCellDivider')\n      effects.consume(code)\n      effects.exit('tableCellDivider')\n      return bodyRowBreak\n    }\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit('tableRow')\n      return ok(code)\n    }\n    if (markdownSpace(code)) {\n      return factorySpace(effects, bodyRowBreak, 'whitespace')(code)\n    }\n\n    // Anything else is cell content.\n    effects.enter('data')\n    return bodyRowData(code)\n  }\n\n  /**\n   * In table body row data.\n   *\n   * ```markdown\n   *   | | a |\n   *   | | - |\n   * > | | b |\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function bodyRowData(code) {\n    if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n      effects.exit('data')\n      return bodyRowBreak(code)\n    }\n    effects.consume(code)\n    return code === 92 ? bodyRowEscape : bodyRowData\n  }\n\n  /**\n   * In table body row escape.\n   *\n   * ```markdown\n   *   | | a    |\n   *   | | ---- |\n   * > | | b\\-c |\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function bodyRowEscape(code) {\n    if (code === 92 || code === 124) {\n      effects.consume(code)\n      return bodyRowData\n    }\n    return bodyRowData(code)\n  }\n}\n\n/** @type {Resolver} */\n\nfunction resolveTable(events, context) {\n  let index = -1\n  let inFirstCellAwaitingPipe = true\n  /** @type {RowKind} */\n  let rowKind = 0\n  /** @type {Range} */\n  let lastCell = [0, 0, 0, 0]\n  /** @type {Range} */\n  let cell = [0, 0, 0, 0]\n  let afterHeadAwaitingFirstBodyRow = false\n  let lastTableEnd = 0\n  /** @type {Token | undefined} */\n  let currentTable\n  /** @type {Token | undefined} */\n  let currentBody\n  /** @type {Token | undefined} */\n  let currentCell\n  const map = new EditMap()\n  while (++index < events.length) {\n    const event = events[index]\n    const token = event[1]\n    if (event[0] === 'enter') {\n      // Start of head.\n      if (token.type === 'tableHead') {\n        afterHeadAwaitingFirstBodyRow = false\n\n        // Inject previous (body end and) table end.\n        if (lastTableEnd !== 0) {\n          flushTableEnd(map, context, lastTableEnd, currentTable, currentBody)\n          currentBody = undefined\n          lastTableEnd = 0\n        }\n\n        // Inject table start.\n        currentTable = {\n          type: 'table',\n          start: Object.assign({}, token.start),\n          // Note: correct end is set later.\n          end: Object.assign({}, token.end)\n        }\n        map.add(index, 0, [['enter', currentTable, context]])\n      } else if (\n        token.type === 'tableRow' ||\n        token.type === 'tableDelimiterRow'\n      ) {\n        inFirstCellAwaitingPipe = true\n        currentCell = undefined\n        lastCell = [0, 0, 0, 0]\n        cell = [0, index + 1, 0, 0]\n\n        // Inject table body start.\n        if (afterHeadAwaitingFirstBodyRow) {\n          afterHeadAwaitingFirstBodyRow = false\n          currentBody = {\n            type: 'tableBody',\n            start: Object.assign({}, token.start),\n            // Note: correct end is set later.\n            end: Object.assign({}, token.end)\n          }\n          map.add(index, 0, [['enter', currentBody, context]])\n        }\n        rowKind = token.type === 'tableDelimiterRow' ? 2 : currentBody ? 3 : 1\n      }\n      // Cell data.\n      else if (\n        rowKind &&\n        (token.type === 'data' ||\n          token.type === 'tableDelimiterMarker' ||\n          token.type === 'tableDelimiterFiller')\n      ) {\n        inFirstCellAwaitingPipe = false\n\n        // First value in cell.\n        if (cell[2] === 0) {\n          if (lastCell[1] !== 0) {\n            cell[0] = cell[1]\n            currentCell = flushCell(\n              map,\n              context,\n              lastCell,\n              rowKind,\n              undefined,\n              currentCell\n            )\n            lastCell = [0, 0, 0, 0]\n          }\n          cell[2] = index\n        }\n      } else if (token.type === 'tableCellDivider') {\n        if (inFirstCellAwaitingPipe) {\n          inFirstCellAwaitingPipe = false\n        } else {\n          if (lastCell[1] !== 0) {\n            cell[0] = cell[1]\n            currentCell = flushCell(\n              map,\n              context,\n              lastCell,\n              rowKind,\n              undefined,\n              currentCell\n            )\n          }\n          lastCell = cell\n          cell = [lastCell[1], index, 0, 0]\n        }\n      }\n    }\n    // Exit events.\n    else if (token.type === 'tableHead') {\n      afterHeadAwaitingFirstBodyRow = true\n      lastTableEnd = index\n    } else if (\n      token.type === 'tableRow' ||\n      token.type === 'tableDelimiterRow'\n    ) {\n      lastTableEnd = index\n      if (lastCell[1] !== 0) {\n        cell[0] = cell[1]\n        currentCell = flushCell(\n          map,\n          context,\n          lastCell,\n          rowKind,\n          index,\n          currentCell\n        )\n      } else if (cell[1] !== 0) {\n        currentCell = flushCell(map, context, cell, rowKind, index, currentCell)\n      }\n      rowKind = 0\n    } else if (\n      rowKind &&\n      (token.type === 'data' ||\n        token.type === 'tableDelimiterMarker' ||\n        token.type === 'tableDelimiterFiller')\n    ) {\n      cell[3] = index\n    }\n  }\n  if (lastTableEnd !== 0) {\n    flushTableEnd(map, context, lastTableEnd, currentTable, currentBody)\n  }\n  map.consume(context.events)\n\n  // To do: move this into `html`, when events are exposed there.\n  // That’s what `markdown-rs` does.\n  // That needs updates to `mdast-util-gfm-table`.\n  index = -1\n  while (++index < context.events.length) {\n    const event = context.events[index]\n    if (event[0] === 'enter' && event[1].type === 'table') {\n      event[1]._align = gfmTableAlign(context.events, index)\n    }\n  }\n  return events\n}\n\n/**\n * Generate a cell.\n *\n * @param {EditMap} map\n * @param {Readonly<TokenizeContext>} context\n * @param {Readonly<Range>} range\n * @param {RowKind} rowKind\n * @param {number | undefined} rowEnd\n * @param {Token | undefined} previousCell\n * @returns {Token | undefined}\n */\n// eslint-disable-next-line max-params\nfunction flushCell(map, context, range, rowKind, rowEnd, previousCell) {\n  // `markdown-rs` uses:\n  // rowKind === 2 ? 'tableDelimiterCell' : 'tableCell'\n  const groupName =\n    rowKind === 1\n      ? 'tableHeader'\n      : rowKind === 2\n      ? 'tableDelimiter'\n      : 'tableData'\n  // `markdown-rs` uses:\n  // rowKind === 2 ? 'tableDelimiterCellValue' : 'tableCellText'\n  const valueName = 'tableContent'\n\n  // Insert an exit for the previous cell, if there is one.\n  //\n  // ```markdown\n  // > | | aa | bb | cc |\n  //          ^-- exit\n  //           ^^^^-- this cell\n  // ```\n  if (range[0] !== 0) {\n    previousCell.end = Object.assign({}, getPoint(context.events, range[0]))\n    map.add(range[0], 0, [['exit', previousCell, context]])\n  }\n\n  // Insert enter of this cell.\n  //\n  // ```markdown\n  // > | | aa | bb | cc |\n  //           ^-- enter\n  //           ^^^^-- this cell\n  // ```\n  const now = getPoint(context.events, range[1])\n  previousCell = {\n    type: groupName,\n    start: Object.assign({}, now),\n    // Note: correct end is set later.\n    end: Object.assign({}, now)\n  }\n  map.add(range[1], 0, [['enter', previousCell, context]])\n\n  // Insert text start at first data start and end at last data end, and\n  // remove events between.\n  //\n  // ```markdown\n  // > | | aa | bb | cc |\n  //            ^-- enter\n  //             ^-- exit\n  //           ^^^^-- this cell\n  // ```\n  if (range[2] !== 0) {\n    const relatedStart = getPoint(context.events, range[2])\n    const relatedEnd = getPoint(context.events, range[3])\n    /** @type {Token} */\n    const valueToken = {\n      type: valueName,\n      start: Object.assign({}, relatedStart),\n      end: Object.assign({}, relatedEnd)\n    }\n    map.add(range[2], 0, [['enter', valueToken, context]])\n    if (rowKind !== 2) {\n      // Fix positional info on remaining events\n      const start = context.events[range[2]]\n      const end = context.events[range[3]]\n      start[1].end = Object.assign({}, end[1].end)\n      start[1].type = 'chunkText'\n      start[1].contentType = 'text'\n\n      // Remove if needed.\n      if (range[3] > range[2] + 1) {\n        const a = range[2] + 1\n        const b = range[3] - range[2] - 1\n        map.add(a, b, [])\n      }\n    }\n    map.add(range[3] + 1, 0, [['exit', valueToken, context]])\n  }\n\n  // Insert an exit for the last cell, if at the row end.\n  //\n  // ```markdown\n  // > | | aa | bb | cc |\n  //                    ^-- exit\n  //               ^^^^^^-- this cell (the last one contains two “between” parts)\n  // ```\n  if (rowEnd !== undefined) {\n    previousCell.end = Object.assign({}, getPoint(context.events, rowEnd))\n    map.add(rowEnd, 0, [['exit', previousCell, context]])\n    previousCell = undefined\n  }\n  return previousCell\n}\n\n/**\n * Generate table end (and table body end).\n *\n * @param {Readonly<EditMap>} map\n * @param {Readonly<TokenizeContext>} context\n * @param {number} index\n * @param {Token} table\n * @param {Token | undefined} tableBody\n */\n// eslint-disable-next-line max-params\nfunction flushTableEnd(map, context, index, table, tableBody) {\n  /** @type {Array<Event>} */\n  const exits = []\n  const related = getPoint(context.events, index)\n  if (tableBody) {\n    tableBody.end = Object.assign({}, related)\n    exits.push(['exit', tableBody, context])\n  }\n  table.end = Object.assign({}, related)\n  exits.push(['exit', table, context])\n  map.add(index + 1, 0, exits)\n}\n\n/**\n * @param {Readonly<Array<Event>>} events\n * @param {number} index\n * @returns {Readonly<Point>}\n */\nfunction getPoint(events, index) {\n  const event = events[index]\n  const side = event[0] === 'enter' ? 'start' : 'end'\n  return event[1][side]\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n  markdownLineEnding,\n  markdownLineEndingOrSpace,\n  markdownSpace\n} from 'micromark-util-character'\nconst tasklistCheck = {\n  tokenize: tokenizeTasklistCheck\n}\n\n/**\n * Create an HTML extension for `micromark` to support GFM task list items\n * syntax.\n *\n * @returns {Extension}\n *   Extension for `micromark` that can be passed in `htmlExtensions` to\n *   support GFM task list items when serializing to HTML.\n */\nexport function gfmTaskListItem() {\n  return {\n    text: {\n      [91]: tasklistCheck\n    }\n  }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTasklistCheck(effects, ok, nok) {\n  const self = this\n  return open\n\n  /**\n   * At start of task list item check.\n   *\n   * ```markdown\n   * > | * [x] y.\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function open(code) {\n    if (\n      // Exit if there’s stuff before.\n      self.previous !== null ||\n      // Exit if not in the first content that is the first child of a list\n      // item.\n      !self._gfmTasklistFirstContentOfListItem\n    ) {\n      return nok(code)\n    }\n    effects.enter('taskListCheck')\n    effects.enter('taskListCheckMarker')\n    effects.consume(code)\n    effects.exit('taskListCheckMarker')\n    return inside\n  }\n\n  /**\n   * In task list item check.\n   *\n   * ```markdown\n   * > | * [x] y.\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function inside(code) {\n    // Currently we match how GH works in files.\n    // To match how GH works in comments, use `markdownSpace` (`[\\t ]`) instead\n    // of `markdownLineEndingOrSpace` (`[\\t\\n\\r ]`).\n    if (markdownLineEndingOrSpace(code)) {\n      effects.enter('taskListCheckValueUnchecked')\n      effects.consume(code)\n      effects.exit('taskListCheckValueUnchecked')\n      return close\n    }\n    if (code === 88 || code === 120) {\n      effects.enter('taskListCheckValueChecked')\n      effects.consume(code)\n      effects.exit('taskListCheckValueChecked')\n      return close\n    }\n    return nok(code)\n  }\n\n  /**\n   * At close of task list item check.\n   *\n   * ```markdown\n   * > | * [x] y.\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function close(code) {\n    if (code === 93) {\n      effects.enter('taskListCheckMarker')\n      effects.consume(code)\n      effects.exit('taskListCheckMarker')\n      effects.exit('taskListCheck')\n      return after\n    }\n    return nok(code)\n  }\n\n  /**\n   * @type {State}\n   */\n  function after(code) {\n    // EOL in paragraph means there must be something else after it.\n    if (markdownLineEnding(code)) {\n      return ok(code)\n    }\n\n    // Space or tab?\n    // Check what comes after.\n    if (markdownSpace(code)) {\n      return effects.check(\n        {\n          tokenize: spaceThenNonSpace\n        },\n        ok,\n        nok\n      )(code)\n    }\n\n    // EOF, or non-whitespace, both wrong.\n    return nok(code)\n  }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction spaceThenNonSpace(effects, ok, nok) {\n  return factorySpace(effects, after, 'whitespace')\n\n  /**\n   * After whitespace, after task list item check.\n   *\n   * ```markdown\n   * > | * [x] y.\n   *           ^\n   * ```\n   *\n   * @type {State}\n   */\n  function after(code) {\n    // EOF means there was nothing, so bad.\n    // EOL means there’s content after it, so good.\n    // Impossible to have more spaces.\n    // Anything else is good.\n    return code === null ? nok(code) : ok(code)\n  }\n}\n","/**\n * @typedef {import('micromark-extension-gfm-footnote').HtmlOptions} HtmlOptions\n * @typedef {import('micromark-extension-gfm-strikethrough').Options} Options\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */\n\nimport {\n  combineExtensions,\n  combineHtmlExtensions\n} from 'micromark-util-combine-extensions'\nimport {\n  gfmAutolinkLiteral,\n  gfmAutolinkLiteralHtml\n} from 'micromark-extension-gfm-autolink-literal'\nimport {gfmFootnote, gfmFootnoteHtml} from 'micromark-extension-gfm-footnote'\nimport {\n  gfmStrikethrough,\n  gfmStrikethroughHtml\n} from 'micromark-extension-gfm-strikethrough'\nimport {gfmTable, gfmTableHtml} from 'micromark-extension-gfm-table'\nimport {gfmTagfilterHtml} from 'micromark-extension-gfm-tagfilter'\nimport {\n  gfmTaskListItem,\n  gfmTaskListItemHtml\n} from 'micromark-extension-gfm-task-list-item'\n\n/**\n * Create an extension for `micromark` to enable GFM syntax.\n *\n * @param {Options | null | undefined} [options]\n *   Configuration (optional).\n *\n *   Passed to `micromark-extens-gfm-strikethrough`.\n * @returns {Extension}\n *   Extension for `micromark` that can be passed in `extensions` to enable GFM\n *   syntax.\n */\nexport function gfm(options) {\n  return combineExtensions([\n    gfmAutolinkLiteral(),\n    gfmFootnote(),\n    gfmStrikethrough(options),\n    gfmTable(),\n    gfmTaskListItem()\n  ])\n}\n\n/**\n * Create an extension for `micromark` to support GFM when serializing to HTML.\n *\n * @param {HtmlOptions | null | undefined} [options]\n *   Configuration (optional).\n *\n *   Passed to `micromark-extens-gfm-footnote`.\n * @returns {HtmlExtension}\n *   Extension for `micromark` that can be passed in `htmlExtensions` to\n *   support GFM when serializing to HTML.\n */\nexport function gfmHtml(options) {\n  return combineHtmlExtensions([\n    gfmAutolinkLiteralHtml(),\n    gfmFootnoteHtml(options),\n    gfmStrikethroughHtml(),\n    gfmTableHtml(),\n    gfmTagfilterHtml(),\n    gfmTaskListItemHtml()\n  ])\n}\n","/// <reference types=\"remark-parse\" />\n/// <reference types=\"remark-stringify\" />\n\n/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-gfm').Options} MdastOptions\n * @typedef {import('micromark-extension-gfm').Options} MicromarkOptions\n * @typedef {import('unified').Processor<Root>} Processor\n */\n\n/**\n * @typedef {MicromarkOptions & MdastOptions} Options\n *   Configuration.\n */\n\nimport {gfmFromMarkdown, gfmToMarkdown} from 'mdast-util-gfm'\nimport {gfm} from 'micromark-extension-gfm'\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Add support GFM (autolink literals, footnotes, strikethrough, tables,\n * tasklists).\n *\n * @param {Options | null | undefined} [options]\n *   Configuration (optional).\n * @returns {undefined}\n *   Nothing.\n */\nexport default function remarkGfm(options) {\n  // @ts-expect-error: TS is wrong about `this`.\n  // eslint-disable-next-line unicorn/no-this-assignment\n  const self = /** @type {Processor} */ (this)\n  const settings = options || emptyOptions\n  const data = self.data()\n\n  const micromarkExtensions =\n    data.micromarkExtensions || (data.micromarkExtensions = [])\n  const fromMarkdownExtensions =\n    data.fromMarkdownExtensions || (data.fromMarkdownExtensions = [])\n  const toMarkdownExtensions =\n    data.toMarkdownExtensions || (data.toMarkdownExtensions = [])\n\n  micromarkExtensions.push(gfm(settings))\n  fromMarkdownExtensions.push(gfmFromMarkdown())\n  toMarkdownExtensions.push(gfmToMarkdown(settings))\n}\n","import ReactMarkdown from 'react-markdown';\nimport type { Options, Components } from 'react-markdown';\nimport remarkGfm from 'remark-gfm';\n\nimport { cx } from '@/utils/cx';\n\nimport { CodeBlock } from '@/components/codeblock/CodeBlock';\n\ntype MarkdownProps = Options & {\n    markdownContianerClass?: string;\n    className?: string;\n};\n\nconst defaultRemarkPlugins = [remarkGfm];\nconst defaultComponents: Components = {\n    code: CodeBlock,\n};\n\nconst Markdown = ({\n    // this is the class used to scope the css from varnish-theme\n    // this should only be changed if you are opting out of the default varnish-theme markdown styling\n    markdownContianerClass = 'varnish-markdown',\n    className,\n    children,\n    components = defaultComponents,\n    remarkPlugins = defaultRemarkPlugins,\n    ...rest\n}: MarkdownProps) => {\n    return (\n        /* Latest version of react-markdown does not support className anymore */\n        <div className={cx(markdownContianerClass, className)}>\n            <ReactMarkdown components={components} remarkPlugins={remarkPlugins} {...rest}>\n                {children}\n            </ReactMarkdown>\n        </div>\n    );\n};\n\nexport { defaultComponents, defaultRemarkPlugins, Markdown, Markdown as default };\nexport type { MarkdownProps };\n","import {\n    OverlayArrow as AriaOverlayArrow,\n    type OverlayArrowProps as AriaOverlayArrowProps,\n} from 'react-aria-components';\n\ninterface OverlayArrowProps extends Omit<AriaOverlayArrowProps, 'className' | 'children'> {\n    className?: string; // RAC allows className to be a function, we could support in the future, but not now.\n}\n\nconst OverlayArrow = ({ className, ...rest }: OverlayArrowProps) => {\n    return (\n        <AriaOverlayArrow className={className} {...rest}>\n            {/* Final design? */}\n            <svg width=\"12\" height=\"7\" viewBox=\"0 0 12 7\">\n                <path\n                    d=\"M-5.24537e-07 0.899995L12 0.899994L6 6.89999L-5.24537e-07 0.899995Z\"\n                    fill=\"currentColor\"\n                />\n            </svg>\n        </AriaOverlayArrow>\n    );\n};\n\nexport type { OverlayArrowProps };\nexport { OverlayArrow, OverlayArrow as default };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\n\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\nconst tooltipRecipe = sva({\n    slots: ['root', 'arrow'],\n    base: {\n        root: {\n            padding: '[6px 12px]',\n            cursor: 'pointer',\n            fontSize: 'sm',\n\n            '&[data-entering]': {\n                animation: 'fadeIn 250ms ease-out forwards',\n            },\n            '&[data-exiting]': {\n                animation: 'fadeOut 250ms ease-out forwards',\n            },\n        },\n        arrow: {\n            display: 'flex',\n\n            '&[data-placement=\"top\"] svg': {\n                marginTop: '[-1px]',\n            },\n            '&[data-placement=\"left\"] svg': {\n                transform: 'rotate(-90deg)',\n                marginLeft: '[-4px]',\n            },\n            '&[data-placement=\"right\"] svg': {\n                transform: 'rotate(90deg)',\n                marginRight: '[-4px]',\n            },\n            '&[data-placement=\"bottom\"] svg': {\n                transform: 'rotate(180deg)',\n                marginBottom: '[-1px]',\n            },\n        },\n    },\n    variants: {\n        shape: {\n            box: {\n                root: {\n                    borderRadius: 'sm',\n                },\n            },\n            rounded: {\n                root: {\n                    padding: '[6px 18px]',\n                    borderRadius: '[full]',\n                },\n            },\n        },\n        color: {\n            default: {\n                root: {\n                    backgroundColor: 'background.opacity-100',\n                    color: 'text',\n                },\n                arrow: {\n                    color: 'background.opacity-100',\n                },\n            },\n            reversed: {\n                root: {\n                    backgroundColor: 'background.opacity-100.reversed',\n                    color: 'text.reversed',\n                },\n                arrow: {\n                    color: 'background.opacity-100.reversed',\n                },\n            },\n        },\n    },\n    defaultVariants: {\n        shape: 'box',\n        color: 'reversed',\n    },\n});\n\ntype TooltipRecipeProps = RecipeVariantProps<typeof tooltipRecipe>;\n\nexport { tooltipRecipe, TooltipRecipeProps as default };\nexport type { TooltipRecipeProps };\n","import {\n    Tooltip as AriaTooltip,\n    TooltipTrigger,\n    type TooltipTriggerComponentProps as TooltipTriggerProps,\n    type TooltipProps as AriaTooltipProps,\n} from 'react-aria-components';\n\nimport { type ReactNode, type PropsWithChildren } from 'react';\n\nimport { cx } from '@/utils/cx';\n\nimport { OverlayArrow, type OverlayArrowProps } from '@/components/shared/OverlayArrow';\n\nimport TooltipRecipeProps, { tooltipRecipe } from './tooltip.styles';\n\ntype TooltipProps = {\n    content: ReactNode;\n    className?: string;\n    arrow: boolean;\n    arrowClassName?: string;\n} & Pick<TooltipTriggerProps, 'isDisabled' | 'isOpen' | 'onOpenChange' | 'delay' | 'closeDelay'> &\n    AriaTooltipProps &\n    TooltipRecipeProps;\n\nconst Tooltip = ({\n    content,\n    isOpen,\n    className,\n    placement = 'top',\n    offset = 10,\n    delay = 150,\n    closeDelay,\n    arrow = true,\n    arrowClassName,\n    onOpenChange,\n    children,\n    ...rest\n}: PropsWithChildren<TooltipProps>) => {\n    const [variantProps, localProps] = tooltipRecipe.splitVariantProps(rest);\n    // `raw` receipe is required to be able to merge css objects (used in focus ring)\n    const recipeClassNames = tooltipRecipe(variantProps);\n\n    return (\n        <TooltipTrigger\n            isOpen={isOpen}\n            isDisabled={localProps.isDisabled}\n            delay={delay}\n            closeDelay={closeDelay}\n            onOpenChange={onOpenChange}>\n            {children}\n            <AriaTooltip\n                {...localProps}\n                placement={placement}\n                offset={offset}\n                className={cx(recipeClassNames.root, className)}>\n                {arrow && <TooltipOverlayArrow className={arrowClassName} />}\n                {content}\n            </AriaTooltip>\n        </TooltipTrigger>\n    );\n};\n\n// make this the default\n\ntype TooltipOverlayArrowProps = OverlayArrowProps & TooltipRecipeProps;\n\nconst TooltipOverlayArrow = ({ className, ...rest }: TooltipOverlayArrowProps) => {\n    const [variantProps, localProps] = tooltipRecipe.splitVariantProps(rest);\n    const recipeClassNames = tooltipRecipe(variantProps);\n    return <OverlayArrow className={cx(recipeClassNames.arrow, className)} {...localProps} />;\n};\n\nexport { Tooltip, TooltipOverlayArrow };\nexport type { TooltipProps, TooltipOverlayArrowProps };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\nconst formInputContainerRecipe = sva({\n    slots: ['root', 'actions'],\n    base: {\n        root: {\n            fontFamily: 'body',\n\n            borderRadius: 'sm',\n            // outlined variant will add borderColor\n            border: '1px solid transparent',\n            colorPalette: 'elements.overrides.form.input',\n            color: 'text',\n\n            display: 'flex',\n\n            _groupDisabled: {\n                cursor: 'not-allowed',\n                colorPalette: 'elements.overrides.form.input.disabled',\n                borderColor: 'colorPalette.stroke',\n            },\n            _groupInvalid: {\n                colorPalette: 'elements.overrides.form.input.error',\n                borderColor: 'colorPalette.stroke',\n            },\n            _groupHoverNotDisabledNotSelected: {\n                colorPalette: 'elements.overrides.form.input.hovered',\n                borderColor: 'colorPalette.stroke',\n            },\n\n            alignItems: 'center',\n        },\n        actions: {\n            display: 'flex',\n            alignItems: 'center',\n        },\n    },\n    variants: {\n        variant: {\n            contained: {\n                root: {\n                    backgroundColor: 'colorPalette.fill',\n                },\n            },\n            outlined: {\n                root: {\n                    borderColor: 'colorPalette.stroke',\n                    backgroundColor: 'transparent',\n                },\n            },\n        },\n        size: {\n            small: {\n                root: {\n                    fontSize: '[12px]',\n                    lineHeight: '[1rem]',\n                    '& input, & textarea': {\n                        padding: '[11px 11px]',\n                    },\n                },\n            },\n            medium: {\n                root: {\n                    fontSize: 'sm',\n                    lineHeight: '[1.375rem]',\n                    '& input, & textarea': {\n                        padding: '[7px 11px]',\n                    },\n                },\n            },\n            large: {\n                root: {\n                    fontSize: 'lg',\n                    lineHeight: '1.5rem',\n                    '& input, & textarea': {\n                        padding: '[15px 15px]',\n                    },\n                },\n            },\n        },\n        shape: {\n            box: {},\n            rounded: {\n                root: {\n                    borderRadius: '[28px]',\n                    borderWidth: '[2px]',\n                },\n            },\n        },\n        fullWidth: {\n            false: {},\n            true: {\n                root: {\n                    width: '[100%]',\n                },\n            },\n        },\n    },\n    compoundVariants: [\n        {\n            size: ['small', 'medium', 'large'],\n            shape: 'rounded',\n            css: {\n                root: {\n                    '& input, & textarea': {\n                        paddingInline: '[24px]',\n                    },\n                },\n            },\n        },\n    ],\n    defaultVariants: {\n        variant: 'outlined',\n        shape: 'box',\n        size: 'medium',\n        fullWidth: false,\n    },\n});\n\ntype FormInputContainerRecipeProps = Exclude<\n    RecipeVariantProps<typeof formInputContainerRecipe>,\n    undefined\n>;\n\nexport { formInputContainerRecipe, formInputContainerRecipe as default };\nexport type { FormInputContainerRecipeProps };\n","import { type ElementType, type ReactNode } from 'react';\n\nimport { cx } from '@/utils/cx';\n\nimport {\n    FormInputContainerRecipeProps,\n    formInputContainerRecipe,\n} from './formInputContainer.styles';\n\ninterface FormInputContainerProps<T extends ElementType> extends FormInputContainerRecipeProps {\n    Component?: T;\n    // classNames\n    className?: string;\n    startControlsClassName?: string;\n    endControlsClassName?: string;\n    // optional controls\n    startControls?: ReactNode;\n    endControls?: ReactNode;\n    children?: ReactNode; // override RAC children which allows a render function\n}\n\nconst FormInputContainer = <T extends ElementType = 'div'>({\n    Component,\n    className,\n    startControlsClassName,\n    endControlsClassName,\n    startControls,\n    endControls,\n    children,\n    ...rest\n}: FormInputContainerProps<T>) => {\n    const [variantProps, localProps] = formInputContainerRecipe.splitVariantProps(rest);\n    const formInputContainerClasses = formInputContainerRecipe(variantProps);\n\n    const ContainerComponent = Component || 'div';\n\n    return (\n        <ContainerComponent\n            className={cx(formInputContainerClasses.root, className)}\n            {...localProps}>\n            {startControls ? (\n                <FormInputContainerActions className={startControlsClassName} {...variantProps}>\n                    {startControls}\n                </FormInputContainerActions>\n            ) : null}\n            {children}\n            {endControls ? (\n                <FormInputContainerActions className={endControlsClassName} {...variantProps}>\n                    {endControls}\n                </FormInputContainerActions>\n            ) : null}\n        </ContainerComponent>\n    );\n};\n\ntype FormInputContainerActionsProps = FormInputContainerRecipeProps & {\n    className?: string;\n    children?: ReactNode;\n};\n\nconst FormInputContainerActions = ({\n    children,\n    className,\n    ...rest\n}: FormInputContainerActionsProps) => {\n    const formInputClasses = formInputContainerRecipe(rest);\n    return <div className={cx(formInputClasses.actions, className)}>{children}</div>;\n};\n\nexport { FormInputContainer };\nexport type { FormInputContainerProps };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\nconst inputRecipe = sva({\n    slots: [\n        'root',\n        'container',\n        'input',\n        'startControls',\n        'endControls',\n        'label',\n        'description',\n        'error',\n    ],\n    base: {\n        root: {\n            boxSizing: 'border-box',\n        },\n        container: {},\n        input: {\n            boxSizing: 'border-box',\n            textStyle: 'inherit',\n            layerStyle: 'controlTransparent', // this has padding/border/color/bgcolor\n            appearance: 'none',\n            outline: '0',\n\n            _placeholder: {\n                color: 'text.placeholder',\n            },\n            _invalid: {\n                _placeholder: {\n                    color: 'text.error',\n                },\n            },\n        },\n        label: {},\n        description: {},\n        error: {},\n        // controls, TBD\n        startControls: {},\n        endControls: {},\n    },\n    variants: {\n        variant: {\n            // these are being used to expose variants that are passed to container\n            // could be moved out unless we need to adjust <input> based on these\n            contained: {},\n            outlined: {},\n        },\n        size: {\n            // these set the height, using line-height for a single line works well,\n            // line height keeps the <input> text centered in the input\n            small: {\n                input: {\n                    lineHeight: '[16px]',\n                },\n            },\n            medium: {\n                input: {\n                    lineHeight: '[20px]',\n                },\n            },\n            large: {\n                input: {\n                    lineHeight: '[24px]',\n                },\n            },\n        },\n        shape: {\n            // these are being used to expose variants that are passed to container\n            // could be moved out unless we need to adjust <input> based on these\n            box: {},\n            rounded: {},\n        },\n        fullWidth: {\n            false: {},\n            true: {\n                // this is needed for both the container and the input, afaict\n                root: {\n                    width: '[100%]',\n                },\n                input: {\n                    width: '[100%]',\n                },\n            },\n        },\n    },\n    defaultVariants: {\n        variant: 'outlined',\n        shape: 'box',\n        size: 'medium',\n        fullWidth: false,\n    },\n});\n\ntype InputRecipeProps = Exclude<RecipeVariantProps<typeof inputRecipe>, undefined>;\n\nexport { inputRecipe, inputRecipe as default };\nexport type { InputRecipeProps };\n","import { type ReactNode } from 'react';\n\nimport {\n    Input as AriaInput,\n    TextFieldProps as AriaTextFieldProps,\n    TextField as AriaTextField,\n    ValidationResult,\n} from 'react-aria-components';\n\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { cx } from '@/utils/cx';\n\nimport { Description } from '@/components/field/description/Description';\nimport { FieldError } from '@/components/field/fieldError/FieldError';\nimport { FormInputContainer } from '@/components/field/formInputContainer/FormInputContainer';\nimport { Label } from '@/components/field/label/Label';\nimport { childFocusRing } from '@/components/shared/focusRing.styles';\n\nimport { inputRecipe, InputRecipeProps } from './input.styles';\n\ninterface InputProps extends AriaTextFieldProps, InputRecipeProps {\n    label?: string;\n    errorMessage?: string | ((validation: ValidationResult) => string);\n    description?: string;\n    // controls\n    startControls?: ReactNode;\n    endControls?: ReactNode;\n    startControlsClassName?: string;\n    endControlsClassName?: string;\n    // classeNames\n    className?: string;\n    containerClassName?: string;\n    inputClassName?: string;\n    labelClassName?: string;\n    errorClassName?: string;\n    descriptionClassName?: string;\n}\n\nconst Input = ({\n    label,\n    errorMessage,\n    description,\n    // controls\n    startControls,\n    endControls,\n    startControlsClassName,\n    endControlsClassName,\n    // classes\n    className,\n    containerClassName,\n    inputClassName,\n    labelClassName,\n    errorClassName,\n    descriptionClassName,\n    ...rest\n}: InputProps) => {\n    const [variantProps, localProps] = inputRecipe.splitVariantProps(rest);\n    const recipeClassNames = inputRecipe(variantProps);\n    const { size } = rest;\n    return (\n        <AriaTextField className={cx('group', recipeClassNames.root, className)} {...localProps}>\n            <Label size={size} className={cx(recipeClassNames.label, labelClassName)}>\n                {label}\n            </Label>\n\n            <FormInputContainer\n                startControls={startControls}\n                endControls={endControls}\n                startControlsClassName={cx(recipeClassNames.startControls, startControlsClassName)}\n                endControlsClassName={cx(recipeClassNames.endControls, endControlsClassName)}\n                className={cx(css(childFocusRing), recipeClassNames.container, containerClassName)}\n                {...variantProps}>\n                <AriaInput className={cx(recipeClassNames.input, inputClassName)} />\n            </FormInputContainer>\n\n            <Description\n                size={size}\n                className={cx(recipeClassNames.description, descriptionClassName)}>\n                {description}\n            </Description>\n            <FieldError size={size} className={cx(recipeClassNames.error, errorClassName)}>\n                {errorMessage}\n            </FieldError>\n        </AriaTextField>\n    );\n};\n\nexport { Input };\nexport type { InputProps };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\nconst fileInputRecipe = sva({\n    slots: ['root', 'button', 'icon', 'text'],\n    base: {\n        root: {}, // this is the div provided by DropZone.\n        button: {\n            display: 'flex',\n            justifyContent: 'center',\n            alignItems: 'center',\n            flexDirection: 'column',\n            gap: '1',\n            width: '[fit-content]',\n            boxSizing: 'border-box',\n            fontFamily: 'body',\n            margin: '0',\n            border: '1px solid transparent',\n            borderRadius: 'sm',\n\n            // default light styles\n            backgroundColor: 'white',\n            color: 'elements.primary.fill',\n            _dark: {\n                backgroundColor: 'background.opacity-100',\n                color: 'text',\n                _disabled: {\n                    backgroundColor: 'gray.20', // no design, so leaving bare token\n                },\n            },\n\n            _hover: {\n                _notDisabled: {\n                    borderColor: 'elements.secondary.fill',\n                },\n            },\n            _disabled: {\n                cursor: 'not-allowed',\n                backgroundColor: 'gray.20', // no design, so leaving bare token\n                borderColor: 'elements.disabled.stroke',\n            },\n        },\n        icon: {\n            _groupDisabled: {\n                color: 'elements.disabled.fill',\n                stroke: 'elements.disabled.stroke',\n            },\n        },\n        text: {\n            _groupDisabled: {\n                color: 'text.disabled',\n            },\n        },\n    },\n    // Variants\n    variants: {\n        iconOnly: {\n            false: {},\n            true: {\n                button: {\n                    padding: '[0]',\n                    border: '[none]',\n                    cursor: 'pointer',\n                    backgroundColor: '[transparent]',\n                    _dark: {\n                        backgroundColor: '[transparent]',\n                    },\n                },\n            },\n        },\n        variant: {\n            contained: {}, // default\n            outlined: {\n                button: {\n                    border: '[1px solid]',\n                    borderColor: 'dark-teal.20', // ?\n                    _dark: {\n                        borderColor:\n                            '[color-mix(in srgb, {colors.cream.100} 20%, {colors.background})]', // ?\n                        color: 'text',\n                    },\n                },\n            },\n        },\n        size: {\n            small: {\n                button: {\n                    padding: '[6px 12px]',\n                    fontSize: '[12px]',\n                },\n            },\n            medium: {\n                button: {\n                    padding: '[12px 24px]',\n                    fontSize: '[14px]',\n                },\n            },\n            large: {\n                button: {\n                    padding: '[24px 36px]',\n                    fontSize: '[16px]',\n                },\n            },\n            full: {\n                root: {\n                    width: '[100%]',\n                    height: '[100%]',\n                },\n                button: {\n                    padding: '[12px 24px]',\n                    fontSize: '[14px]',\n                    width: '[100%]',\n                    height: '[100%]',\n                },\n            },\n        },\n    },\n    defaultVariants: {\n        variant: 'outlined',\n        size: 'medium',\n    },\n});\n\ntype FileInputRecipeProps = RecipeVariantProps<typeof fileInputRecipe>;\n\nexport { fileInputRecipe, fileInputRecipe as default };\nexport type { FileInputRecipeProps };\n","import { type ReactNode, type PropsWithChildren } from 'react';\n\nimport {\n    ValidationResult,\n    ButtonProps as AriaButtonProps,\n    Button as AriaButton,\n    FileTrigger as AriaFileTrigger,\n} from 'react-aria-components';\n\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { cx } from '@/utils/cx';\n\nimport { Upload } from '@/components/icons';\n\nimport fileDropperRecipe, { FileInputRecipeProps } from '@/components/fileInput/fileInput.styles';\nimport focusRing from '@/components/shared/focusRing.styles';\n\n/**\n * FileInputButton allows user to click and browser files to upload.\n */\n\ntype FileInputButtonProps = {\n    onSelect?: (files: FileList | null) => void;\n    acceptedFileTypes?: string[];\n    allowsMultiple?: boolean;\n    icon?: ReactNode | false;\n    buttonText?: string | ReactNode;\n    className?: string;\n    textClassName?: string;\n    iconClassName?: string;\n    errorMessage?: string | ((validation: ValidationResult) => string);\n    errorClassName?: string;\n} & AriaButtonProps &\n    FileInputRecipeProps;\n\nconst FileInputButton = ({\n    onSelect,\n    acceptedFileTypes,\n    allowsMultiple = false,\n    icon,\n    buttonText,\n    className,\n    textClassName,\n    iconClassName,\n    children,\n    onClick,\n    ...rest\n}: PropsWithChildren<FileInputButtonProps>) => {\n    const [variantProps, localProps] = fileDropperRecipe.splitVariantProps(rest);\n    const recipeClassNames = fileDropperRecipe(variantProps);\n\n    // this was passing `localProps` to both FileTrigger and Button. That is wrong\n    // removed the props to FileTrigger, but not sure if its fully compatible with before\n    // needs investigation: https://github.com/allenai/varnish/issues/1201\n    return (\n        <AriaFileTrigger\n            allowsMultiple={allowsMultiple}\n            acceptedFileTypes={acceptedFileTypes}\n            onSelect={onSelect}>\n            <AriaButton\n                {...localProps}\n                className={cx('group', css(focusRing), recipeClassNames.button, className)}>\n                <>\n                    {icon ?? (\n                        <Upload size=\"large\" className={cx(recipeClassNames.icon, iconClassName)} />\n                    )}\n                    {buttonText ? (\n                        <span className={cx(recipeClassNames.text, textClassName)}>\n                            {buttonText}\n                        </span>\n                    ) : null}\n                </>\n            </AriaButton>\n        </AriaFileTrigger>\n    );\n};\n\nexport { FileInputButton };\nexport type { FileInputButtonProps };\n","import { useState, type ReactNode, type PropsWithChildren } from 'react';\n\nimport {\n    ValidationResult,\n    DropZone as AriaDropZone,\n    DropZoneProps as AriaDropZoneProps,\n    ButtonProps as AriaButtonProps,\n    FileDropItem,\n    DropItem,\n} from 'react-aria-components';\n\nimport { cx } from '@/utils/cx';\n\nimport fileDropperRecipe, { FileInputRecipeProps } from '@/components/fileInput/fileInput.styles';\nimport { FileInputButton } from '@/components/fileInput/FileInputButton';\n\n/**\n * FileInput is an area where a user can upload files via drag & drop.\n */\n\ntype FileInputProps = {\n    onSelect?: (files: FileList | null) => void;\n    acceptedFileTypes?: string[];\n    allowsMultiple?: boolean;\n    icon?: ReactNode;\n    defaultText?: string | ReactNode;\n    className?: string;\n    buttonClassName?: string;\n    textClassName?: string;\n    iconClassName?: string;\n    errorMessage?: string | ((validation: ValidationResult) => string);\n    errorClassName?: string;\n} & AriaButtonProps &\n    AriaDropZoneProps &\n    FileInputRecipeProps;\n\nconst FileInput = ({\n    onSelect,\n    acceptedFileTypes,\n    allowsMultiple = false,\n    icon,\n    defaultText,\n    className,\n    buttonClassName,\n    textClassName,\n    iconClassName,\n    children,\n    ...rest\n}: PropsWithChildren<FileInputProps>) => {\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    const [files, setFiles] = useState<FileList | null>(null); // dont actually use this value yet, but its nice to have incase we do\n    const [fileNames, setFileNames] = useState('');\n    const [variantProps, localProps] = fileDropperRecipe.splitVariantProps(rest);\n    const recipeClassNames = fileDropperRecipe(variantProps);\n    const { isDisabled } = localProps;\n\n    return (\n        <AriaDropZone\n            {...localProps}\n            className={cx(recipeClassNames.root, className)}\n            // onDrop only gets called if user drags and drops a file\n            onDrop={async (e) => {\n                // make sure these are files. DropZone accepts other objects as well\n                let myFiles = e.items.filter(\n                    (item: DropItem): item is FileDropItem => item.kind === 'file'\n                );\n\n                // enforce acceptedFileTypes filter\n                if (acceptedFileTypes) {\n                    myFiles = myFiles.filter((file) =>\n                        acceptedFileTypes.includes(String(file.type))\n                    );\n                }\n                // enforce allowsMultiple\n                if (!allowsMultiple && myFiles.length > 0) {\n                    myFiles = myFiles.slice(0, 1);\n                }\n\n                // have to call getFile() to turn FileDropItem into files\n                const resolvedFiles = await Promise.all(myFiles.map((f) => f.getFile()));\n                const dataTransfer = new DataTransfer();\n                resolvedFiles.forEach((file) => dataTransfer.items.add(file));\n\n                setFiles(dataTransfer.files);\n                setFileNames(resolvedFiles.map((file) => file.name).join(', '));\n\n                if (onSelect) {\n                    onSelect(dataTransfer.files);\n                }\n            }}>\n            {children || (\n                <FileInputButton\n                    {...variantProps}\n                    isDisabled={isDisabled}\n                    onSelect={onSelect}\n                    buttonText={defaultText || fileNames || 'Drag & Drop or browse'}\n                    icon={icon}\n                    className={buttonClassName}\n                    iconClassName={iconClassName}\n                />\n            )}\n        </AriaDropZone>\n    );\n};\n\nexport { FileInput };\nexport type { FileInputProps };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\nconst textAreaRecipe = sva({\n    slots: ['root', 'shared', 'growContainer', 'textArea', 'label', 'description', 'error'],\n    base: {\n        // Shared is applied to both the 'grow container'\n        // and the textarea, to have their sizing match up\n        // properties that would affect that need to go into both\n        shared: {\n            textStyle: 'inherit',\n            boxSizing: 'border-box',\n            scrollbarGutter: 'stable',\n            overflowWrap: 'anywhere',\n            layerStyle: 'controlTransparent', // this has padding/border/color/bgcolor\n        },\n        growContainer: {\n            display: 'grid',\n            // this ::after pseudo-element will contain an example string that is used to calculate height.\n            // its important that it has the same font-size, border, padding, etc as the textArea so that height is calculated correctly.\n            _after: {\n                content: 'attr(data-replicated-value) \" \"',\n                whiteSpace: 'pre-wrap',\n                visibility: 'hidden',\n                gridArea: '1/1/2/2',\n                overflowY: 'scroll',\n            },\n        },\n        textArea: {\n            gridArea: '1/1/2/2',\n            appearance: 'none',\n            resize: 'none', // prevents resizing via corner clicking element\n            outline: '0',\n            height: '[unset]',\n            maxWidth: '[100%]', // ??\n\n            // Scroll bars:\n            // hide scrollbar until hover or focus\n            scrollbarColor: '[transparent transparent]',\n            _hoverOrFocus: {\n                scrollbarColor: '[{colors.text.placeholder} transparent]',\n            },\n            _placeholder: {\n                color: 'text.placeholder',\n            },\n            _invalid: {\n                _placeholder: {\n                    color: 'text.error',\n                },\n            },\n            _disabled: {\n                cursor: 'not-allowed',\n            },\n        },\n        label: {},\n        description: {},\n        error: {},\n    },\n    variants: {\n        variant: {\n            // these variants get passed through to the input container\n            // which actually gives the visual styles\n            contained: {},\n            outlined: {},\n        },\n        size: {\n            // these variants get passed through to the input container\n            // which actually gives the visual styles\n            small: {},\n            medium: {},\n            large: {},\n        },\n        shape: {\n            // these variants get passed through to the input container\n            // which actually gives the visual styles\n            box: {},\n            rounded: {},\n        },\n        fullWidth: {\n            false: {},\n            true: {\n                root: {\n                    width: '[100%]',\n                },\n                shared: {\n                    width: '[100%]',\n                },\n            },\n        },\n    },\n    defaultVariants: {\n        variant: 'outlined',\n        shape: 'box',\n        size: 'medium',\n        fullWidth: false,\n    },\n});\n\ntype TextAreaRecipeProps = RecipeVariantProps<typeof textAreaRecipe>;\n\nexport { textAreaRecipe, textAreaRecipe as default };\nexport type { TextAreaRecipeProps };\n","import { useState, type ComponentType } from 'react';\n\nimport {\n    TextArea as AriaTextArea,\n    TextField as AriaTextField,\n    TextFieldProps as AriaTextFieldProps,\n} from 'react-aria-components';\n\nimport { cx } from '@/utils/cx';\n\nimport { textAreaRecipe } from './textArea.styles';\nimport { type TextAreaProps } from './TextArea';\n\n// the grow container can be either a div (when its a `<TextArea>`) or\n// a `<TextField>` like when its a `<Prompt>`\ntype GrowContainerElementType = ComponentType<AriaTextFieldProps> | 'div';\n\ntype TextAreaControlProps = {\n    includeTextField?: boolean;\n} & Omit<\n    TextAreaProps,\n    | 'label'\n    | 'description'\n    | 'errorMessage'\n    | 'labelClassName'\n    | 'descriptionClassName'\n    | 'errorClassName'\n>;\n\nconst TextAreaControl = ({\n    // internal\n    includeTextField = true, // if we are using the base <TextArea> we want the Field too, but if we provide a Field, we want just a div\n    //\n    minRows = 1,\n    maxRows = Infinity,\n    onChange,\n    // classes\n    className,\n    growContainerClassName,\n    textAreaClassName,\n    ...rest\n}: TextAreaControlProps) => {\n    const [variantProps, localProps] = textAreaRecipe.splitVariantProps(rest);\n    // Uses: `shared`, `growContainer` and `textArea` slots\n    const recipeClassNames = textAreaRecipe(variantProps);\n\n    // This could be a polymorphic component, but just using a flag to choose wrapper\n    // this is written this way, because typescript can't quite figure out the props\n    // This method is used to swap props depending on intent.\n    let GrowContainerElement: GrowContainerElementType = 'div';\n    let growContainerProps = {};\n    let textAreaProps = localProps;\n\n    if (includeTextField) {\n        GrowContainerElement = AriaTextField;\n        growContainerProps = localProps;\n        textAreaProps = {};\n    }\n\n    // The container needs to grow, and have a height between minRows and maxRows. It also needs to allow text-overflow.\n    // To acheive this, we give it an example string that satisfies those rules so it can calculate its correct height.\n    // More details here: https://css-tricks.com/the-cleanest-trick-for-autogrowing-textareas/\n    const [heightCalculationString, setHeightCalculationString] = useState(\n        adjustStringToRowLimits('', minRows, maxRows)\n    );\n\n    return (\n        <GrowContainerElement\n            data-replicated-value={heightCalculationString}\n            className={cx(\n                className,\n                recipeClassNames.growContainer,\n                recipeClassNames.shared,\n                growContainerClassName\n            )}\n            {...growContainerProps}>\n            <AriaTextArea\n                onChange={(event) => {\n                    const expectedVisibleText = adjustStringToRowLimits(\n                        event.target.value,\n                        minRows,\n                        maxRows\n                    );\n                    setHeightCalculationString(expectedVisibleText);\n\n                    // if an onChange function was passed in, then evoke it here\n                    if (onChange) {\n                        onChange(event);\n                    }\n                }}\n                className={cx(\n                    recipeClassNames.textArea,\n                    recipeClassNames.shared,\n                    textAreaClassName\n                )}\n                {...textAreaProps}\n            />\n        </GrowContainerElement>\n    );\n};\n\n// this function adds/removes newlines from a string until the number of rows is between minRows and maxRows\nconst adjustStringToRowLimits = (input: string, minRows: number, maxRows: number): string => {\n    const rows = input.split('\\n');\n    for (let i = rows.length; i < minRows; i++) {\n        rows.push('');\n    }\n    return rows.slice(0, maxRows).join('\\n');\n};\n\nexport { TextAreaControl, TextAreaControl as default };\nexport type { TextAreaControlProps };\n","import {\n    TextAreaProps as AriaTextAreaProps,\n    TextFieldProps as AriaTextFieldProps,\n    TextField as AriaTextField,\n    ValidationResult,\n} from 'react-aria-components';\n\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { cx } from '@/utils/cx';\n\nimport { Description } from '@/components/field/description/Description';\nimport { FieldError } from '@/components/field/fieldError/FieldError';\nimport { FormInputContainer } from '@/components/field/formInputContainer/FormInputContainer';\nimport { Label } from '@/components/field/label/Label';\nimport { childFocusRing } from '@/components/shared/focusRing.styles';\n\nimport TextAreaControl from './TextAreaControl';\nimport { textAreaRecipe, TextAreaRecipeProps } from './textArea.styles';\n\ntype TextAreaProps = {\n    children?: string;\n    minRows?: number;\n    maxRows?: number;\n    label?: string;\n    description?: string;\n    errorMessage?: string | ((validation: ValidationResult) => string);\n    className?: string;\n    textAreaClassName?: string;\n    growContainerClassName?: string;\n    labelClassName?: string;\n    descriptionClassName?: string;\n    errorClassName?: string;\n} & AriaTextAreaProps &\n    AriaTextFieldProps &\n    TextAreaRecipeProps;\n\nconst TextArea = ({\n    minRows = 2,\n    maxRows = 3,\n    label,\n    description,\n    errorMessage,\n    className,\n    textAreaClassName,\n    growContainerClassName,\n    labelClassName,\n    descriptionClassName,\n    errorClassName,\n    isDisabled,\n    ...rest\n}: TextAreaProps) => {\n    const [variantProps, localProps] = textAreaRecipe.splitVariantProps(rest);\n    const recipeClassNames = textAreaRecipe(variantProps);\n    const { size } = rest;\n\n    return (\n        <AriaTextField\n            isDisabled={isDisabled}\n            className={cx('group', recipeClassNames.root, className)}\n            {...localProps}>\n            <Label size={size} className={cx(recipeClassNames.label, labelClassName)}>\n                {label}\n            </Label>\n            <FormInputContainer className={css(childFocusRing)} {...variantProps}>\n                <TextAreaControl\n                    rows={minRows}\n                    includeTextField={false} // we provide the textfield parent component.\n                    minRows={minRows}\n                    maxRows={maxRows}\n                    textAreaClassName={textAreaClassName}\n                    growContainerClassName={growContainerClassName}\n                    {...variantProps}\n                />\n            </FormInputContainer>\n            <Description\n                size={size}\n                className={cx(recipeClassNames.description, descriptionClassName)}>\n                {description}\n            </Description>\n            <FieldError size={size} className={cx(recipeClassNames.error, errorClassName)}>\n                {errorMessage}\n            </FieldError>\n        </AriaTextField>\n    );\n};\n\nexport { TextArea };\nexport type { TextAreaProps };\n","import { cloneElement, type ComponentType, type HTMLAttributes, type ReactElement } from 'react';\n\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { cx } from '@/utils/cx';\n\nimport { iconStyles } from './icon.styles';\nimport type { IconRecipeProps } from './icon.styles';\nimport { colorProp } from '@/components/svg/SVGBase';\nimport { type SVGColorProp } from '@/components/svg/svg.styles';\n\n// Need this to force children exist, not optional\ntype ChildrenAsElement = {\n    children: ReactElement;\n};\n\ntype IconProps = Omit<HTMLAttributes<SVGElement>, 'color' | 'children'> &\n    ChildrenAsElement &\n    SVGColorProp &\n    IconRecipeProps;\n\ntype IconPropsImpl = Omit<IconProps, 'children'>;\n\n// Wraps external Icon with our styles\nconst Icon = ({ children, color, className: origClassName, ...rest }: IconProps) => {\n    const colorStyles = colorProp(color);\n    const [variantProps, localProps] = iconStyles.splitVariantProps(rest);\n\n    return cloneElement(children, {\n        className: cx(origClassName, css(colorStyles, iconStyles.raw(variantProps))),\n        ...localProps,\n        fontSize: 'none', // hack Mui icons =/ -- `none` is meaningless ...\n    });\n};\n\n// TODO: Make this type generic\nconst varnishIcon = (IconComponent: ComponentType): ComponentType<IconPropsImpl> => {\n    const VarnishedIcon = (props: IconPropsImpl) => (\n        <Icon {...props}>\n            <IconComponent />\n        </Icon>\n    );\n    return VarnishedIcon;\n};\n\nconst createVarnishIcon = (svgIcon: ReactElement): ComponentType<IconPropsImpl> => {\n    // eslint-disable-next-line @eslint-react/component-hook-factories\n    const VarnishedIcon = (props: IconPropsImpl) => <Icon {...props}>{svgIcon}</Icon>;\n    return VarnishedIcon;\n};\n\nexport { varnishIcon, createVarnishIcon, Icon, Icon as default };\nexport type { IconProps };\n","'use client';\n\nimport { useSpriteConfig } from './SpriteProvider';\n\nconst SVGSpriteLink = ({ href: hrefIn }: { href?: string }) => {\n    const spriteConfig = useSpriteConfig();\n\n    const href = hrefIn ?? spriteConfig.sprite ?? undefined; // Error - not configured correctly\n    return <link rel=\"preload\" href={href} as=\"image\" type=\"image/svg+xml\" />;\n};\n\nexport { SVGSpriteLink as default, SVGSpriteLink };\n","export { Varnish } from './Varnish';\nexport { Tulu3 } from './Tulu3';\nexport { Tulu370B } from './Tulu370B';\nexport { Tulu3405B } from './Tulu3405B';\nexport { Tulu } from './Tulu';\nexport { Skiff } from './Skiff';\nexport { SafetyTool } from './SafetyTool';\nexport { Playground } from './Playground';\nexport { PixMo } from './PixMo';\nexport { Paloma } from './Paloma';\nexport { OLMoE } from './OLMoE';\nexport { OLMo } from './OLMo';\nexport { OLMES } from './OLMES';\nexport { Molmo } from './Molmo';\nexport { EarthSystems } from './EarthSystems';\nexport { Dolma } from './Dolma';\nexport { DataDecide } from './DataDecide';\nexport { Ai2Playground } from './Ai2Playground';\nexport { Ai2OpenScholar8B } from './Ai2OpenScholar8B';\nexport { Ai2OLMoE } from './Ai2OLMoE';\nexport { Ai2 } from './Ai2';\nexport { ACE } from './ACE';\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGSprite, type SVGSpriteProps } from '../svg/SVGBase';\n\nconst Varnish = ({ color = 'primary', aspectRatio = '797/137', ...rest}: SVGSpriteProps) =>\n    <SVGSprite use=\"Varnish\" aspectRatio={aspectRatio} color={color} {...rest} />;\n\nexport { Varnish, Varnish as default };\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGSprite, type SVGSpriteProps } from '../svg/SVGBase';\n\nconst Tulu3 = ({ color = 'primary', aspectRatio = '632/137', ...rest}: SVGSpriteProps) =>\n    <SVGSprite use=\"Tulu3\" aspectRatio={aspectRatio} color={color} {...rest} />;\n\nexport { Tulu3, Tulu3 as default };\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGSprite, type SVGSpriteProps } from '../svg/SVGBase';\n\nconst Tulu370B = ({ color = 'primary', aspectRatio = '1034/137', ...rest}: SVGSpriteProps) =>\n    <SVGSprite use=\"Tulu3-70B\" aspectRatio={aspectRatio} color={color} {...rest} />;\n\nexport { Tulu370B, Tulu370B as default };\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGSprite, type SVGSpriteProps } from '../svg/SVGBase';\n\nconst Tulu3405B = ({ color = 'primary', aspectRatio = '1173/137', ...rest}: SVGSpriteProps) =>\n    <SVGSprite use=\"Tulu3-405B\" aspectRatio={aspectRatio} color={color} {...rest} />;\n\nexport { Tulu3405B, Tulu3405B as default };\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGSprite, type SVGSpriteProps } from '../svg/SVGBase';\n\nconst Tulu = ({ color = 'primary', aspectRatio = '507/137', ...rest}: SVGSpriteProps) =>\n    <SVGSprite use=\"Tulu\" aspectRatio={aspectRatio} color={color} {...rest} />;\n\nexport { Tulu, Tulu as default };\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGSprite, type SVGSpriteProps } from '../svg/SVGBase';\n\nconst Skiff = ({ color = 'primary', aspectRatio = '559/137', ...rest}: SVGSpriteProps) =>\n    <SVGSprite use=\"Skiff\" aspectRatio={aspectRatio} color={color} {...rest} />;\n\nexport { Skiff, Skiff as default };\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGSprite, type SVGSpriteProps } from '../svg/SVGBase';\n\nconst SafetyTool = ({ color = 'primary', aspectRatio = '1114/171', ...rest}: SVGSpriteProps) =>\n    <SVGSprite use=\"SafetyTool\" aspectRatio={aspectRatio} color={color} {...rest} />;\n\nexport { SafetyTool, SafetyTool as default };\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGSprite, type SVGSpriteProps } from '../svg/SVGBase';\n\nconst Playground = ({ color = 'primary', aspectRatio = '1130/173', ...rest}: SVGSpriteProps) =>\n    <SVGSprite use=\"Playground\" aspectRatio={aspectRatio} color={color} {...rest} />;\n\nexport { Playground, Playground as default };\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGSprite, type SVGSpriteProps } from '../svg/SVGBase';\n\nconst PixMo = ({ color = 'primary', aspectRatio = '690/130', ...rest}: SVGSpriteProps) =>\n    <SVGSprite use=\"PixMo\" aspectRatio={aspectRatio} color={color} {...rest} />;\n\nexport { PixMo, PixMo as default };\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGSprite, type SVGSpriteProps } from '../svg/SVGBase';\n\nconst Paloma = ({ color = 'primary', aspectRatio = '789/137', ...rest}: SVGSpriteProps) =>\n    <SVGSprite use=\"Paloma\" aspectRatio={aspectRatio} color={color} {...rest} />;\n\nexport { Paloma, Paloma as default };\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGSprite, type SVGSpriteProps } from '../svg/SVGBase';\n\nconst OLMoE = ({ color = 'primary', aspectRatio = '773/133', ...rest}: SVGSpriteProps) =>\n    <SVGSprite use=\"OLMoE\" aspectRatio={aspectRatio} color={color} {...rest} />;\n\nexport { OLMoE, OLMoE as default };\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGSprite, type SVGSpriteProps } from '../svg/SVGBase';\n\nconst OLMo = ({ color = 'primary', aspectRatio = '659/133', ...rest}: SVGSpriteProps) =>\n    <SVGSprite use=\"OLMo\" aspectRatio={aspectRatio} color={color} {...rest} />;\n\nexport { OLMo, OLMo as default };\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGSprite, type SVGSpriteProps } from '../svg/SVGBase';\n\nconst OLMES = ({ color = 'primary', aspectRatio = '780/133', ...rest}: SVGSpriteProps) =>\n    <SVGSprite use=\"OLMES\" aspectRatio={aspectRatio} color={color} {...rest} />;\n\nexport { OLMES, OLMES as default };\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGSprite, type SVGSpriteProps } from '../svg/SVGBase';\n\nconst Molmo = ({ color = 'primary', aspectRatio = '750/137', ...rest}: SVGSpriteProps) =>\n    <SVGSprite use=\"Molmo\" aspectRatio={aspectRatio} color={color} {...rest} />;\n\nexport { Molmo, Molmo as default };\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGSprite, type SVGSpriteProps } from '../svg/SVGBase';\n\nconst EarthSystems = ({ color = 'primary', aspectRatio = '1332/171', ...rest}: SVGSpriteProps) =>\n    <SVGSprite use=\"EarthSystems\" aspectRatio={aspectRatio} color={color} {...rest} />;\n\nexport { EarthSystems, EarthSystems as default };\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGSprite, type SVGSpriteProps } from '../svg/SVGBase';\n\nconst Dolma = ({ color = 'primary', aspectRatio = '704/137', ...rest}: SVGSpriteProps) =>\n    <SVGSprite use=\"Dolma\" aspectRatio={aspectRatio} color={color} {...rest} />;\n\nexport { Dolma, Dolma as default };\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGSprite, type SVGSpriteProps } from '../svg/SVGBase';\n\nconst DataDecide = ({ color = 'primary', aspectRatio = '1171/137', ...rest}: SVGSpriteProps) =>\n    <SVGSprite use=\"DataDecide\" aspectRatio={aspectRatio} color={color} {...rest} />;\n\nexport { DataDecide, DataDecide as default };\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGSprite, type SVGSpriteProps } from '../svg/SVGBase';\n\nconst Ai2Playground = ({ color = 'primary', aspectRatio = '1485/173', ...rest}: SVGSpriteProps) =>\n    <SVGSprite use=\"Ai2Playground\" aspectRatio={aspectRatio} color={color} {...rest} />;\n\nexport { Ai2Playground, Ai2Playground as default };\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGSprite, type SVGSpriteProps } from '../svg/SVGBase';\n\nconst Ai2OpenScholar8B = ({ color = 'primary', aspectRatio = '1960/170', ...rest}: SVGSpriteProps) =>\n    <SVGSprite use=\"Ai2OpenScholar-8B\" aspectRatio={aspectRatio} color={color} {...rest} />;\n\nexport { Ai2OpenScholar8B, Ai2OpenScholar8B as default };\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGSprite, type SVGSpriteProps } from '../svg/SVGBase';\n\nconst Ai2OLMoE = ({ color = 'primary', aspectRatio = '1119/133', ...rest}: SVGSpriteProps) =>\n    <SVGSprite use=\"Ai2OLMoE\" aspectRatio={aspectRatio} color={color} {...rest} />;\n\nexport { Ai2OLMoE, Ai2OLMoE as default };\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGSprite, type SVGSpriteProps } from '../svg/SVGBase';\n\nconst Ai2 = ({ color = 'primary', aspectRatio = '756/240', ...rest}: SVGSpriteProps) =>\n    <SVGSprite use=\"Ai2\" aspectRatio={aspectRatio} color={color} {...rest} />;\n\nexport { Ai2, Ai2 as default };\n","/* Auto generated file */\n/* eslint-disable */\nimport { SVGSprite, type SVGSpriteProps } from '../svg/SVGBase';\n\nconst ACE = ({ color = 'primary', aspectRatio = '517/133', ...rest}: SVGSpriteProps) =>\n    <SVGSprite use=\"ACE\" aspectRatio={aspectRatio} color={color} {...rest} />;\n\nexport { ACE, ACE as default };\n","import { Menu as AriaMenu, type MenuProps as AriaMenuProps } from 'react-aria-components';\n\nimport { type PropsWithChildren, type ReactNode } from 'react';\n\nimport { menuRecipe, MenuRecipeProps } from './menu.styles';\nimport { cx } from '@/utils/cx';\n\ntype MenuProps<T = object> = {\n    children?: ReactNode;\n    className?: string;\n} & AriaMenuProps<T> &\n    MenuRecipeProps;\n\nconst Menu = ({ className, children, ...rest }: PropsWithChildren<MenuProps>) => {\n    const [variantProps, localProps] = menuRecipe.splitVariantProps(rest);\n    const recipeClassNames = menuRecipe(variantProps);\n\n    return (\n        <AriaMenu {...localProps} className={cx(recipeClassNames.root, className)}>\n            {children}\n        </AriaMenu>\n    );\n};\n\nexport { Menu as AriaMenu };\nexport type { MenuProps };\n","import {\n    MenuItem as AriaMenuItem,\n    type MenuItemProps as AriaMenuItemProps,\n} from 'react-aria-components';\n\nimport { type PropsWithChildren, type ReactNode } from 'react';\n\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { menuRecipe, MenuRecipeProps } from './menu.styles';\nimport { cx } from '@/utils/cx';\nimport focusRing from '../shared/focusRing.styles';\n\ntype MenuItemProps<T = object> = {\n    children?: ReactNode;\n    className?: string;\n} & AriaMenuItemProps<T> &\n    MenuRecipeProps;\n\nconst MenuItem = ({ className, children, ...rest }: PropsWithChildren<MenuItemProps>) => {\n    const [variantProps, localProps] = menuRecipe.splitVariantProps(rest);\n    const recipeClassNames = menuRecipe(variantProps);\n\n    return (\n        <AriaMenuItem\n            {...localProps}\n            className={cx(css(focusRing), recipeClassNames.menuItem, className)}>\n            {children}\n        </AriaMenuItem>\n    );\n};\n\nexport { MenuItem };\nexport type { MenuItemProps };\n","import {\n    MenuSection as AriaMenuSection,\n    type MenuSectionProps as AriaMenuSectionProps,\n} from 'react-aria-components';\n\nimport { type PropsWithChildren, type ReactNode } from 'react';\n\nimport { menuRecipe, MenuRecipeProps } from './menu.styles';\nimport { cx } from '@/utils/cx';\n\ntype MenuSelectionProps<T = object> = {\n    children?: ReactNode;\n    className?: string;\n} & AriaMenuSectionProps<T> &\n    MenuRecipeProps;\n\nconst MenuSection = ({ className, children, ...rest }: PropsWithChildren<MenuSelectionProps>) => {\n    const [variantProps, localProps] = menuRecipe.splitVariantProps(rest);\n    const recipeClassNames = menuRecipe(variantProps);\n\n    return (\n        <AriaMenuSection {...localProps} className={cx(recipeClassNames.menuSection, className)}>\n            {children}\n        </AriaMenuSection>\n    );\n};\n\nexport { MenuSection };\nexport type { MenuSelectionProps };\n","import {\n    MenuTrigger as AriaMenuTrigger,\n    type MenuTriggerProps as AriaMenuTriggerProps,\n} from 'react-aria-components';\nimport { PropsWithChildren, ReactNode } from 'react';\n\ntype MenuTriggerProps = {\n    children?: ReactNode;\n} & AriaMenuTriggerProps;\n\nconst MenuTrigger = ({ children, ...rest }: PropsWithChildren<MenuTriggerProps>) => {\n    return <AriaMenuTrigger {...rest}>{children}</AriaMenuTrigger>;\n};\n\nexport { MenuTrigger };\nexport type { MenuTriggerProps };\n","import {\n    SubmenuTrigger as AriaSubmenuTrigger,\n    type SubmenuTriggerProps as AriaSubmenuTriggerProps,\n} from 'react-aria-components';\nimport { PropsWithChildren, ReactNode } from 'react';\n\ntype SubmenuTriggerProps = {\n    children?: ReactNode;\n} & AriaSubmenuTriggerProps;\n\nconst SubmenuTrigger = ({ children, ...rest }: PropsWithChildren<SubmenuTriggerProps>) => {\n    return <AriaSubmenuTrigger {...rest}>{children}</AriaSubmenuTrigger>;\n};\n\nexport { SubmenuTrigger };\nexport type { SubmenuTriggerProps };\n","import {\n    Separator as AriaSeparator,\n    type SeparatorProps as AriaSeparatorProps,\n} from 'react-aria-components';\nimport { PropsWithChildren } from 'react';\n\nimport { menuRecipe } from './menu.styles';\nimport { cx } from '@/utils/cx';\n\ntype SeparatorProps = {\n    className?: string;\n} & AriaSeparatorProps;\n\nconst Separator = ({ className, ...rest }: PropsWithChildren<SeparatorProps>) => {\n    const [variantProps, localProps] = menuRecipe.splitVariantProps(rest);\n    const recipeClassNames = menuRecipe(variantProps);\n    return <AriaSeparator className={cx(recipeClassNames.separator, className)} {...localProps} />;\n};\n\nexport { Separator };\nexport type { SeparatorProps };\n","import { Keyboard as AriaKeyboard } from 'react-aria-components';\nimport { type PropsWithChildren, type ReactNode } from 'react';\n\ntype KeyboardProps = {\n    children?: ReactNode;\n};\nconst Keyboard = ({ children, ...rest }: PropsWithChildren<KeyboardProps>) => {\n    return <AriaKeyboard {...rest}>{children}</AriaKeyboard>;\n};\n\nexport { Keyboard };\nexport type { KeyboardProps };\n","import { Text as AriaText, type TextProps as AriaTextProps } from 'react-aria-components';\nimport { PropsWithChildren } from 'react';\n\ntype MenuTextProps = AriaTextProps;\n\nconst MenuText = (props: PropsWithChildren<MenuTextProps>) => {\n    return <AriaText {...props} />;\n};\n\nexport { MenuText };\nexport type { MenuTextProps };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\nconst modalStyles = sva({\n    slots: ['overlay', 'modal', 'dialog', 'heading', 'content', 'actions', 'closeButton'],\n    base: {\n        overlay: {\n            inset: '[0]',\n            position: 'fixed',\n            display: 'flex',\n            zIndex: 'modal',\n            alignItems: 'center',\n            justifyContent: 'center',\n            backgroundColor: '[black/80]', // need overlay tokens: https://github.com/allenai/varnish/issues/1148\n        },\n        modal: {\n            boxSizing: 'border-box',\n            display: 'flex',\n            '--modal-margin': '32px',\n            margin: 'var(--modal-margin)',\n            maxHeight: '[calc(100% - var(--modal-margin))]',\n\n            borderRadius: 'sm',\n            outline: 'none', // we don't want a focus ring on the div\n        },\n        dialog: {},\n        heading: {\n            padding: '[8px 16px]',\n\n            display: 'flex',\n            columnGap: '[8px]',\n            justifyContent: 'space-between',\n            alignItems: 'start',\n        },\n        content: {\n            overflowY: 'auto',\n            // TODO, check with design:\n            // scrollbarGutter: 'stable both-edges',\n            paddingInline: '[16px]',\n        },\n        actions: {\n            padding: '[8px 16px]',\n        },\n        closeButton: {\n            alignSelf: 'start',\n            padding: '0',\n        },\n    },\n    variants: {\n        fullWidth: {\n            true: {\n                modal: {\n                    flex: '1',\n                    width: '[100%]',\n                },\n            },\n        },\n        size: {\n            small: {\n                modal: {\n                    maxWidth: '[300px]',\n                },\n            },\n            medium: {\n                modal: {\n                    maxWidth: '[500px]',\n                },\n            },\n            large: {\n                modal: {\n                    maxWidth: '[800px]',\n                },\n            },\n            // TODO: Design input:\n            // full: {\n            //     modal: {\n            //         width: '[100%]',\n            //         height: '[100%]',\n            //         margin: '[0]',\n            //     },\n            // },\n        },\n        color: {\n            default: {\n                modal: {\n                    backgroundColor: 'background.opacity-100',\n                    color: 'text',\n                },\n            },\n            reversed: {\n                modal: {\n                    backgroundColor: 'background.opacity-100.reversed',\n                    color: 'text.reversed',\n                },\n            },\n        },\n    },\n    defaultVariants: {\n        size: 'medium',\n        color: 'default',\n    },\n});\n\ntype ModalRecipeProps = Exclude<RecipeVariantProps<typeof modalStyles>, undefined>;\n\nexport { modalStyles };\nexport type { ModalRecipeProps };\n","import { type PropsWithChildren } from 'react';\n\nimport { cx } from '@/utils/cx';\n\nimport { Close } from '@/components/icons';\n\nimport { modalStyles, type ModalRecipeProps } from '@/components/modal/modal.styles';\nimport {\n    DialogActions,\n    DialogCloseButton as ModalCloseButton,\n    type DialogCloseButtonProps as ModalCloseButtonProps,\n} from '@/components/dialog/DialogActions';\n\ninterface ModalCloseIconButtonProps extends ModalRecipeProps, PropsWithChildren {\n    className?: string;\n}\n\n// TODO this should be an IconButton -- or we need to have better support for Icons as buttons\n// This is specifically the X -- for a text like \"close\" button, use a regular DialogCloseButton\nconst ModalCloseIconButton = ({ className, children, ...rest }: ModalCloseIconButtonProps) => {\n    const [variantProps, localProps] = modalStyles.splitVariantProps(rest);\n    const modalClassNames = modalStyles(variantProps);\n\n    return (\n        <ModalCloseButton\n            variant=\"text\"\n            className={cx(modalClassNames.closeButton, className)}\n            {...localProps}>\n            {children ?? <Close size=\"large\" />}\n        </ModalCloseButton>\n    );\n};\n\ninterface ModalActionsProps extends ModalRecipeProps, PropsWithChildren {\n    className?: string;\n}\n\nconst ModalActions = ({ className, children, ...rest }: ModalActionsProps) => {\n    const [variantProps, localProps] = modalStyles.splitVariantProps(rest);\n    const modalClassNames = modalStyles(variantProps);\n\n    return (\n        <DialogActions className={cx(modalClassNames.actions, className)} {...localProps}>\n            {children}\n        </DialogActions>\n    );\n};\n\nexport type { ModalCloseButtonProps, ModalCloseIconButtonProps, ModalActionsProps };\nexport { ModalCloseButton, ModalCloseIconButton, ModalActions, ModalActions as default };\n","import { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { cx } from '@/utils/cx';\n\nimport type { DialogHeadingProps } from '@/components/dialog/DialogHeading';\nimport type { ModalProps } from '@/components/modal/Modal';\nimport { ModalCloseIconButton } from '@/components/modal/ModalActions';\nimport { DialogHeadingBase } from '@/components/dialog/DialogHeading';\nimport { modalStyles, type ModalRecipeProps } from '@/components/modal/modal.styles';\nimport { dialogStyles } from '@/components/dialog/dialog.styles';\n\ntype ModalHeadingProps = DialogHeadingProps &\n    ModalRecipeProps &\n    Pick<ModalProps, 'closeButton' | 'closeButtonClassName'>;\n\nconst ModalHeading = ({\n    className,\n    closeButton = true,\n    closeButtonClassName,\n    children,\n    ...rest\n}: ModalHeadingProps) => {\n    const [variantProps, localProps] = modalStyles.splitVariantProps(rest);\n    const modalVariantStyles = modalStyles.raw(variantProps);\n\n    const [dialogVariantProps] = dialogStyles.splitVariantProps(rest);\n    const dialogVariantStyles = dialogStyles.raw(dialogVariantProps);\n\n    const closeButtonComponent =\n        closeButton === true ? (\n            <ModalCloseIconButton className={closeButtonClassName} {...variantProps} />\n        ) : (\n            closeButton\n        );\n\n    return (\n        <DialogHeadingBase\n            className={cx(css(dialogVariantStyles.heading, modalVariantStyles.heading), className)}\n            {...localProps}>\n            {children}\n            {closeButtonComponent}\n        </DialogHeadingBase>\n    );\n};\n\nexport type { ModalHeadingProps };\nexport { ModalHeading, ModalHeading as default };\n","import { type PropsWithChildren } from 'react';\n\nimport { cx } from '@/utils/cx';\n\nimport { modalStyles, type ModalRecipeProps } from '@/components/modal/modal.styles';\n\ninterface ModalContentProps extends ModalRecipeProps, PropsWithChildren {\n    className?: string;\n}\n\nconst ModalContent = ({ className, children, ...rest }: ModalContentProps) => {\n    const [variantProps, localProps] = modalStyles.splitVariantProps(rest);\n    const modalClassNames = modalStyles(variantProps);\n    return (\n        <div className={cx(modalClassNames.content, className)} {...localProps}>\n            {children}\n        </div>\n    );\n};\n\nexport type { ModalContentProps };\nexport { ModalContent, ModalContent as default };\n","import { type ReactNode } from 'react';\n\nimport {\n    Modal as AriaModal,\n    ModalOverlay as AriaModalOverlay,\n    type ModalOverlayProps as AriaModalOverlayProps,\n} from 'react-aria-components';\n\nimport { cx } from '@/utils/cx';\n\nimport { ModalHeading } from '@/components/modal/ModalHeading';\nimport { ModalActions } from '@/components/modal/ModalActions';\nimport { ModalContent } from '@/components/modal/ModalContent';\nimport { modalStyles, type ModalRecipeProps } from './modal.styles';\n\nimport { Dialog, type DialogProps } from '@/components/dialog/Dialog';\nimport { dialogStyles } from '@/components/dialog/dialog.styles';\n\ninterface ModalBaseClassNames {\n    dialogClassName?: string;\n    overlayClassName?: string;\n}\n\ninterface ModalBaseProps\n    extends\n        Omit<AriaModalOverlayProps, 'className'>,\n        ModalRecipeProps,\n        ModalBaseClassNames,\n        Pick<DialogProps, 'heading'> {\n    className?: string; // RAC allows className to be a function, we could handle this, but not now\n    children?: ReactNode; // RAC allows this to be a render function, we could support in the future\n}\n\n// various classNames\nconst ModalBase = ({\n    className,\n    style,\n    overlayClassName,\n    dialogClassName,\n    heading,\n    children,\n    ...rest\n}: ModalBaseProps) => {\n    const [dialogVariantProps] = dialogStyles.splitVariantProps(rest);\n    const [variantProps, localProps] = modalStyles.splitVariantProps(rest);\n    const modalClassNames = modalStyles(variantProps);\n\n    return (\n        <AriaModalOverlay className={cx(modalClassNames.overlay, overlayClassName)} {...localProps}>\n            <AriaModal className={cx(modalClassNames.modal, className)} style={style}>\n                <Dialog\n                    heading={heading}\n                    className={cx(modalClassNames.dialog, dialogClassName)}\n                    {...dialogVariantProps}>\n                    {children}\n                </Dialog>\n            </AriaModal>\n        </AriaModalOverlay>\n    );\n};\n\ninterface ModalClassNames extends Pick<DialogProps, 'actionsClassName'> {\n    closeClassName?: string;\n    headingClassName?: string;\n    closeButtonClassName?: string;\n    contentClassName?: string;\n}\n\ninterface ModalProps extends ModalBaseProps, Pick<DialogProps, 'buttons'>, ModalClassNames {\n    closeButton?: ReactNode;\n    children: ReactNode; // Force ReactNode Override RAC children render functionality - at least for now.\n}\n\n// various classNames\nconst Modal = ({\n    heading,\n    closeButton,\n    buttons,\n    headingClassName,\n    closeButtonClassName,\n    actionsClassName,\n    contentClassName,\n    children,\n    ...rest\n}: ModalProps) => {\n    const [modalVariantProps] = modalStyles.splitVariantProps(rest);\n\n    const headingNode =\n        typeof heading === 'string' ? (\n            <ModalHeading\n                closeButton={closeButton}\n                className={headingClassName}\n                closeButtonClassName={closeButtonClassName}>\n                {heading}\n            </ModalHeading>\n        ) : (\n            heading\n        );\n\n    const buttonsNode = buttons ? (\n        <ModalActions className={actionsClassName} {...modalVariantProps}>\n            {buttons}\n        </ModalActions>\n    ) : null;\n\n    return (\n        <ModalBase heading={headingNode} {...rest}>\n            <ModalContent className={contentClassName} {...modalVariantProps}>\n                {children}\n            </ModalContent>\n            {buttonsNode}\n        </ModalBase>\n    );\n};\n\n// re-export these with new names, cause why not?\nexport {\n    DialogTrigger as ModalTrigger,\n    type DialogTriggerProps as ModalTriggerProps,\n} from '../dialog';\n\nexport { ModalBase, Modal, Modal as default };\nexport type { ModalBaseProps, ModalProps };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\n/**\n *  Radio can be built with the <input> HTML element, but this can be difficult to style.\n *   Radio helps achieve accessible radio inputs that can be styled as needed.\n *\n *  See: https://react-spectrum.adobe.com/react-aria/RadioGroup.html\n */\n\n/**\n * @remarks A radio recipe\n *\n * @param size - Size of the radio, values are `small`, `medium` (default), and `large`\n * @param color - Color of the radio, values are:\n *   `primary` (default), `secondary`, `tertiary`, `teal`, and `cream`\n */\n\nconst radioRecipe = sva({\n    slots: ['root', 'circle'],\n    base: {\n        root: {\n            display: 'flex',\n            gap: '[8px]',\n            alignItems: 'center',\n            cursor: 'pointer',\n            color: 'text',\n\n            colorPalette: 'elements.overrides.form.radio',\n\n            _disabled: {\n                cursor: 'not-allowed',\n                colorPalette: 'elements.overrides.form.radio.disabled',\n            },\n            _invalid: {\n                colorPalette: 'elements.overrides.form.radio.error',\n            },\n            _componentReadOnly: {\n                cursor: 'default',\n            },\n        },\n        circle: {\n            boxSizing: 'border-box',\n            position: 'relative',\n            width: '[20px]',\n            height: '[20px]',\n            flexShrink: '0',\n            display: 'flex',\n            alignItems: 'center',\n            justifyContent: 'center',\n            borderRadius: 'full',\n            border: '[1px solid]',\n            borderColor: 'colorPalette.stroke',\n\n            // All unselected radios have the default fill\n            backgroundColor: 'elements.overrides.form.radio.fill',\n            _before: {\n                content: '\"\"',\n                display: 'block',\n                aspectRatio: '1',\n                borderRadius: 'full',\n            },\n            _groupHoverNotDisabledNotSelectedNotInvalid: {\n                backgroundColor: 'colorPalette.hovered.fill',\n                borderColor: 'colorPalette.hovered.stroke',\n            },\n            _groupSelected: {\n                borderColor: 'transparent',\n                backgroundColor: 'colorPalette.fill',\n                _before: {\n                    backgroundColor: 'colorPalette.contrast',\n                },\n            },\n        },\n    },\n    variants: {\n        size: {\n            small: {\n                root: {\n                    fontSize: '[12px]',\n                },\n                circle: {\n                    width: '[0.75rem]',\n                    height: '[0.75rem]',\n                    _before: {\n                        width: '[0.25rem]',\n                    },\n                },\n            },\n            medium: {\n                root: {\n                    fontSize: 'sm',\n                },\n                circle: {\n                    width: '[0.875rem]',\n                    height: '[0.875rem]',\n                    _before: {\n                        width: '[0.375rem]',\n                    },\n                },\n            },\n            large: {\n                root: {\n                    fontSize: 'md',\n                },\n                circle: {\n                    width: '[1.25rem]',\n                    height: '[1.25rem]',\n                    _before: {\n                        width: '[0.5rem]',\n                    },\n                },\n            },\n        },\n        color: {\n            default: {\n                root: {\n                    _selectedNotDisabledNotInvalid: {\n                        colorPalette: 'elements.overrides.form.radio.checked',\n                    },\n                },\n            },\n            // reversed: {},\n            primary: {\n                root: {\n                    _selectedNotDisabledNotInvalid: {\n                        colorPalette: 'elements.primary',\n                    },\n                },\n            },\n            secondary: {\n                root: {\n                    _selectedNotDisabledNotInvalid: {\n                        colorPalette: 'elements.secondary',\n                    },\n                },\n            },\n            tertiary: {\n                root: {\n                    _selectedNotDisabledNotInvalid: {\n                        colorPalette: 'elements.tertiary',\n                    },\n                },\n            },\n        },\n    },\n    defaultVariants: {\n        size: 'medium',\n        color: 'default',\n    },\n});\n\ntype RadioRecipeProps = RecipeVariantProps<typeof radioRecipe>;\n\nexport { radioRecipe, radioRecipe as default };\nexport type { RadioRecipeProps };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\n/**\n * Radio groups can be built in HTML with the <fieldset> and <input> elements, however these\n * can be difficult to style. RadioGroup helps achieve accessible radio groups that can be\n * styled as needed.\n *\n *  See: https://react-spectrum.adobe.com/react-aria/RadioGroup.html\n */\n\nconst radioGroupRecipe = sva({\n    slots: ['root', 'label', 'description', 'error'],\n    base: {\n        root: {\n            display: 'flex',\n            flexDir: 'column',\n            alignItems: 'start',\n            gap: '[2px]',\n            color: 'text',\n        },\n        label: {},\n        description: {},\n        error: {},\n    },\n});\n\ntype RadioGroupRecipeProps = RecipeVariantProps<typeof radioGroupRecipe>;\n\nexport { radioGroupRecipe, radioGroupRecipe as default };\nexport type { RadioGroupRecipeProps };\n","import { ReactNode, createContext } from 'react';\nimport {\n    RadioGroup as AriaRadioGroup,\n    RadioGroupProps as AriaRadioGroupProps,\n    type ValidationResult,\n} from 'react-aria-components';\n\nimport { cx } from '@/utils/cx';\n\nimport { Label } from '@/components/field/label/Label';\nimport { FieldError } from '@/components/field/fieldError/FieldError';\nimport { Description } from '@/components/field/description/Description';\nimport { radioGroupRecipe } from '@/components/radioGroup/radioGroup.styles';\nimport { radioRecipe, type RadioRecipeProps } from '../radio/radio.styles';\n\nexport const RadioVariantContext = createContext<RadioRecipeProps>(undefined);\n\n/**\n * Radio groups can be built in HTML with the <fieldset> and <input> elements, however these\n * can be difficult to style. RadioGroup helps achieve accessible radio groups that can be\n * styled as needed.\n *\n *  See: https://react-spectrum.adobe.com/react-aria/RadioGroup.html\n */\ntype RadioGroupProps = Omit<AriaRadioGroupProps, 'children'> &\n    RadioRecipeProps & {\n        label?: string;\n        children?: ReactNode;\n        description?: string;\n        errorMessage?: string | ((validation: ValidationResult) => string);\n        className?: string;\n        labelClassName?: string;\n        descriptionClassName?: string;\n        errorClassName?: string;\n    };\n\nfunction RadioGroup({\n    label,\n    children,\n    description,\n    errorMessage,\n    className,\n    labelClassName,\n    descriptionClassName,\n    errorClassName,\n    ...props\n}: RadioGroupProps) {\n    const [groupVariantProps, rest] = radioGroupRecipe.splitVariantProps(props);\n    const [radioVariantProps, localProps] = radioRecipe.splitVariantProps(rest);\n    const recipeClassNames = radioGroupRecipe(groupVariantProps);\n    const { size } = props;\n\n    return (\n        <AriaRadioGroup {...localProps} className={cx(recipeClassNames.root, className)}>\n            <RadioVariantContext.Provider value={radioVariantProps}>\n                <Label size={size} className={cx(recipeClassNames.label, labelClassName)}>\n                    {label}\n                </Label>\n                {children}\n                <Description\n                    size={size}\n                    className={cx(recipeClassNames.description, descriptionClassName)}>\n                    {description}\n                </Description>\n                <FieldError size={size} className={cx(recipeClassNames.error, errorClassName)}>\n                    {errorMessage}\n                </FieldError>\n            </RadioVariantContext.Provider>\n        </AriaRadioGroup>\n    );\n}\n\nexport { RadioGroup, RadioGroup as default };\nexport type { RadioGroupProps };\n","import { useContext } from 'react';\nimport { Radio as AriaRadio, RadioProps as AriaRadioProps } from 'react-aria-components';\n\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { cx } from '@/utils/cx';\n\nimport focusRing from '@/components/shared/focusRing.styles';\nimport radioRecipe, { type RadioRecipeProps } from '@/components/radio/radio.styles';\nimport { RadioVariantContext } from '@/components/radioGroup/RadioGroup';\n\n/**\n *  Radios can be built with the <input> HTML element, but this can be difficult to style.\n *  Radio helps achieve accessible radioes that can be styled as needed.\n *\n *  See: https://react-spectrum.adobe.com/react-aria/Radio.html\n */\n\ntype RadioProps = {\n    className?: string;\n    circleClassName?: string;\n} & AriaRadioProps &\n    RadioRecipeProps;\n\nfunction Radio({ className, circleClassName, children, ...rest }: RadioProps) {\n    const [variantProps, localProps] = radioRecipe.splitVariantProps(rest);\n    // `raw` receipe is required to be able to merge css objects (used in focus ring)\n    const groupProps = useContext(RadioVariantContext);\n    const recipeClassNames = radioRecipe.raw({ ...groupProps, ...variantProps });\n    return (\n        <AriaRadio\n            {...localProps}\n            // we need to wrap the `raw` focusRing and `raw` recipeClassNames.root in `css()` to merge them\n            // there is no garauntee which class will take precidence\n            className={cx('group', css(focusRing, recipeClassNames.root), className)}>\n            <>\n                <div className={cx(css(recipeClassNames.circle), circleClassName)} />\n                {children}\n            </>\n        </AriaRadio>\n    );\n}\n\nexport { Radio, Radio as default };\nexport type { RadioProps };\n","import { cva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\nconst loadingSpinnerRecipe = cva({\n    base: {\n        display: 'flex',\n        animation: 'spin infinite linear',\n        color: 'elements.default.fill',\n    },\n    variants: {\n        duration: {\n            fast: {\n                animationDuration: '0.5s',\n            },\n            medium: {\n                animationDuration: '0.75s',\n            },\n            slow: {\n                animationDuration: '1.0s',\n            },\n        },\n        size: {\n            // These don't quite match up with icon size tokens\n            // so they are just explicit values\n            small: {\n                width: '[16px]',\n                height: '[16px]',\n                '& svg': {\n                    width: '[16px]',\n                    height: '[16px]',\n                },\n            },\n            medium: {\n                width: '[32px]',\n                height: '[32px]',\n                '& svg': {\n                    width: '[32px]',\n                    height: '[32px]',\n                },\n            },\n            large: {\n                width: '[64px]',\n                height: '[64px]',\n                '& svg': {\n                    width: '[64px]',\n                    height: '[64px]',\n                },\n            },\n            full: {\n                width: '[100%]',\n                height: '[100%]',\n                '& svg': {\n                    width: '[100%]',\n                    height: '[100%]',\n                },\n            },\n            unset: {\n                width: '[unset]',\n                height: '[unset]',\n            },\n        },\n        color: {\n            primary: {\n                color: 'elements.primary.fill',\n            },\n            secondary: {\n                color: 'elements.secondary.fill',\n            },\n            tertiary: {\n                color: 'elements.tertiary.fill',\n            },\n        },\n    },\n    defaultVariants: {\n        size: 'medium',\n        duration: 'medium',\n    },\n});\n\ntype LoadingSpinnerRecipeProps = RecipeVariantProps<typeof loadingSpinnerRecipe>;\n\nexport { loadingSpinnerRecipe, loadingSpinnerRecipe as default };\nexport type { LoadingSpinnerRecipeProps };\n","import {\n    ProgressBar as AriaProgressBar,\n    ProgressBarProps as AriaProgressBarProps,\n} from 'react-aria-components';\n\nimport { type ReactNode } from 'react';\n\nimport { cx } from '@/utils/cx';\n\nimport { loadingSpinnerRecipe, LoadingSpinnerRecipeProps } from './loadingSpinner.styles';\n\ntype LoadingSpinnerProps = {\n    children?: ReactNode;\n    className?: string;\n} & AriaProgressBarProps &\n    LoadingSpinnerRecipeProps;\n\nconst LoadingSpinner = ({ children, className, ...rest }: LoadingSpinnerProps) => {\n    const [variantProps] = loadingSpinnerRecipe.splitVariantProps(rest);\n\n    return (\n        <AriaProgressBar\n            className={cx(loadingSpinnerRecipe(variantProps), className)}\n            aria-label=\"Loading…\">\n            {children || (\n                <svg\n                    style={{ width: '100%', height: '100%' }}\n                    viewBox=\"0 0 32 32\"\n                    fill=\"none\"\n                    strokeWidth={4}>\n                    <circle\n                        cx=\"16\"\n                        cy=\"16\"\n                        r=\"14\"\n                        strokeDashoffset=\"2\"\n                        stroke=\"currentColor\"\n                        strokeDasharray=\"60 60\"\n                        strokeLinecap=\"round\"\n                    />\n                </svg>\n            )}\n        </AriaProgressBar>\n    );\n};\n\nexport { LoadingSpinner };\nexport type { LoadingSpinnerProps };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\n// `Popover` also uses Tooltip styles (../tooltip/tooltip.styles.ts)\nconst popoverStyles = sva({\n    slots: ['root', 'arrow', 'heading'], // mimics Dialog and Tooltip\n    base: {\n        root: {\n            cursor: 'default',\n            outline: 'none',\n        },\n    },\n    variants: {\n        shape: {\n            rounded: {},\n            box: {},\n        },\n        color: {\n            default: {},\n            reversed: {},\n        },\n    },\n    defaultVariants: {\n        shape: 'box',\n        color: 'default',\n    },\n});\n\ntype PopoverRecipeProps = Exclude<RecipeVariantProps<typeof popoverStyles>, undefined>;\n\nexport { popoverStyles };\nexport type { PopoverRecipeProps };\n","import { Popover as AriaPopover, PopoverProps as AriaPopoverProps } from 'react-aria-components';\n\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { type PropsWithChildren } from 'react';\n\nimport { cx } from '@/utils/cx';\n\nimport { popoverStyles, type PopoverRecipeProps } from '@/components/popover/popover.styles';\nimport { tooltipRecipe } from '@/components/tooltip/tooltip.styles';\nimport {\n    Dialog,\n    DialogHeadingBase,\n    type DialogHeadingProps,\n    type DialogProps,\n} from '@/components/dialog';\nimport { dialogStyles } from '@/components/dialog/dialog.styles';\n\nimport { OverlayArrow, type OverlayArrowProps } from '@/components/shared/OverlayArrow';\n\ninterface PopoverClassNames {\n    className?: string;\n    arrowClassName?: string;\n    headingClassName?: string;\n    contentClassName?: string;\n}\n\ntype PopoverProps = Omit<AriaPopoverProps, 'className'> &\n    Pick<DialogProps, 'heading'> &\n    PopoverClassNames &\n    PopoverRecipeProps &\n    PropsWithChildren; // RAC allows children to be a render function, we can support this, but not now\n\n// various classNames\nconst Popover = ({\n    heading,\n    className,\n    arrowClassName,\n    headingClassName,\n    contentClassName,\n    children,\n    ...rest\n}: PopoverProps) => {\n    const [variantProps, localProps] = popoverStyles.splitVariantProps(rest);\n    const popoverVariantStyles = popoverStyles.raw(variantProps);\n\n    const [tooltipVariantProps] = tooltipRecipe.splitVariantProps(rest);\n    const tooltipVariantStyles = tooltipRecipe.raw(tooltipVariantProps);\n\n    const [dialogVariantProps] = dialogStyles.splitVariantProps(rest);\n\n    const headingRender =\n        typeof heading === 'string' ? (\n            <PopoverHeading className={headingClassName} {...variantProps}>\n                {heading}\n            </PopoverHeading>\n        ) : (\n            heading\n        );\n\n    return (\n        <AriaPopover\n            className={cx(css(tooltipVariantStyles.root, popoverVariantStyles.root), className)}\n            {...localProps}>\n            <PopoverOverlayArrow className={arrowClassName} {...variantProps} />\n            <Dialog heading={headingRender} className={contentClassName} {...dialogVariantProps}>\n                {children}\n            </Dialog>\n        </AriaPopover>\n    );\n};\n\ntype PopoverHeadingProps = DialogHeadingProps & PopoverRecipeProps;\n\nconst PopoverHeading = ({ className, children, ...rest }: PopoverHeadingProps) => {\n    const [variantProps, localProps] = popoverStyles.splitVariantProps(rest);\n    const popoverVariantStyles = popoverStyles.raw(variantProps);\n\n    const [dialogVariantProps] = dialogStyles.splitVariantProps(rest);\n    const dialogVariantStyles = dialogStyles.raw(dialogVariantProps);\n\n    return (\n        <DialogHeadingBase\n            className={cx(\n                css(dialogVariantStyles.heading, popoverVariantStyles.heading),\n                className\n            )}\n            {...localProps}>\n            {children}\n        </DialogHeadingBase>\n    );\n};\n\ntype PopoverOverlayArrowProps = OverlayArrowProps & PopoverRecipeProps;\n\nconst PopoverOverlayArrow = ({ className, ...rest }: PopoverOverlayArrowProps) => {\n    const [variantProps, localProps] = popoverStyles.splitVariantProps(rest);\n    const popoverVariantStyles = popoverStyles.raw(variantProps);\n\n    const [tooltipVariantProps] = tooltipRecipe.splitVariantProps(rest);\n    const tooltipVariantStyles = tooltipRecipe.raw(tooltipVariantProps);\n\n    return (\n        <OverlayArrow\n            className={cx(css(tooltipVariantStyles.arrow, popoverVariantStyles.arrow), className)}\n            {...localProps}\n        />\n    );\n};\n\n// For now, we will just re-export these\nexport {\n    DialogTrigger as PopoverTrigger,\n    type DialogTriggerProps as PopoverTriggerProps,\n} from '@/components/dialog';\n\nexport { PopoverOverlayArrow, PopoverHeading, Popover, Popover as default };\nexport type { PopoverOverlayArrowProps, PopoverHeadingProps, PopoverProps };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\nconst selectRecipe = sva({\n    slots: [\n        'root',\n        'button',\n        'arrowIcon',\n        'listBox',\n        'listBoxSection',\n        'listBoxHeader',\n        'listBoxItem',\n        'listBoxItemIcon',\n        'listBoxItemText',\n        'popover',\n        'selectValue',\n        'label',\n        'description',\n        'error',\n    ],\n    base: {\n        root: {\n            boxSizing: 'border-box',\n        },\n        button: {\n            cursor: 'pointer',\n            fontWeight: 'medium',\n            display: 'inline-flex',\n            alignItems: 'center',\n            justifyContent: 'space-between',\n            width: '[fit-content]',\n            transition: '[background-color 250ms, color 250ms, opacity 250ms]',\n            _disabled: {\n                color: 'text.disabled',\n            },\n        },\n        popover: {\n            marginTop: '0',\n            // keep these?:\n            '&[data-placement=top]': {\n                paddingBottom: '[1px]', // offset to show button's border\n            },\n            '&[data-placement=bottom]': {\n                paddingTop: '[1px]', // offset to show button's border\n            },\n            color: 'text',\n        },\n        listBox: {\n            backgroundColor: {\n                base: 'white',\n                _dark: 'background',\n            },\n            display: 'grid',\n            // This min and the `listBoxItem` `paddingInlineEnd` need to visually match\n            gridTemplateAreas: '\"icon text\"',\n            gridTemplateColumns: '[minmax(8px, min-content) auto]',\n            minWidth: '[100%]',\n            padding: '0',\n            justifySelf: 'center',\n            '[data-placement=top] &': {\n                borderTopRadius: 'md',\n            },\n            '[data-placement=bottom] &': {\n                borderBottomRadius: 'md',\n            },\n        },\n        listBoxSection: {\n            // pass through subgrid\n            display: 'grid',\n            gridTemplateColumns: 'subgrid',\n            gridColumn: 'icon / text',\n            minWidth: '[100%]',\n        },\n        listBoxItem: {\n            // subgrid\n            display: 'grid',\n            gridTemplateColumns: 'subgrid',\n            gridColumn: 'icon / text',\n            alignItems: 'center',\n            gap: '[8px]',\n            padding: '[8px]',\n            // this needs to visually match the `listBox` grid collapsing (which will visually be the left padding)\n            paddingInlineEnd: '[12px]',\n            cursor: 'pointer',\n\n            // this makes all items have rounded hover and focus\n            borderRadius: 'md',\n\n            _active: {\n                backgroundColor: 'background',\n            },\n            _hover: {\n                backgroundColor: 'background.opacity-10.reversed', // form/menu/hovered/bg\n            },\n        },\n        listBoxItemIcon: {\n            gridColumn: 'icon',\n            justifySelf: 'center',\n            '& svg': {\n                width: '[100%]',\n                height: '[100%]',\n            },\n        },\n        listBoxItemText: {\n            gridColumn: 'text',\n        },\n        arrowIcon: {\n            color: 'colorPalette.contrast',\n            pointerEvents: 'none',\n            transition: '[transform 250ms]',\n            _groupDisabled: {\n                color: 'gray.80',\n            },\n            _groupOpen: {\n                transform: 'rotate(180deg)',\n            },\n        },\n        selectValue: {\n            display: 'flex',\n            gap: '[8px]',\n            alignItems: 'center',\n\n            _groupInvalid: {\n                color: 'text.error',\n            },\n        },\n        listBoxHeader: {\n            fontSize: 'md',\n            border: '[none]',\n            padding: '[8px 16px]',\n            gridColumn: 'icon / text',\n        },\n        label: {},\n        description: {},\n        error: {},\n    },\n    variants: {\n        fullWidth: {\n            false: {},\n            true: {\n                root: {\n                    width: '[100%]',\n                },\n                button: {\n                    width: '[100%]',\n                },\n            },\n        },\n        popoverAutoWidth: {\n            true: {\n                popover: {\n                    minWidth: 'var(--trigger-width)',\n                },\n            },\n        },\n        variant: {\n            contained: {},\n            outlined: {},\n        },\n        shape: {\n            box: {\n                button: {\n                    borderRadius: 'sm',\n                },\n                popover: {\n                    paddingInline: '[4px]',\n                },\n            },\n            rounded: {\n                button: {\n                    borderRadius: 'full',\n                },\n                popover: {\n                    paddingInline: '[18px]', // 16px?\n                },\n            },\n        },\n        size: {\n            small: {\n                root: {\n                    fontSize: '[12px]', // todo: add fontsize for xs\n                },\n                button: {\n                    padding: '[8px 20px]',\n                },\n                listBoxItem: {\n                    fontSize: '[12px]', // todo: add fontsize for xs\n                    lineHeight: '[14px]',\n                },\n                listBoxItemIcon: {\n                    width: '[16px]',\n                    height: '[16px]',\n                },\n            },\n            medium: {\n                root: {\n                    fontSize: 'sm',\n                },\n                button: {\n                    padding: '[8px 24px]',\n                },\n                listBoxItem: {\n                    fontSize: 'sm',\n                    lineHeight: '[22px]',\n                },\n                listBoxItemIcon: {\n                    width: '[20px]',\n                    height: '[20px]',\n                },\n            },\n            large: {\n                root: {\n                    fontSize: 'md',\n                },\n                button: {\n                    padding: '[16px 24px]',\n                },\n                listBoxItem: {\n                    fontSize: 'md',\n                    lineHeight: '[24px]',\n                },\n                listBoxItemIcon: {\n                    width: '[24px]',\n                    height: '[24px]',\n                },\n            },\n        },\n    },\n    defaultVariants: {\n        variant: 'outlined',\n        shape: 'box',\n        size: 'medium',\n        popoverAutoWidth: true,\n    },\n});\n\ntype SelectRecipeProps = RecipeVariantProps<typeof selectRecipe>;\n\nexport { selectRecipe, selectRecipe as default };\nexport type { SelectRecipeProps };\n","import {\n    SelectValue as AriaSelectValue,\n    SelectValueProps as AriaSelectValueProps,\n} from 'react-aria-components';\n\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { cx } from '@/utils/cx';\n\nimport selectRecipe, { SelectRecipeProps } from '@/components/select/select.styles';\nimport focusRing from '@/components/shared/focusRing.styles';\n\ntype SelectValueProps = {\n    label?: string;\n    className?: string;\n} & AriaSelectValueProps<HTMLDivElement> &\n    SelectRecipeProps;\n\nconst SelectValue = ({ className, ...rest }: SelectValueProps) => {\n    const [variantProps, localProps] = selectRecipe.splitVariantProps(rest);\n    // `raw` receipe is required to be able to merge css objects (used in focus ring)\n    const recipeClassNames = selectRecipe.raw(variantProps);\n    return (\n        <AriaSelectValue\n            {...localProps}\n            // we need to wrap the `raw` focusRing and `raw` recipeClassNames.thumb in `css()` to merge them\n            // there is no garauntee which class will take precidence\n            className={cx(css(recipeClassNames.selectValue, focusRing), className)}\n        />\n    );\n};\n\nexport { SelectValue, SelectValue as default };\nexport type { SelectValueProps };\n","import { Popover as AriaPopover, PopoverProps as AriaPopoverProps } from 'react-aria-components';\n\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { cx } from '@/utils/cx';\n\nimport selectRecipe, { SelectRecipeProps } from '@/components/select/select.styles';\nimport focusRing from '@/components/shared/focusRing.styles';\n\ntype SelectPopoverProps = {\n    label?: string;\n    className?: string;\n} & AriaPopoverProps &\n    SelectRecipeProps;\n\nconst SelectPopover = ({ className, ...rest }: SelectPopoverProps) => {\n    const [variantProps, localProps] = selectRecipe.splitVariantProps(rest);\n    // `raw` receipe is required to be able to merge css objects (used in focus ring)\n    const recipeClassNames = selectRecipe.raw(variantProps);\n    return (\n        <AriaPopover\n            {...localProps}\n            // we need to wrap the `raw` focusRing and `raw` recipeClassNames.thumb in `css()` to merge them\n            // there is no garauntee which class will take precidence\n            className={cx(css(recipeClassNames.popover, focusRing), className)}\n        />\n    );\n};\n\nexport { SelectPopover, SelectPopover as default };\nexport type { SelectPopoverProps };\n","import { ListBox as AriaListBox, ListBoxProps as AriaListBoxProps } from 'react-aria-components';\n\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { cx } from '@/utils/cx';\n\nimport selectRecipe, { SelectRecipeProps } from '@/components/select/select.styles';\nimport focusRing from '@/components/shared/focusRing.styles';\n\ntype SelectItem = { id: string | number; name: string };\n\ntype SelectListBoxProps = {\n    label?: string;\n    className?: string;\n} & AriaListBoxProps<object> &\n    SelectRecipeProps;\n\nconst SelectListBox = ({ className, ...rest }: SelectListBoxProps) => {\n    const [variantProps, localProps] = selectRecipe.splitVariantProps(rest);\n    // `raw` receipe is required to be able to merge css objects (used in focus ring)\n    const recipeClassNames = selectRecipe.raw(variantProps);\n    return (\n        <AriaListBox\n            {...localProps}\n            // we need to wrap the `raw` focusRing and `raw` recipeClassNames.thumb in `css()` to merge them\n            // there is no garauntee which class will take precidence\n            className={cx(css(recipeClassNames.listBox, focusRing), className)}\n        />\n    );\n};\n\nexport { SelectListBox, SelectListBox as default };\nexport type { SelectListBoxProps, SelectItem };\n","import {\n    ListBoxItem as AriaListBoxItem,\n    ListBoxItemProps as AriaListBoxItemProps,\n} from 'react-aria-components';\n\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { useContext, type ReactNode } from 'react';\n\nimport { cx } from '@/utils/cx';\n\nimport selectRecipe, { SelectRecipeProps } from '@/components/select/select.styles';\nimport focusRing from '@/components/shared/focusRing.styles';\nimport { SelectVariantContext } from '@/components/select/Select';\n\ntype SelectListBoxItemProps = {\n    icon?: ReactNode;\n    text?: string;\n    label?: string;\n    className?: string;\n    listBoxItemIconClassName?: string;\n    listBoxItemText?: string;\n    children?: ReactNode;\n} & AriaListBoxItemProps &\n    SelectRecipeProps;\n\nconst SelectListBoxItem = ({\n    icon,\n    text,\n    children,\n    className,\n    listBoxItemIconClassName,\n    listBoxItemText,\n    ...rest\n}: SelectListBoxItemProps) => {\n    const [variantProps, localProps] = selectRecipe.splitVariantProps(rest);\n\n    const groupProps = useContext(SelectVariantContext);\n    const recipeClassNames = selectRecipe.raw({ ...groupProps, ...variantProps });\n\n    return (\n        <AriaListBoxItem\n            {...localProps}\n            className={cx(css(recipeClassNames.listBoxItem, focusRing), className)}>\n            {icon ? (\n                <div\n                    aria-hidden\n                    className={cx(css(recipeClassNames.listBoxItemIcon), listBoxItemIconClassName)}>\n                    {icon}\n                </div>\n            ) : null}\n            <span className={cx(css(recipeClassNames.listBoxItemText), listBoxItemText)}>\n                {text}\n            </span>\n            {children}\n        </AriaListBoxItem>\n    );\n};\n\nexport { SelectListBoxItem, SelectListBoxItem as default };\nexport type { SelectListBoxItemProps };\n","import { type ReactNode } from 'react';\n\nimport { Button as AriaButton, ButtonProps as AriaButtonProps } from 'react-aria-components';\n\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { cx } from '@/utils/cx';\n\nimport selectRecipe, { SelectRecipeProps } from '@/components/select/select.styles';\nimport focusRing from '@/components/shared/focusRing.styles';\nimport { FormInputContainer } from '../field/formInputContainer/FormInputContainer';\n\ntype SelectButtonProps = {\n    label?: string;\n    className?: string;\n    children?: ReactNode;\n} & AriaButtonProps &\n    SelectRecipeProps;\n\nconst SelectButton = ({ className, ...rest }: SelectButtonProps) => {\n    const [variantProps] = selectRecipe.splitVariantProps(rest);\n    const recipeClassNames = selectRecipe(variantProps);\n    return (\n        <FormInputContainer\n            Component={AriaButton}\n            className={cx(css(focusRing), recipeClassNames.button, className)}\n            {...rest}\n            endControls={\n                <ArrowDropDownIcon aria-hidden className={cx(recipeClassNames.arrowIcon)} />\n            }\n        />\n    );\n};\n\n// maybe not needeed here\nconst ArrowDropDownIcon = ({ className }: { className: string }) => (\n    <svg\n        className={className}\n        width=\"24\"\n        height=\"24\"\n        viewBox=\"0 0 24 24\"\n        fill=\"none\"\n        xmlns=\"http://www.w3.org/2000/svg\">\n        <g id=\"arrow_drop_down\">\n            <path id=\"Vector\" d=\"M7 9.5L12 14.5L17 9.5H7Z\" fill=\"currentColor\" />\n        </g>\n    </svg>\n);\n\nexport { SelectButton, SelectButton as default };\nexport type { SelectButtonProps };\n","import { useState, createContext, type ReactNode } from 'react';\n\nimport {\n    SelectProps as AriaSelectProps,\n    Select as AriaSelect,\n    ValidationResult,\n} from 'react-aria-components';\n\nimport { Placement } from '@react-types/overlays';\n\nimport { cx } from '@/utils/cx';\n\nimport SelectValue from '@/components/select/SelectValue';\nimport SelectPopover from '@/components/select/SelectPopover';\nimport SelectListBox, { SelectItem } from '@/components/select/SelectListBox';\nimport SelectListBoxItem from '@/components/select/SelectListBoxItem';\nimport selectRecipe, { SelectRecipeProps } from '@/components/select/select.styles';\nimport { Label } from '@/components/field/label/Label';\nimport { Description } from '@/components/field/description/Description';\nimport { FieldError } from '@/components/field/fieldError/FieldError';\nimport SelectButton from '@/components/select/SelectButton';\n\nexport const SelectVariantContext = createContext<SelectRecipeProps>(undefined);\n\ntype SelectProps<T extends SelectItem> = {\n    className?: string;\n    items?: T[];\n    popoverPlacement?: Placement;\n    label?: string;\n    description?: string;\n    errorMessage?: string | ((validation: ValidationResult) => string);\n    buttonClassName?: string;\n    descriptionClassName?: string;\n    labelClassName?: string;\n    popoverClassName?: string;\n    listBoxItemClassName?: string;\n    errorClassName?: string;\n    children?: ReactNode;\n} & AriaSelectProps<HTMLDivElement> &\n    SelectRecipeProps;\n\nfunction Select<T extends SelectItem>({\n    className,\n    items,\n    popoverPlacement = 'bottom',\n    label,\n    description,\n    errorMessage,\n    buttonClassName,\n    descriptionClassName,\n    labelClassName,\n    popoverClassName,\n    listBoxItemClassName,\n    errorClassName,\n    children,\n    ...rest\n}: SelectProps<T>) {\n    const [open, setOpen] = useState(false);\n    const [variantProps, localProps] = selectRecipe.splitVariantProps(rest);\n    const recipeClassNames = selectRecipe(variantProps);\n    const { size } = rest;\n\n    return (\n        <AriaSelect\n            {...localProps}\n            isOpen={open}\n            onOpenChange={setOpen}\n            className={cx('group', recipeClassNames.root, className)}>\n            <SelectVariantContext.Provider value={variantProps}>\n                <Label size={size} className={cx(recipeClassNames.label, labelClassName)}>\n                    {label}\n                </Label>\n                <SelectButton className={buttonClassName} {...variantProps}>\n                    <SelectValue />\n                </SelectButton>\n                <Description\n                    size={size}\n                    className={cx(recipeClassNames.description, descriptionClassName)}>\n                    {description}\n                </Description>\n                <FieldError size={size} className={cx(recipeClassNames.error, errorClassName)}>\n                    {errorMessage}\n                </FieldError>\n                <SelectPopover\n                    {...variantProps}\n                    placement={popoverPlacement}\n                    offset={0}\n                    className={popoverClassName}>\n                    <SelectListBox\n                        {...variantProps}\n                        className={cx(recipeClassNames.listBox)}\n                        items={items}>\n                        {children}\n                        {items?.map((item) => (\n                            <SelectListBoxItem\n                                key={item.id}\n                                {...variantProps}\n                                text={item.name}\n                                id={item.id}\n                                className={listBoxItemClassName}\n                            />\n                        ))}\n                    </SelectListBox>\n                </SelectPopover>\n            </SelectVariantContext.Provider>\n        </AriaSelect>\n    );\n}\n\nexport { Select };\nexport type { SelectProps };\n","import { Header as AriaHeader } from 'react-aria-components';\n\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { cx } from '@/utils/cx';\n\nimport selectRecipe, { SelectRecipeProps } from '@/components/select/select.styles';\nimport focusRing from '@/components/shared/focusRing.styles';\n\ntype SelectListBoxHeaderProps = {\n    className?: string;\n} & SelectRecipeProps;\n\nconst SelectListBoxHeader = ({ className, ...rest }: SelectListBoxHeaderProps) => {\n    const [variantProps, localProps] = selectRecipe.splitVariantProps(rest);\n    // `raw` receipe is required to be able to merge css objects (used in focus ring)\n    const recipeClassNames = selectRecipe.raw(variantProps);\n    return (\n        <AriaHeader\n            {...localProps}\n            // we need to wrap the `raw` focusRing and `raw` recipeClassNames.thumb in `css()` to merge them\n            // there is no garauntee which class will take precidence\n            className={cx(css(recipeClassNames.listBoxHeader, focusRing), className)}\n        />\n    );\n};\n\nexport { SelectListBoxHeader, SelectListBoxHeader as default };\nexport type { SelectListBoxHeaderProps };\n","import {\n    ListBoxSection as AriaListBoxSection,\n    ListBoxSectionProps as AriaListBoxSectionProps,\n} from 'react-aria-components';\n\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { cx } from '@/utils/cx';\n\nimport selectRecipe, { SelectRecipeProps } from '@/components/select/select.styles';\nimport focusRing from '@/components/shared/focusRing.styles';\n\ntype SelectListBoxSectionProps = {\n    className?: string;\n} & AriaListBoxSectionProps<HTMLDivElement> &\n    SelectRecipeProps;\n\nconst SelectListBoxSection = ({ className, ...rest }: SelectListBoxSectionProps) => {\n    const [variantProps, localProps] = selectRecipe.splitVariantProps(rest);\n    // `raw` receipe is required to be able to merge css objects (used in focus ring)\n    const recipeClassNames = selectRecipe.raw(variantProps);\n    return (\n        <AriaListBoxSection\n            {...localProps}\n            // we need to wrap the `raw` focusRing and `raw` recipeClassNames.thumb in `css()` to merge them\n            // there is no garauntee which class will take precidence\n            className={cx(css(recipeClassNames.listBoxSection, focusRing), className)}\n        />\n    );\n};\n\nexport { SelectListBoxSection, SelectListBoxSection as default };\nexport type { SelectListBoxSectionProps };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\n/**\n *  The <input type=\"range\"> HTML element can be used to build a slider, however it is very\n *  difficult to style cross browser. Slider helps achieve accessible sliders that can be styled as\n *  needed.\n *\n *  See: https://react-spectrum.adobe.com/react-aria/Slider.html\n */\n\nconst sliderRecipe = sva({\n    slots: [\n        'root',\n        'label',\n        'output',\n        'control',\n        'track',\n        'indicator',\n        'thumb',\n        'description',\n        'error',\n    ],\n    base: {\n        root: {\n            display: 'grid',\n            gridTemplateColumns: '[1fr auto]',\n        },\n        // This is the <label> for the slider, Label component has default styles\n        label: {},\n        // this is the value (for the slider)\n        output: {\n            color: 'text',\n        },\n        control: {\n            gridColumn: '[1 / -1]',\n            display: 'flex',\n            alignItems: 'center',\n            cursor: 'pointer',\n            _disabled: {\n                colorPalette: 'elements.disabled',\n                cursor: 'not-allowed',\n            },\n            _componentReadOnly: {\n                cursor: 'default',\n                pointerEvents: 'none',\n            },\n        },\n        track: {\n            position: 'relative',\n            borderRadius: 'full',\n\n            // all variants have the same track color, so we don't use `colorPalette`\n            backgroundColor: 'background.opacity-10',\n        },\n        indicator: {\n            borderRadius: 'full',\n            backgroundColor: 'colorPalette.stroke',\n\n            _groupHoverNotDisabledNotSelected: {\n                backgroundColor: 'colorPalette.hovered.stroke',\n            },\n            _groupDragging: {\n                backgroundColor: 'colorPalette.hovered.stroke',\n            },\n        },\n        thumb: {\n            boxSizing: 'border-box',\n            borderRadius: 'full',\n            width: 'var(--slider-control-size)',\n            aspectRatio: '1',\n\n            backgroundColor: 'colorPalette.fill',\n            _hover: {\n                backgroundColor: 'colorPalette.hovered.fill',\n            },\n            // dragging has the same styling as hover\n            _dragging: {\n                backgroundColor: 'colorPalette.hovered.fill',\n            },\n        },\n        description: {},\n        error: {},\n    },\n    variants: {\n        color: {\n            default: {\n                control: {\n                    colorPalette: 'elements.default',\n                },\n            },\n            primary: {\n                control: {\n                    colorPalette: 'elements.primary',\n                },\n            },\n            secondary: {\n                control: {\n                    colorPalette: 'elements.secondary',\n                },\n            },\n            tertiary: {\n                control: {\n                    colorPalette: 'elements.tertiary',\n                },\n            },\n        },\n        size: {\n            small: {\n                root: {\n                    '--slider-control-size': '[0.75rem]',\n                    '--slider-track-size': '[0.25rem]',\n                },\n            },\n            medium: {\n                root: {\n                    '--slider-control-size': '[0.875rem]',\n                    '--slider-track-size': '[0.25rem]',\n                },\n            },\n            large: {\n                root: {\n                    '--slider-control-size': '[1.25rem]',\n                    '--slider-track-size': '[0.375rem]',\n                },\n            },\n        },\n        orientation: {\n            horizontal: {\n                root: {\n                    width: '[100%]',\n                },\n                output: {},\n                control: {\n                    height: 'var(--slider-control-size)',\n                    width: '[100%]',\n                },\n                track: {\n                    height: 'var(--slider-track-size)',\n                    width: '[100%]',\n                },\n                indicator: {\n                    top: '[0]',\n                    height: '[100%]',\n                },\n                thumb: {\n                    top: '[50%]',\n                },\n            },\n            vertical: {\n                root: {\n                    height: '[100%]',\n                    display: 'flex',\n                    flexDirection: 'column',\n                    alignItems: 'center',\n                },\n                output: {\n                    marginBottom: '[calc(var(--slider-control-size) / 2)]',\n                },\n                control: {\n                    width: 'var(--slider-control-size)',\n                    height: '[100%]',\n                    justifyContent: 'center',\n                },\n                track: {\n                    width: 'var(--slider-track-size)',\n                    height: '[100%]',\n                },\n                indicator: {\n                    left: '[0]',\n                    width: '[100%]',\n                },\n                thumb: {\n                    left: '[50%]',\n                },\n            },\n        },\n    },\n    defaultVariants: {\n        color: 'default',\n        size: 'medium',\n        orientation: 'horizontal',\n    },\n});\n\ntype SliderRecipeProps = RecipeVariantProps<typeof sliderRecipe>;\n\nexport { sliderRecipe, sliderRecipe as default };\nexport type { SliderRecipeProps };\n","import {\n    SliderThumb as AriaSliderThumb,\n    SliderThumbProps as AriaSliderThumbProps,\n} from 'react-aria-components';\n\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { cx } from '@/utils/cx';\n\nimport sliderRecipe, { SliderRecipeProps } from '@/components/slider/slider.styles';\nimport focusRing from '@/components/shared/focusRing.styles';\n\ntype SliderThumbProps = {\n    label?: string;\n    className?: string;\n} & AriaSliderThumbProps &\n    SliderRecipeProps;\n\nconst SliderThumb = ({ className, ...rest }: SliderThumbProps) => {\n    const [variantProps, localProps] = sliderRecipe.splitVariantProps(rest);\n    // `raw` receipe is required to be able to merge css objects (used in focus ring)\n    const recipeClassNames = sliderRecipe.raw(variantProps);\n    return (\n        <AriaSliderThumb\n            {...localProps}\n            // we need to wrap the `raw` focusRing and `raw` recipeClassNames.thumb in `css()` to merge them\n            // there is no garauntee which class will take precidence\n            className={cx(css(recipeClassNames.thumb, focusRing), className)}\n        />\n    );\n};\n\nexport { SliderThumb, SliderThumb as default };\nexport type { SliderThumbProps };\n","import {\n    SliderTrack as AriaSliderTrack,\n    SliderTrackProps as AriaSliderTrackProps,\n    SliderTrackRenderProps as AriaSliderTrackRenderProps,\n} from 'react-aria-components';\n\nimport { type ReactNode } from 'react';\n\nimport { cx } from '@/utils/cx';\n\nimport sliderRecipe, { SliderRecipeProps } from '@/components/slider/slider.styles';\n\ntype SliderTrackProps = {\n    className?: string;\n    trackClassName?: string;\n    indicatorClassName?: string;\n    children: (d: AriaSliderTrackRenderProps) => ReactNode;\n} & AriaSliderTrackProps &\n    SliderRecipeProps;\n\nconst SliderTrack = ({\n    className,\n    trackClassName,\n    indicatorClassName,\n    children,\n    ...rest\n}: SliderTrackProps) => {\n    const [variantProps, localProps] = sliderRecipe.splitVariantProps(rest);\n    const recipeClassNames = sliderRecipe(variantProps);\n    return (\n        <AriaSliderTrack\n            {...localProps}\n            className={cx('group', recipeClassNames.control, className)}>\n            {(renderProps: AriaSliderTrackRenderProps) => (\n                // if children isn't a function, your sort of SOL with renderProps\n                // the default implementation passes a funciton and renders\n                // an indicator and a thumb for each state value\n                <div className={cx(recipeClassNames.track, trackClassName)}>\n                    {typeof children === 'function' ? children(renderProps) : children}\n                </div>\n            )}\n        </AriaSliderTrack>\n    );\n};\n\nexport { SliderTrack, SliderTrack as default };\nexport type { SliderTrackProps };\n","import {\n    SliderOutput as AriaSliderOutput,\n    SliderOutputProps as AriaSliderOutputProps,\n    SliderRenderProps as AriaSliderRenderProps,\n} from 'react-aria-components';\n\nimport { type ReactNode } from 'react';\n\nimport { cx } from '@/utils/cx';\n\nimport sliderRecipe, { SliderRecipeProps } from '@/components/slider/slider.styles';\n\ntype SliderOutputProps = {\n    className?: string;\n    children: (d: AriaSliderRenderProps) => ReactNode;\n} & AriaSliderOutputProps &\n    SliderRecipeProps;\n\nconst SliderOutput = ({ className, children, ...rest }: SliderOutputProps) => {\n    const [variantProps, localProps] = sliderRecipe.splitVariantProps(rest);\n    const recipeClassNames = sliderRecipe(variantProps);\n    return (\n        <AriaSliderOutput {...localProps} className={cx(recipeClassNames.output, className)}>\n            {children}\n        </AriaSliderOutput>\n    );\n};\n\nexport { SliderOutput, SliderOutput as default };\nexport type { SliderOutputProps };\n","import { Slider as AriaSlider, SliderProps as AriaSliderProps } from 'react-aria-components';\n\nimport { cx } from '@/utils/cx';\n\nimport sliderRecipe, { SliderRecipeProps } from '@/components/slider/slider.styles';\n\ntype SliderBaseProps<T> = {\n    className?: string;\n} & AriaSliderProps<T> &\n    SliderRecipeProps;\n\nconst SliderBase = <T extends number | number[]>({\n    className,\n    children,\n    ...rest\n}: SliderBaseProps<T>) => {\n    const [variantProps, localProps] = sliderRecipe.splitVariantProps(rest);\n    const recipeClassNames = sliderRecipe(variantProps);\n    // Slider needs variant prop for orientation also, so we pass it to the AriaSlider component\n    const localPropsWithOrientation = { ...localProps, orientation: variantProps.orientation };\n    return (\n        <AriaSlider {...localPropsWithOrientation} className={cx(recipeClassNames.root, className)}>\n            {children}\n        </AriaSlider>\n    );\n};\n\nexport { SliderBase, SliderBase as default };\nexport type { SliderBaseProps };\n","import { SliderTrackRenderProps as AriaSliderTrackRenderProps } from 'react-aria-components';\n\nimport { type CSSProperties } from 'react';\n\nimport { cx } from '@/utils/cx';\n\nimport { type SliderRecipeProps, sliderRecipe } from './slider.styles';\n\ntype SliderTrackIndicatorProps = {\n    className?: string;\n} & Pick<AriaSliderTrackRenderProps, 'orientation' | 'state'> &\n    SliderRecipeProps;\n\nconst SliderTrackIndicator = ({ state, className, ...variantProps }: SliderTrackIndicatorProps) => {\n    const { values } = state;\n    const { orientation } = variantProps;\n    const recipeClassNames = sliderRecipe(variantProps);\n\n    const style: CSSProperties = {\n        position: 'absolute',\n    };\n    let minValue = 0;\n    const maxValue = state.getThumbPercent(state.values.length - 1);\n\n    if (values.length > 1) {\n        minValue = state.getThumbPercent(0);\n    }\n\n    if (orientation === 'vertical') {\n        style.top = `${(1 - maxValue) * 100}%`;\n        style.bottom = `${minValue * 100}%`;\n    } else {\n        style.left = `${minValue * 100}%`;\n        style.right = `${(1 - maxValue) * 100}%`;\n    }\n\n    return <div style={style} className={cx(recipeClassNames.indicator, className)} />;\n};\n\nexport { SliderTrackIndicator, SliderTrackIndicator as default };\nexport type { SliderTrackIndicatorProps };\n","import {\n    SliderTrackRenderProps as AriaSliderTrackRenderProps,\n    SliderRenderProps as AriaSliderRenderProps,\n} from 'react-aria-components';\n\nimport { cx } from '@/utils/cx';\n\nimport { Label } from '../field/label/Label';\nimport sliderRecipe, { SliderRecipeProps } from '@/components/slider/slider.styles';\nimport SliderThumb from './SliderThumb';\nimport SliderTrack from './SliderTrack';\nimport SliderOutput from './SliderOutput';\nimport SliderBase, { SliderBaseProps } from './SliderBase';\nimport SliderTrackIndicator from './SliderTrackIndicator';\nimport { Description } from '../field/description/Description';\nimport { FieldError } from '../field/fieldError/FieldError';\n\n/**\n *  The <input type=\"range\"> HTML element can be used to build a slider, however it is very\n *  difficult to style cross browser. Slider helps achieve accessible sliders that can be styled as\n *  needed.\n *\n *  See: https://react-spectrum.adobe.com/react-aria/Slider.html\n */\n\ntype SliderProps<T> = {\n    label?: string;\n    thumbLabels?: string[];\n    description?: string;\n    errorMessage?: string;\n    className?: string;\n    labelClassName?: string;\n    outputClassName?: string;\n    controlClassName?: string;\n    trackClassName?: string;\n    indicatorClassName?: string;\n    thumbClassName?: string;\n    descriptionClassName?: string;\n    errorClassName?: string;\n} & SliderBaseProps<T> &\n    SliderRecipeProps;\n\nconst Slider = <T extends number | number[]>({\n    label,\n    thumbLabels,\n    description,\n    errorMessage,\n    className,\n    labelClassName,\n    outputClassName,\n    controlClassName,\n    trackClassName,\n    indicatorClassName,\n    thumbClassName,\n    descriptionClassName,\n    errorClassName,\n    ...props\n}: SliderProps<T>) => {\n    const [variantProps] = sliderRecipe.splitVariantProps(props);\n    const recipeClassNames = sliderRecipe(variantProps);\n    const { size } = props;\n\n    return (\n        <SliderBase {...props} className={className}>\n            <Label size={size} className={cx(recipeClassNames.label, labelClassName)}>\n                {label}\n            </Label>\n            <SliderOutput {...variantProps} className={outputClassName}>\n                {({ state }: AriaSliderRenderProps) =>\n                    state.values.map((_, i) => state.getThumbValueLabel(i)).join(' – ')\n                }\n            </SliderOutput>\n            <SliderTrack\n                {...variantProps}\n                className={controlClassName}\n                trackClassName={trackClassName}>\n                {({ orientation, state }: AriaSliderTrackRenderProps) => (\n                    <>\n                        <SliderTrackIndicator\n                            {...variantProps}\n                            orientation={orientation}\n                            state={state}\n                            className={indicatorClassName}\n                        />\n                        {state.values.map((_, i) => {\n                            return (\n                                <SliderThumb\n                                    key={i}\n                                    {...variantProps}\n                                    index={i}\n                                    aria-label={thumbLabels?.[i]}\n                                    className={thumbClassName}\n                                />\n                            );\n                        })}\n                    </>\n                )}\n            </SliderTrack>\n            <Description\n                size={size}\n                className={cx(recipeClassNames.description, descriptionClassName)}>\n                {description}\n            </Description>\n            <FieldError size={size} className={cx(recipeClassNames.error, errorClassName)}>\n                {errorMessage}\n            </FieldError>\n        </SliderBase>\n    );\n};\n\nexport { Slider, Slider as default };\nexport type { SliderProps };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\nconst snackbarRecipe = sva({\n    slots: ['root', 'message', 'action', 'exit'],\n    base: {\n        root: {\n            padding: '[16px 16px 16px 24px]',\n            display: 'flex',\n            width: '[100%]',\n            alignItems: 'center',\n            justifyContent: 'space-between',\n            whiteSpace: 'nowrap',\n            overflow: 'hidden',\n            textOverflow: 'ellipsis',\n            animation: 'fadeIn 250ms ease-out forwards',\n        },\n        message: {},\n        action: {\n            marginLeft: 'auto',\n            display: 'flex',\n            alignItems: 'center',\n            gap: '[8px]',\n        },\n        exit: {\n            background: '[none]',\n            cursor: 'pointer',\n            border: 'none',\n            padding: '[5px]',\n        },\n    },\n    variants: {\n        variant: {\n            default: {\n                root: {\n                    backgroundColor: 'extra-dark-teal.100',\n                    color: 'text.reversed',\n                    _dark: {\n                        backgroundColor: 'cream.100',\n                        color: 'text',\n                    },\n                },\n                message: {\n                    color: 'cream.100',\n                    _dark: {\n                        color: 'text.reversed',\n                    },\n                },\n                action: {\n                    color: 'links.reversed',\n                },\n                exit: {\n                    color: 'text',\n                    _hover: {\n                        backgroundColor: 'background.opacity-10',\n                    },\n                },\n            },\n            confirmation: {\n                root: {\n                    backgroundColor: 'elements.confirmation.fill',\n                    color: 'elements.confirmation.contrast-reversed',\n                },\n                action: {},\n                exit: {\n                    _hover: {\n                        backgroundColor: 'elements.confirmation.contrast',\n                    },\n                },\n            },\n            error: {\n                root: {\n                    backgroundColor: 'elements.error.fill',\n                    color: 'elements.error.contrast',\n                },\n                action: {},\n                exit: {\n                    _hover: {\n                        backgroundColor: 'elements.error.contrast',\n                    },\n                },\n            },\n        },\n        shape: {\n            rounded: {\n                root: {\n                    borderRadius: 'full',\n                },\n            },\n            square: {\n                root: {\n                    borderRadius: 'sm',\n                },\n            },\n        },\n    },\n    defaultVariants: {\n        variant: 'default',\n        shape: 'square',\n    },\n});\n\ntype SnackbarRecipeProps = RecipeVariantProps<typeof snackbarRecipe>;\n\nexport { snackbarRecipe, snackbarRecipe as default };\nexport type { SnackbarRecipeProps };\n","import { css } from '@allenai/varnish-panda-runtime/css';\nimport { useEffect, type ReactNode } from 'react';\n\nimport { Button as AriaButton } from 'react-aria-components';\n\nimport { cx } from '@/utils/cx';\n\nimport snackbarRecipe, { SnackbarRecipeProps } from './snackbar.styles';\nimport { Icons } from '@/index';\n\ntype SnackbarProps = {\n    action?: ReactNode;\n    actionClassName?: string;\n    ariaLabel?: string;\n    autoHideDuration?: number;\n    className?: string;\n    exitClassName?: string;\n    index?: number;\n    id?: string;\n    messageClassName?: string;\n    onClose?: () => void;\n    variant?: 'default' | 'confirmation' | 'error';\n    message: string;\n    open: boolean;\n} & SnackbarRecipeProps;\n\nfunction Snackbar({\n    message,\n    variant = 'default',\n    autoHideDuration = 5000,\n    className,\n    action,\n    actionClassName,\n    messageClassName,\n    open,\n    onClose,\n    index,\n    id,\n    exitClassName,\n    ariaLabel,\n    ...rest\n}: SnackbarProps) {\n    const [variantProps, localProps] = snackbarRecipe.splitVariantProps(rest);\n\n    const recipeClassNames = snackbarRecipe.raw({\n        ...variantProps,\n        variant,\n    });\n\n    useEffect(() => {\n        if (open && autoHideDuration && onClose !== undefined) {\n            const timer = setTimeout(() => {\n                onClose();\n            }, autoHideDuration);\n            return () => {\n                clearTimeout(timer);\n            };\n        }\n    }, [open, autoHideDuration, onClose]);\n\n    return open ? (\n        <div\n            className={cx(css(recipeClassNames.root), className)}\n            {...localProps}\n            aria-label={ariaLabel}\n            id={id}>\n            <span className={cx(css(recipeClassNames.message), messageClassName)}>{message}</span>\n            {action !== undefined ? (\n                <div className={cx(css(recipeClassNames.action), actionClassName)}>\n                    {action}\n                    <AriaButton\n                        slot=\"remove\"\n                        className={cx(css(recipeClassNames.exit), exitClassName)}>\n                        <Icons.Close size=\"medium\" />\n                    </AriaButton>\n                </div>\n            ) : (\n                <>\n                    <AriaButton\n                        slot=\"remove\"\n                        className={cx(css(recipeClassNames.exit), exitClassName)}>\n                        <Icons.Close size=\"medium\" />\n                    </AriaButton>\n                </>\n            )}\n        </div>\n    ) : null;\n}\n\nexport { Snackbar, Snackbar as default };\nexport type { SnackbarProps };\n","import { createContext, useContext, useState, ReactNode, useCallback } from 'react';\n\nimport { SnackbarProps } from './Snackbar';\n\ntype AnchorOrigin =\n    | 'topLeft'\n    | 'topCenter'\n    | 'topRight'\n    | 'bottomLeft'\n    | 'bottomCenter'\n    | 'bottomRight';\ninterface SnackbarNotification extends SnackbarProps {\n    id: string;\n}\n\ninterface SnackbarNotificationContextProps {\n    snackbarNotifications: { [key in AnchorOrigin]: SnackbarNotification[] };\n    addSnackbarNotification: (\n        anchorOrigin: AnchorOrigin,\n        snackbarNotification: Omit<SnackbarNotification, 'id'>\n    ) => void;\n    removeSnackbarNotification: (anchorOrigin: AnchorOrigin, id: string) => void;\n    clearAllSnackbarNotification: (anchorOrigin: AnchorOrigin) => void;\n}\n\nconst SnackbarNotificationContext = createContext<SnackbarNotificationContextProps | undefined>(\n    undefined\n);\n\nconst SnackbarNotificationProvider = ({\n    children,\n    maxStack = 4, // Default max stack limit\n}: {\n    children: ReactNode;\n    maxStack?: number;\n}) => {\n    const [snackbarNotifications, setSnackbarNotifications] = useState<{\n        [key in AnchorOrigin]: SnackbarNotification[];\n    }>({\n        topLeft: [],\n        topCenter: [],\n        topRight: [],\n        bottomLeft: [],\n        bottomCenter: [],\n        bottomRight: [],\n    });\n\n    const removeSnackbarNotification = useCallback((anchorOrigin: AnchorOrigin, id: string) => {\n        setSnackbarNotifications((prev) => ({\n            ...prev,\n            [anchorOrigin]: prev[anchorOrigin].filter((notification) => notification.id !== id),\n        }));\n    }, []);\n\n    const addSnackbarNotification = useCallback(\n        (anchorOrigin: AnchorOrigin, snackbarNotification: Omit<SnackbarNotification, 'id'>) => {\n            const id = crypto.randomUUID();\n            const newSnackbarNotification = { id, ...snackbarNotification };\n\n            setSnackbarNotifications((prev) => {\n                const updatedSnackbarNotifications = [\n                    ...prev[anchorOrigin],\n                    newSnackbarNotification,\n                ];\n                return {\n                    ...prev,\n                    [anchorOrigin]:\n                        updatedSnackbarNotifications.length > maxStack\n                            ? updatedSnackbarNotifications.slice(1)\n                            : updatedSnackbarNotifications,\n                };\n            });\n\n            if (snackbarNotification.autoHideDuration !== undefined) {\n                setTimeout(() => {\n                    removeSnackbarNotification(anchorOrigin, id);\n                }, snackbarNotification.autoHideDuration);\n            }\n        },\n        [maxStack, removeSnackbarNotification]\n    );\n\n    const clearAllSnackbarNotification = useCallback(() => {\n        setSnackbarNotifications({\n            topLeft: [],\n            topCenter: [],\n            topRight: [],\n            bottomLeft: [],\n            bottomCenter: [],\n            bottomRight: [],\n        });\n    }, []);\n\n    return (\n        <SnackbarNotificationContext.Provider\n            value={{\n                snackbarNotifications,\n                addSnackbarNotification,\n                removeSnackbarNotification,\n                clearAllSnackbarNotification,\n            }}>\n            {children}\n        </SnackbarNotificationContext.Provider>\n    );\n};\n\nconst useSnackbarNotification = () => {\n    const context = useContext(SnackbarNotificationContext);\n    if (context === undefined)\n        throw new Error(\n            'useSnackbarNotification must be used within a SnackbarNotificationContext'\n        );\n    return context;\n};\n\nexport { SnackbarNotificationProvider, useSnackbarNotification };\nexport { AnchorOrigin };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\nconst snackbarListRecipe = sva({\n    slots: ['root'],\n    base: {\n        root: {\n            position: 'fixed',\n            display: 'flex',\n            flexDirection: 'column-reverse',\n            gap: '[1rem]',\n            zIndex: '[snackbar]',\n        },\n    },\n    variants: {\n        anchorOrigin: {\n            topLeft: {\n                root: {\n                    top: '[1rem]',\n                    left: '[1rem]',\n                },\n            },\n            topCenter: {\n                root: {\n                    top: '[1rem]',\n                    left: '[50%]',\n                    transform: 'translateX(-50%)',\n                },\n            },\n            topRight: {\n                root: {\n                    top: '[1rem]',\n                    right: '[1rem]',\n                },\n            },\n            bottomLeft: {\n                root: {\n                    bottom: '[1rem]',\n                    left: '[1rem]',\n                },\n            },\n            bottomCenter: {\n                root: {\n                    bottom: '[1rem]',\n                    left: '[50%]',\n                    transform: 'translateX(-50%)',\n                },\n            },\n            bottomRight: {\n                root: {\n                    bottom: '[1rem]',\n                    right: '[1rem]',\n                },\n            },\n        },\n    },\n    defaultVariants: {\n        anchorOrigin: 'bottomLeft',\n    },\n});\n\ntype SnackbarListRecipeProps = RecipeVariantProps<typeof snackbarListRecipe>;\n\nexport { snackbarListRecipe, snackbarListRecipe as default };\nexport type { SnackbarListRecipeProps };\n","import { css } from '@allenai/varnish-panda-runtime/css';\nimport { createPortal } from 'react-dom';\n\nimport { cx } from '@/utils/cx';\n\nimport { AnchorOrigin, useSnackbarNotification } from './SnackbarContext';\nimport snackbarListRecipe, { SnackbarListRecipeProps } from './snackbarList.styles';\nimport Snackbar from './Snackbar';\n\ntype SnackbarListProps = {\n    className?: string;\n    anchorOrigin: AnchorOrigin;\n    ariaLabel?: string;\n} & SnackbarListRecipeProps;\n\nfunction SnackbarList({ className, ariaLabel, anchorOrigin, ...rest }: SnackbarListProps) {\n    const { snackbarNotifications, removeSnackbarNotification } = useSnackbarNotification();\n\n    const notificationsForAnchor = snackbarNotifications[anchorOrigin];\n\n    const [variantProps, localProps] = snackbarListRecipe.splitVariantProps(rest);\n    const recipeClassNames = snackbarListRecipe.raw({\n        ...variantProps,\n        anchorOrigin,\n    });\n\n    const content = (\n        <div\n            {...localProps}\n            className={cx(css(recipeClassNames.root), className)}\n            aria-label={ariaLabel}>\n            {notificationsForAnchor.map((notification, index) => (\n                <Snackbar\n                    key={notification.id}\n                    {...notification}\n                    open\n                    index={index}\n                    onClose={() => {\n                        removeSnackbarNotification(anchorOrigin, notification.id);\n                    }}\n                />\n            ))}\n        </div>\n    );\n\n    return createPortal(content, document.body);\n}\n\nexport { SnackbarList, SnackbarList as default };\nexport type { SnackbarListProps };\n","import { cva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps, SystemStyleObject } from '@allenai/varnish-panda-runtime/types';\n\n/**\n *  The Stack component organizes its immediate children along either the vertical or horizontal\n *  axis, allowing for customizable spacing and optional dividers between each child.\n */\n\n/*\nreturns: {\n    0: { gap: \"[0px]\" },\n    1: { gap: \"[1px]\" },\n    ...,\n    {max}: { gap: \"[{max}px]\" }\n}\n*/\nconst generateSpacing = (max: number): Record<number, SystemStyleObject> => {\n    const spacing: Record<number, SystemStyleObject> = {};\n    for (let i = 0; i <= max; i++) {\n        spacing[i] = { gap: `[${i}px]` };\n    }\n    return spacing;\n};\n\nconst stackRecipe = cva({\n    base: {\n        display: 'flex',\n        flexDirection: 'column',\n        alignItems: 'flex-start',\n        justifyContent: 'flex-start',\n        gap: '0',\n    },\n    variants: {\n        direction: {\n            row: {\n                flexDirection: 'row',\n            },\n            column: {\n                flexDirection: 'column',\n            },\n        },\n        align: {\n            start: { alignItems: 'flex-start' },\n            center: { alignItems: 'center' },\n            end: { alignItems: 'flex-end' },\n            stretch: { alignItems: 'stretch' },\n        },\n        justify: {\n            start: { justifyContent: 'flex-start' },\n            center: { justifyContent: 'center' },\n            end: { justifyContent: 'flex-end' },\n            between: { justifyContent: 'space-between' },\n            around: { justifyContent: 'space-around' },\n            evenly: { justifyContent: 'space-evenly' },\n        },\n        fullWidth: {\n            true: {\n                width: '[100%]',\n            },\n        },\n        spacing: generateSpacing(100),\n    },\n    defaultVariants: {\n        direction: 'column',\n        align: 'start',\n        justify: 'start',\n        spacing: 0,\n    },\n});\n\ntype StackRecipeProps = RecipeVariantProps<typeof stackRecipe>;\n\nexport { stackRecipe, stackRecipe as default };\nexport type { StackRecipeProps };\n","import { type PropsWithChildren, type HTMLProps } from 'react';\n\nimport { cx } from '@/utils/cx';\n\nimport stackRecipe, { StackRecipeProps } from '@/components/stack/stack.styles';\n\n/**\n * The Stack component organizes its immediate children along either the vertical or horizontal\n * axis, allowing for customizable spacing and optional dividers between each child.\n */\n\ntype StackProps = {\n    className?: string;\n} & StackRecipeProps &\n    HTMLProps<HTMLDivElement>;\n\nconst Stack = ({ className, children, ...rest }: PropsWithChildren<StackProps>) => {\n    const [variantProps, localProps] = stackRecipe.splitVariantProps(rest);\n    return (\n        <div className={cx(stackRecipe(variantProps), className)} {...localProps}>\n            {children}\n        </div>\n    );\n};\n\nexport { Stack, Stack as default };\nexport type { StackProps };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\n/**\n *  There is no native HTML element with switch styling. <input type=\"checkbox\"> is the closest\n *  semantically, but isn't styled or exposed to assistive technology as a switch. Switch helps\n *  achieve accessible switches that can be styled as needed.\n *\n *  See: https://react-spectrum.adobe.com/react-aria/Switch.html\n */\nconst switchRecipe = sva({\n    className: 'switch-recipe',\n    slots: ['root', 'label', 'track', 'thumb', 'description', 'error', 'contentContainer'],\n    base: {\n        root: {\n            display: 'flex',\n            flexDirection: 'column',\n            cursor: 'pointer',\n            color: 'text',\n\n            colorPalette: 'elements.overrides.form.switch',\n            _disabled: {\n                cursor: 'not-allowed',\n                colorPalette: 'elements.overrides.form.switch.disabled',\n            },\n            _componentReadOnly: {\n                cursor: 'default',\n                pointerEvents: 'none',\n            },\n        },\n        contentContainer: {\n            display: 'flex',\n            gap: '[8px]',\n            alignItems: 'center',\n        },\n        label: {},\n        track: {\n            boxSizing: 'border-box',\n            position: 'relative',\n            flexShrink: '0',\n            display: 'flex',\n            alignItems: 'center',\n            padding: '[1px]',\n            borderRadius: 'full',\n            border: '1px solid',\n            borderColor: 'colorPalette.stroke',\n            backgroundColor: 'colorPalette.fill',\n\n            _groupSelected: {\n                borderColor: 'transparent',\n            },\n\n            // Switch only has hover for un-selected enabled state\n            _groupHoverNotDisabledNotSelected: {\n                borderColor: 'colorPalette.hovered.stroke',\n            },\n        },\n        thumb: {\n            boxSizing: 'border-box',\n            position: 'absolute',\n            display: 'block',\n            aspectRatio: '1',\n            borderRadius: 'full',\n            transition: '[right 0.2s ease-in-out]',\n\n            backgroundColor: 'colorPalette.stroke',\n\n            _groupSelected: {\n                right: '[1px]', // position thumb when selected\n                backgroundColor: 'colorPalette.contrast',\n            },\n\n            // Switch only has hover for un-selected enabled state\n            _groupHoverNotDisabledNotSelected: {\n                backgroundColor: 'colorPalette.hovered.stroke',\n            },\n        },\n        description: {},\n        error: {},\n    },\n    variants: {\n        size: {\n            small: {\n                root: {\n                    fontSize: '[12px]',\n                },\n                track: {\n                    width: '[1.375rem]',\n                    height: '[0.75rem]',\n                },\n                thumb: {\n                    width: '[0.5rem]',\n                    // 100% - width - padding\n                    right: '[calc(100% - 0.5rem - 1px)]',\n                },\n            },\n            medium: {\n                root: {\n                    fontSize: 'sm',\n                },\n                track: {\n                    width: '[1.625rem]',\n                    height: '[0.875rem]',\n                },\n                thumb: {\n                    width: '[0.625rem]',\n                    // 100% - width - padding\n                    right: '[calc(100% - 0.625rem - 1px)]',\n                },\n            },\n            large: {\n                root: {\n                    fontSize: 'md',\n                },\n                track: {\n                    width: '[2.3125rem]',\n                    height: '[1.25rem]',\n                },\n                thumb: {\n                    width: '[0.875rem]',\n                    // 100% - width - padding\n                    right: '[calc(100% - 0.875rem - 2px)]',\n                    _groupSelected: {\n                        right: '[2px]',\n                    },\n                },\n            },\n        },\n        color: {\n            default: {\n                root: {\n                    _selected: {\n                        _notDisabled: {\n                            colorPalette: 'elements.overrides.form.switch.checked',\n                        },\n                    },\n                },\n            },\n            primary: {\n                root: {\n                    _selected: {\n                        _notDisabled: {\n                            colorPalette: 'elements.primary',\n                        },\n                    },\n                },\n            },\n            secondary: {\n                root: {\n                    _selected: {\n                        _notDisabled: {\n                            colorPalette: 'elements.secondary',\n                        },\n                    },\n                },\n            },\n            tertiary: {\n                root: {\n                    _selected: {\n                        _notDisabled: {\n                            colorPalette: 'elements.tertiary',\n                        },\n                    },\n                },\n            },\n        },\n    },\n    defaultVariants: {\n        size: 'medium',\n        color: 'primary',\n    },\n});\n\ntype SwitchRecipeProps = RecipeVariantProps<typeof switchRecipe>;\n\nexport { switchRecipe, switchRecipe as default };\nexport type { SwitchRecipeProps };\n","import { Switch as AriaSwitch } from 'react-aria-components';\nimport type { SwitchProps as AriaSwitchProps } from 'react-aria-components';\n\nimport { type ReactNode } from 'react';\n\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { cx } from '@/utils/cx';\n\nimport { groupFocusRing } from '../shared/focusRing.styles';\nimport switchRecipe, { SwitchRecipeProps } from '@/components/switch/switch.styles';\nimport { FieldError } from '../field/fieldError/FieldError';\nimport { Description } from '../field/description/Description';\nimport { Label } from '@/components/field/label/Label';\n\n/**\n *  There is no native HTML element with switch styling. <input type=\"checkbox\"> is the closest\n *  semantically, but isn't styled or exposed to assistive technology as a switch. Switch helps\n *  achieve accessible switches that can be styled as needed.\n *\n *  See: https://react-spectrum.adobe.com/react-aria/Switch.html\n */\n\ntype SwitchProps = {\n    children?: ReactNode;\n    label?: string;\n    description?: string;\n    errorMessage?: string;\n    className?: string;\n    trackClassName?: string;\n    thumbClassName?: string;\n    errorClassName?: string;\n    labelClassName?: string;\n    descriptionClassName?: string;\n    contentContainerClassName?: string;\n} & AriaSwitchProps &\n    SwitchRecipeProps;\n\nconst Switch = ({\n    children,\n    label,\n    description,\n    errorMessage,\n    className,\n    trackClassName,\n    thumbClassName,\n    errorClassName,\n    labelClassName,\n    descriptionClassName,\n    contentContainerClassName,\n    ...rest\n}: SwitchProps) => {\n    const [variantProps, localProps] = switchRecipe.splitVariantProps(rest);\n    const recipeClassNames = switchRecipe(variantProps);\n    const { size } = rest;\n\n    return (\n        <AriaSwitch className={cx('group', recipeClassNames.root, className)} {...localProps}>\n            <Label size={size} className={cx(recipeClassNames.label, labelClassName)}>\n                {label}\n            </Label>\n            <div className={cx(recipeClassNames.contentContainer, contentContainerClassName)}>\n                <div className={cx(css(groupFocusRing), recipeClassNames.track, trackClassName)}>\n                    <div className={cx(recipeClassNames.thumb, thumbClassName)} />\n                </div>\n                {children}\n            </div>\n            <Description\n                size={size}\n                className={cx(recipeClassNames.description, descriptionClassName)}>\n                {description}\n            </Description>\n            <FieldError size={size} className={cx(recipeClassNames.error, errorClassName)}>\n                {errorMessage}\n            </FieldError>\n        </AriaSwitch>\n    );\n};\n\nexport { Switch, Switch as default };\nexport type { SwitchProps };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\n\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\nconst tableRecipe = sva({\n    slots: [\n        'root',\n        'tableHeader',\n        'tableBody',\n        'row',\n        'cell',\n        'column',\n        'resizableTableContainer',\n        'columnResizer',\n        'dragButton',\n        'checkbox',\n    ],\n    base: {\n        root: {\n            padding: '[4.5px]',\n            border: '1px solid',\n            borderRadius: '[6px]',\n            borderColor: 'gray.30',\n            borderSpacing: '0',\n            alignSelf: 'start',\n            wordBreak: 'break-word',\n            maxWidth: '[100%]',\n            minHeight: '[100px]',\n            forcedColorAdjust: 'none',\n        },\n        tableHeader: {\n            color: 'text',\n            whiteSpace: 'nowrap',\n            _after: {\n                content: '',\n                display: 'table-row',\n                height: '[2px]',\n            },\n            '& tr:last-child': {\n                '& th': {\n                    borderBottom: '1px solid',\n                    borderColor: 'gray.30',\n                    cursor: 'default',\n                },\n            },\n        },\n        tableBody: {\n            _empty: {\n                color: 'text',\n                _dark: {\n                    color: 'cream.100',\n                },\n                textAlign: 'center',\n                fontStyle: 'italic',\n            },\n        },\n        row: {\n            cursor: 'default',\n            position: 'relative',\n            transform: 'scale(1)',\n            color: 'text',\n            borderRadius: '[6px]',\n            _selected: {\n                color: 'cream.100',\n                backgroundColor: 'elements.tertiary.fill',\n            },\n            _disabled: {\n                color: 'text.disabled',\n            },\n            _dragging: {\n                opacity: '0.6',\n                transform: 'translateZ(0)',\n                backgroundColor: 'elements.tertiary.fill',\n                color: 'cream.100',\n            },\n            _href: {\n                cursor: 'pointer',\n            },\n        },\n        column: {\n            padding: '[4px 8px]',\n            textAlign: 'left',\n        },\n        cell: {\n            padding: '[4px 8px]',\n            textAlign: 'left',\n            transform: 'translateZ(0)',\n            '&:first-child': {\n                borderRadius: '[6px 0 0 6px]',\n            },\n            '&:last-child': {\n                borderRadius: '[0 6px 6px 0]',\n            },\n            '& img': {\n                width: '[30px]',\n                height: '[30px]',\n                objectFit: 'cover',\n                display: 'block',\n            },\n        },\n        resizableTableContainer: {\n            maxWidth: '[400px]',\n            overflow: 'auto',\n            position: 'relative',\n            '& .flex-wrapper': {\n                display: 'flex',\n                alignItems: 'center',\n            },\n            '& .column-name': {\n                flex: '1',\n                font: 'inherit',\n                textAlign: 'start',\n                overflow: 'hidden',\n                textOverflow: 'ellipsis',\n                borderColor: '[transparent]',\n            },\n\n            '& [role=\"columnheader\"], & [role=\"grid-cell\"]': {\n                whiteSpace: 'nowrap',\n                overflow: 'hidden',\n                textOverflow: 'ellipsis',\n            },\n        },\n        columnResizer: {\n            width: '[15px]',\n            backgroundColor: 'gray.60',\n            height: '[25px]',\n            flex: '[0 0 auto]',\n            touchAction: 'none',\n            boxSizing: 'border-box',\n            border: '[5px]',\n            borderStyle: 'none solid',\n            borderColor: '[transparent]',\n            backgroundClip: 'content-box',\n\n            // possible panda conditions\n            '&[data-resizable-direction=both]': {\n                cursor: 'ew-resize',\n            },\n            '&[data-resizable-direction=left]': {\n                cursor: 'e-resize',\n            },\n\n            '&[data-resizable-direction=right]': {\n                cursor: 'w-resize',\n            },\n            '&[data-resizing]': {\n                backgroundColor: '[transparent]',\n                borderColor: 'elements.tertiary.fill',\n            },\n        },\n        dragButton: {\n            border: 'none',\n            color: '[inherit]',\n        },\n        checkbox: {},\n    },\n});\n\ntype TableRecipeProps = RecipeVariantProps<typeof tableRecipe>;\n\nexport { tableRecipe, TableRecipeProps as default };\nexport type { TableRecipeProps };\n","import { PropsWithChildren, ReactNode } from 'react';\nimport {\n    TableHeader as AriaTableHeader,\n    TableHeaderProps as AriaTableHeaderProps,\n} from 'react-aria-components';\n\nimport { tableRecipe } from './table.styles';\nimport { cx } from '@/utils/cx';\n\ntype TableHeaderProps = {\n    columns: object[];\n    children?: ReactNode;\n    className?: string;\n} & AriaTableHeaderProps<object>;\n\nconst TableHeader = ({\n    columns,\n    children,\n    className,\n    ...rest\n}: PropsWithChildren<TableHeaderProps>) => {\n    const [variantProps, localProps] = tableRecipe.splitVariantProps(rest);\n    const recipeClassNames = tableRecipe(variantProps);\n\n    return (\n        <AriaTableHeader\n            {...localProps}\n            columns={columns}\n            className={cx(recipeClassNames.tableHeader, className)}>\n            {children}\n        </AriaTableHeader>\n    );\n};\n\nexport { TableHeader };\nexport type { TableHeaderProps };\n","import { PropsWithChildren, ReactNode } from 'react';\nimport {\n    TableBody as AriaTableBody,\n    TableBodyProps as AriaTableBodyProps,\n} from 'react-aria-components';\n\nimport { tableRecipe } from './table.styles';\nimport { cx } from '@/utils/cx';\n\ntype TableBodyProps = {\n    renderEmptyState?: (props: AriaTableBodyProps<object>) => ReactNode;\n    children?: ReactNode;\n    items: object[];\n    className?: string;\n} & AriaTableBodyProps<object>;\n\nconst TableBody = ({\n    renderEmptyState,\n    children,\n    items,\n    className,\n    ...rest\n}: PropsWithChildren<TableBodyProps>) => {\n    const [variantProps, localProps] = tableRecipe.splitVariantProps(rest);\n    const recipeClassNames = tableRecipe(variantProps);\n\n    return (\n        <AriaTableBody\n            {...localProps}\n            renderEmptyState={renderEmptyState}\n            items={items}\n            className={cx(recipeClassNames.tableBody, className)}>\n            {children}\n        </AriaTableBody>\n    );\n};\n\nexport { TableBody };\nexport type { TableBodyProps };\n","import { PropsWithChildren, ReactNode } from 'react';\nimport { Key, Row as AriaRow, RowProps as AriaRowProps } from 'react-aria-components';\n\nimport { tableRecipe } from './table.styles';\nimport { cx } from '@/utils/cx';\n\ntype RowProps = {\n    columns?: object[];\n    children?: ReactNode;\n    textValue?: string;\n    isDisabled?: boolean;\n    id?: Key;\n    className?: string;\n    href?: string;\n} & AriaRowProps<object>;\n\nconst Row = ({\n    columns,\n    children,\n    textValue,\n    isDisabled,\n    id,\n    className,\n    href,\n    ...rest\n}: PropsWithChildren<RowProps>) => {\n    const [variantProps, localProps] = tableRecipe.splitVariantProps(rest);\n    const recipeClassNames = tableRecipe(variantProps);\n\n    return (\n        <AriaRow\n            {...localProps}\n            id={id}\n            columns={columns}\n            textValue={textValue}\n            isDisabled={isDisabled}\n            className={cx(recipeClassNames.row, className)}\n            href={href}>\n            {children}\n        </AriaRow>\n    );\n};\n\nexport { Row };\nexport type { RowProps };\n","import { PropsWithChildren, ReactNode } from 'react';\nimport { Cell as AriaCell, CellProps as AriaCellProps } from 'react-aria-components';\n\nimport { tableRecipe } from './table.styles';\nimport { cx } from '@/utils/cx';\n\ntype CellProps = {\n    textValue?: string;\n    children?: ReactNode;\n    className?: string;\n} & AriaCellProps;\n\nconst Cell = ({ textValue, children, className, ...rest }: PropsWithChildren<CellProps>) => {\n    const [variantProps, localProps] = tableRecipe.splitVariantProps(rest);\n    const recipeClassNames = tableRecipe(variantProps);\n\n    return (\n        <AriaCell\n            {...localProps}\n            textValue={textValue}\n            className={cx(recipeClassNames.cell, className)}>\n            {children}\n        </AriaCell>\n    );\n};\n\nexport { Cell };\nexport type { CellProps };\n","import { PropsWithChildren, ReactNode } from 'react';\nimport { Key, Column as AriaColumn, ColumnProps as AriaColumnProps } from 'react-aria-components';\n\nimport { tableRecipe } from './table.styles';\nimport { cx } from '@/utils/cx';\n\ntype ColumnProps = {\n    id?: Key;\n    allowsSorting?: boolean;\n    isRowHeader?: boolean;\n    textValue?: string;\n    children?: ReactNode;\n    className?: string;\n    width?: number;\n    minWidth?: number;\n    maxWidth?: number;\n    defaultWidth?: number;\n    sortDirection?: 'ascending' | 'descending';\n} & AriaColumnProps;\n\nconst Column = ({\n    id,\n    allowsSorting,\n    isRowHeader,\n    textValue,\n    children,\n    className,\n    width,\n    minWidth,\n    maxWidth,\n    defaultWidth,\n    sortDirection,\n    ...rest\n}: PropsWithChildren<ColumnProps>) => {\n    const [variantProps, localProps] = tableRecipe.splitVariantProps(rest);\n    const recipeClassNames = tableRecipe(variantProps);\n\n    return (\n        <AriaColumn\n            {...localProps}\n            id={id}\n            allowsSorting={allowsSorting}\n            isRowHeader={isRowHeader}\n            textValue={textValue}\n            width={width}\n            minWidth={minWidth}\n            maxWidth={maxWidth}\n            defaultWidth={defaultWidth}\n            className={cx(recipeClassNames.column, className)}\n            data-sort-direction={sortDirection}>\n            <>\n                {children}\n                {allowsSorting && (\n                    <span aria-hidden=\"true\">{sortDirection === 'ascending' ? '▲' : '▼'}</span>\n                )}\n            </>\n        </AriaColumn>\n    );\n};\n\nexport { Column };\nexport type { ColumnProps };\n","import { PropsWithChildren, ReactNode } from 'react';\nimport {\n    ColumnResizer as AriaColumnResizer,\n    ColumnResizerProps as AriaColumnResizerProps,\n} from 'react-aria-components';\n\nimport { tableRecipe } from './table.styles';\nimport { cx } from '@/utils/cx';\n\ntype ColumnResizerProps = {\n    children?: ReactNode;\n    className?: string;\n} & AriaColumnResizerProps;\n\nconst ColumnResizer = ({ children, className, ...rest }: PropsWithChildren<ColumnResizerProps>) => {\n    const [variantProps, localProps] = tableRecipe.splitVariantProps(rest);\n    const recipeClassNames = tableRecipe(variantProps);\n\n    return (\n        <AriaColumnResizer\n            {...localProps}\n            className={cx(recipeClassNames.columnResizer, className)}>\n            {children}\n        </AriaColumnResizer>\n    );\n};\n\nexport { ColumnResizer };\nexport type { ColumnResizerProps };\n","import {\n    Key,\n    Table as AriaTable,\n    TableProps as AriaTableProps,\n    TableBodyProps as AriaTableBodyProps,\n    useDragAndDrop,\n    isFileDropItem,\n    DIRECTORY_DRAG_TYPE,\n    isDirectoryDropItem,\n} from 'react-aria-components';\n\nimport { css } from '@allenai/varnish-panda-runtime/css';\nimport { PropsWithChildren, ReactNode } from 'react';\n\nimport { tableRecipe } from './table.styles';\nimport { cx } from '@/utils/cx';\nimport focusRing from '@/components/shared/focusRing.styles';\nimport { TableHeader } from './TableHeader';\nimport { TableBody } from './TableBody';\nimport { Row } from './Row';\nimport { Cell } from './Cell';\nimport { Column } from './Column';\nimport Checkbox from '../checkbox/Checkbox';\nimport { ColumnResizer } from './ColumnResizer';\nimport Button from '../button/Button';\n\ntype TableHeaderItem = {\n    id: string;\n    name: string;\n    isRowHeader?: boolean;\n    width?: number;\n    allowsSorting?: boolean;\n    allowsResizing?: boolean;\n};\n\n// Generic TableRowItem for type safety\ntype TableRowItem<T extends Record<string, unknown>> = T & { id: Key };\n\ntype TableProps<T extends Record<string, unknown>> = {\n    className?: string;\n    tableRowClassName?: string;\n    tableHeaderClassName?: string;\n    columnClassName?: string;\n    rowClassName?: string;\n    cellClassName?: string;\n    checkboxClassName?: string;\n    dragButtonClassname?: string;\n    tableBodyClassName?: string;\n    headers?: TableHeaderItem[];\n    dataItems?: TableRowItem<T>[];\n    renderEmptyState?: (props: AriaTableBodyProps<object>) => ReactNode;\n    children?: ReactNode;\n} & AriaTableProps;\n\nconst Table = <T extends Record<string, unknown>>({\n    className,\n    tableRowClassName,\n    tableHeaderClassName,\n    tableBodyClassName,\n    columnClassName,\n    rowClassName,\n    cellClassName,\n    checkboxClassName,\n    dragButtonClassname,\n    headers,\n    dataItems,\n    renderEmptyState,\n    children,\n    ...rest\n}: PropsWithChildren<TableProps<T>>) => {\n    const {\n        dragAndDropHooks,\n        disabledKeys,\n        sortDescriptor,\n        selectedKeys,\n        defaultSelectedKeys,\n        disabledBehavior,\n        selectionBehavior,\n        selectionMode,\n        onSortChange,\n        ...localProps\n    } = rest;\n\n    const [variantProps, remainingProps] = tableRecipe.splitVariantProps(localProps);\n    const recipeClassNames = tableRecipe(variantProps);\n    const hasHeaders = headers !== undefined && headers.length > 0;\n    const hasDataItems = dataItems !== undefined && dataItems.length >= 0;\n    const direction = sortDescriptor !== undefined ? sortDescriptor.direction : 'ascending';\n\n    return (\n        <AriaTable\n            {...remainingProps}\n            disabledKeys={disabledKeys}\n            sortDescriptor={sortDescriptor}\n            selectedKeys={selectedKeys}\n            defaultSelectedKeys={defaultSelectedKeys}\n            disabledBehavior={disabledBehavior}\n            selectionBehavior={selectionBehavior}\n            selectionMode={selectionMode}\n            onSortChange={onSortChange}\n            dragAndDropHooks={dragAndDropHooks}\n            className={cx(recipeClassNames.root, className)}>\n            {hasHeaders && hasDataItems ? (\n                <>\n                    <TableHeader\n                        columns={headers}\n                        className={cx(recipeClassNames.tableHeader, tableHeaderClassName)}>\n                        {dragAndDropHooks ? <Column /> : null}\n                        {selectionMode && selectionMode !== 'none' ? (\n                            <Column className={cx(recipeClassNames.column, columnClassName)}>\n                                <Checkbox\n                                    slot=\"selection\"\n                                    className={cx(\n                                        css(focusRing),\n                                        recipeClassNames.checkbox,\n                                        checkboxClassName\n                                    )}\n                                />\n                            </Column>\n                        ) : null}\n                        {headers.map((column) => (\n                            <Column\n                                key={column.id}\n                                id={column.id}\n                                allowsSorting={column.allowsSorting}\n                                sortDirection={direction}\n                                isRowHeader={column.isRowHeader}\n                                width={column.width}\n                                className={cx(recipeClassNames.column, columnClassName)}>\n                                {column.allowsResizing ? (\n                                    <div className=\"flex-wrapper\">\n                                        <span tabIndex={-1} className=\"column-name\">\n                                            {column.name}\n                                        </span>\n                                        <ColumnResizer />\n                                    </div>\n                                ) : (\n                                    column.name\n                                )}\n                            </Column>\n                        ))}\n                    </TableHeader>\n\n                    <TableBody\n                        items={dataItems}\n                        className={cx(recipeClassNames.tableBody, tableBodyClassName)}\n                        renderEmptyState={renderEmptyState}>\n                        {dataItems.length > 0 &&\n                            dataItems.map((item) => (\n                                <Row\n                                    key={item.id}\n                                    id={item.id}\n                                    columns={headers}\n                                    className={cx(recipeClassNames.row, rowClassName)}\n                                    href={item.url ? (item.url as string) : undefined}\n                                    target={item.url ? '_blank' : undefined}\n                                    isDisabled={\n                                        item.isDisabled ? (item.isDisabled as boolean) : undefined\n                                    }>\n                                    {dragAndDropHooks && (\n                                        <Cell className={cx(recipeClassNames.cell, cellClassName)}>\n                                            <Button\n                                                slot=\"drag\"\n                                                className={cx(\n                                                    css(focusRing),\n                                                    recipeClassNames.dragButton,\n                                                    dragButtonClassname\n                                                )}>\n                                                ≡\n                                            </Button>\n                                        </Cell>\n                                    )}\n                                    {selectionMode && selectionMode !== 'none' && (\n                                        <Cell className={cx(recipeClassNames.cell, cellClassName)}>\n                                            <Checkbox\n                                                slot=\"selection\"\n                                                className={cx(\n                                                    css(focusRing),\n                                                    recipeClassNames.checkbox,\n                                                    checkboxClassName\n                                                )}\n                                            />\n                                        </Cell>\n                                    )}\n                                    {headers.map((column) => (\n                                        <Cell\n                                            key={column.id}\n                                            className={cx(recipeClassNames.cell, cellClassName)}>\n                                            {item[column.id] as ReactNode}\n                                        </Cell>\n                                    ))}\n                                </Row>\n                            ))}\n                    </TableBody>\n                </>\n            ) : (\n                children\n            )}\n        </AriaTable>\n    );\n};\n\nexport { Table, useDragAndDrop, isFileDropItem, DIRECTORY_DRAG_TYPE, isDirectoryDropItem };\nexport type { TableProps, TableHeaderItem, TableRowItem };\n","import { PropsWithChildren, ReactNode } from 'react';\nimport {\n    ResizableTableContainer as AriaResizableTableContainer,\n    ResizableTableContainerProps as AriaResizableTableContainerProps,\n} from 'react-aria-components';\n\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { tableRecipe } from './table.styles';\nimport { cx } from '@/utils/cx';\nimport focusRing from '../shared/focusRing.styles';\n\ntype ResizableTableContainerProps = {\n    children?: ReactNode;\n    className?: string;\n} & AriaResizableTableContainerProps;\n\nconst ResizableTableContainer = ({\n    children,\n    className,\n    ...rest\n}: PropsWithChildren<ResizableTableContainerProps>) => {\n    const [variantProps, localProps] = tableRecipe.splitVariantProps(rest);\n    const recipeClassNames = tableRecipe(variantProps);\n\n    return (\n        <AriaResizableTableContainer\n            {...localProps}\n            className={cx(css(focusRing), recipeClassNames.resizableTableContainer, className)}>\n            {children}\n        </AriaResizableTableContainer>\n    );\n};\n\nexport { ResizableTableContainer };\nexport type { ResizableTableContainerProps };\n","import { sva } from '@allenai/varnish-panda-runtime/css';\n\nimport type { RecipeVariantProps } from '@allenai/varnish-panda-runtime/types';\n\nconst tabsRecipe = sva({\n    slots: ['root', 'tabList', 'tab', 'tabPanel'],\n    base: {\n        root: {\n            background: 'background.opacity-100',\n            color: 'text',\n            display: 'grid',\n            gap: '[8px]',\n        },\n        tabList: {\n            display: 'flex',\n            gap: '[8px]',\n        },\n        tab: {\n            padding: '[8px 16px]',\n            fontSize: '[14px]',\n            gap: '[8px]',\n            outlineWidth: '0', // no focus outline\n\n            _hover: {\n                _notDisabled: {\n                    color: 'links',\n                    cursor: 'pointer',\n                },\n            },\n            _selected: {\n                _notDisabled: {\n                    color: 'links',\n                },\n            },\n            _disabled: {\n                color: 'text.disabled',\n                cursor: 'not-allowed',\n            },\n        },\n        tabPanel: {},\n    },\n    variants: {\n        orientation: {\n            horizontal: {\n                root: {\n                    gridTemplateRows: 'auto 1fr',\n                },\n                tabList: {\n                    flexDirection: 'row',\n                },\n                tab: {\n                    paddingBottom: '[5px]', // to account for border\n                    borderBottom: '3px solid transparent',\n                    _hover: {\n                        _notDisabled: {\n                            borderBottomColor: '[currentColor]',\n                        },\n                    },\n                    _selected: {\n                        borderBottomColor: '[currentColor]',\n                    },\n                },\n            },\n            vertical: {\n                root: {\n                    gridTemplateColumns: 'auto 1fr',\n                },\n                tabList: {\n                    flexDirection: 'column',\n                },\n                tab: {\n                    paddingInlineEnd: '[5px]', // to account for border\n                    borderInlineEnd: '3px solid transparent',\n                    _hover: {\n                        _notDisabled: {\n                            borderInlineEndColor: '[currentColor]',\n                        },\n                    },\n                    _selected: {\n                        borderInlineEndColor: '[currentColor]',\n                    },\n                },\n            },\n        },\n    },\n});\n\ntype TabsRecipeProps = Exclude<RecipeVariantProps<typeof tabsRecipe>, undefined>;\n\nexport { tabsRecipe, TabsRecipeProps as default };\nexport type { TabsRecipeProps };\n","import { TabList as AriaTabList, TabListProps as AriaTabListProps } from 'react-aria-components';\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { type PropsWithChildren, type ReactNode } from 'react';\n\nimport { cx } from '@/utils/cx';\n\nimport TabsRecipeProps, { tabsRecipe } from './tabs.styles';\n\ntype TabListProps<T extends object> = {\n    className?: string;\n    children?: ReactNode;\n} & AriaTabListProps<T> &\n    TabsRecipeProps;\n\nconst TabList = <T extends object>({\n    className,\n    children,\n    ...rest\n}: PropsWithChildren<TabListProps<T>>) => {\n    const [variantProps, localProps] = tabsRecipe.splitVariantProps(rest);\n    // `raw` receipe is required to be able to merge css objects (used in focus ring)\n    const recipeClassNames = tabsRecipe.raw(variantProps);\n\n    return (\n        <AriaTabList {...localProps} className={cx(css(recipeClassNames.tabList), className)}>\n            {children}\n        </AriaTabList>\n    );\n};\n\nexport { TabList };\nexport type { TabListProps };\n","import {\n    Fragment,\n    type ComponentProps,\n    type PropsWithChildren,\n    type ReactElement,\n    type ReactNode,\n} from 'react';\nimport {\n    Tabs as AriaTabs,\n    TabsProps as AriaTabsProps,\n    Key,\n    TabsContext,\n} from 'react-aria-components';\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { cx } from '@/utils/cx';\n\nimport TabsRecipeProps, { tabsRecipe } from './tabs.styles';\nimport { TabList } from './TabsList';\nimport { TabPanel } from './TabPanel';\nimport { Tab } from './Tab';\n\ntype Items = {\n    id: string;\n    header: (props?: ComponentProps<typeof Tab>) => ReactElement;\n    content: (props?: ComponentProps<typeof TabPanel>) => ReactElement;\n    isDisabled?: boolean;\n};\n\ntype TabsProps = {\n    className?: string;\n    disabledKeys?: Key[];\n    isDisabled?: boolean;\n    selectedKey?: Key | null;\n    orientation?: 'horizontal' | 'vertical';\n    onSelectionChange?: (key: string) => void;\n    items?: Items[];\n    tabListClassName?: string;\n    tabClassName?: string;\n    tabPanelClassName?: string;\n    children?: ReactNode;\n} & AriaTabsProps &\n    TabsRecipeProps;\n\nconst Tabs = ({\n    className,\n    disabledKeys,\n    selectedKey,\n    orientation = 'horizontal',\n    isDisabled,\n    onSelectionChange,\n    items,\n    tabListClassName,\n    tabClassName,\n    tabPanelClassName,\n    children,\n    ...rest\n}: PropsWithChildren<TabsProps>) => {\n    const [variantProps, localProps] = tabsRecipe.splitVariantProps({ ...rest, orientation });\n    const recipeClassNames = tabsRecipe.raw(variantProps);\n\n    return (\n        <TabsContext.Provider value={{ selectedKey, onSelectionChange }}>\n            <AriaTabs\n                {...localProps}\n                className={cx(css(recipeClassNames.root), className)}\n                orientation={orientation}\n                selectedKey={selectedKey}\n                isDisabled={isDisabled}\n                disabledKeys={disabledKeys}\n                onSelectionChange={onSelectionChange}>\n                {items !== undefined && items.length > 0 ? (\n                    <>\n                        <TabList className={cx(css(recipeClassNames.tabList), tabListClassName)}>\n                            {items.map(({ id, header, isDisabled }) => (\n                                <Fragment key={id}>\n                                    {header({\n                                        id,\n                                        className: cx(css(recipeClassNames.tab), tabClassName),\n                                        isDisabled,\n                                    })}\n                                </Fragment>\n                            ))}\n                        </TabList>\n                        {items.map(({ id, content }) => (\n                            <Fragment key={id}>\n                                {content({\n                                    id,\n                                    className: cx(\n                                        css(recipeClassNames.tabPanel),\n                                        tabPanelClassName\n                                    ),\n                                })}\n                            </Fragment>\n                        ))}\n                    </>\n                ) : null}\n                {children}\n            </AriaTabs>\n        </TabsContext.Provider>\n    );\n};\n\nexport { Tabs, TabsContext };\nexport type { TabsProps, Items };\n","import { Tab as AriaTab, TabProps as AriaTabProps } from 'react-aria-components';\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { type PropsWithChildren, type ReactNode } from 'react';\n\nimport { cx } from '@/utils/cx';\n\nimport focusRing from '@/components/shared/focusRing.styles';\n\nimport TabsRecipeProps, { tabsRecipe } from './tabs.styles';\n\ninterface TabProps extends AriaTabProps, TabsRecipeProps {\n    children?: ReactNode;\n    className?: string;\n}\n\nconst Tab = ({ className, children, ...rest }: PropsWithChildren<TabProps>) => {\n    const [variantProps, localProps] = tabsRecipe.splitVariantProps(rest);\n    // `raw` receipe is required to be able to merge css objects (used in focus ring)\n    const recipeClassNames = tabsRecipe(variantProps);\n\n    return (\n        <AriaTab {...localProps} className={cx(css(focusRing), recipeClassNames.tab, className)}>\n            {children}\n        </AriaTab>\n    );\n};\n\nexport { Tab };\nexport type { TabProps };\n","import { type PropsWithChildren, type ReactNode } from 'react';\nimport {\n    TabPanel as AriaTabPanel,\n    TabPanelProps as AriaTabPanelProps,\n} from 'react-aria-components';\nimport { css } from '@allenai/varnish-panda-runtime/css';\n\nimport { cx } from '@/utils/cx';\n\nimport focusRing from '@/components/shared/focusRing.styles';\n\nimport TabsRecipeProps, { tabsRecipe } from './tabs.styles';\n\ntype TabPanelProps = {\n    className?: string;\n    children?: ReactNode;\n} & AriaTabPanelProps &\n    TabsRecipeProps;\n\nconst TabPanel = ({ className, children, ...rest }: PropsWithChildren<TabPanelProps>) => {\n    const [variantProps, localProps] = tabsRecipe.splitVariantProps(rest);\n    // `raw` receipe is required to be able to merge css objects (used in focus ring)\n    const recipeClassNames = tabsRecipe.raw(variantProps);\n\n    return (\n        <AriaTabPanel\n            {...localProps}\n            className={cx(css(focusRing, recipeClassNames.tabPanel), className)}>\n            {children}\n        </AriaTabPanel>\n    );\n};\n\nexport { TabPanel };\nexport type { TabPanelProps };\n","import {\n    createContext,\n    useCallback,\n    useContext,\n    useLayoutEffect,\n    useState,\n    type PropsWithChildren,\n} from 'react';\n\nimport type { PaletteModes } from '@allenai/varnish-theme';\n\nconst systemColorModeName = 'system';\n\ntype SystemColorMode = typeof systemColorModeName;\ntype ColorMode = PaletteModes | SystemColorMode;\ntype ExplicitColorMode = Exclude<ColorMode, SystemColorMode>;\n\nconst allColorModes: ColorMode[] = [systemColorModeName, 'light', 'dark'];\n\nexport interface ThemeContextType {\n    colorMode: ColorMode;\n    systemPrefersColorMode: ExplicitColorMode;\n    computedColorMode: ExplicitColorMode;\n    setColorMode: (_: ColorMode) => void;\n    // theme -- default, pride, ...etc\n    // setTheme\n}\n\ninterface ThemeProviderProps extends PropsWithChildren {\n    localStorageKey?: string;\n    defaultColorMode?: ColorMode;\n    colorModes?: ColorMode[];\n    forceClassForSystem?: boolean;\n    classElement?: HTMLElement;\n}\n\nconst ThemeContext = createContext<ThemeContextType | null>(null);\n\n// forceClasses = true ?\nconst ThemeProviderBase = ({\n    localStorageKey = 'varnish-ui-theme',\n    defaultColorMode = systemColorModeName,\n    colorModes = allColorModes,\n    forceClassForSystem = false,\n    classElement,\n    children,\n}: ThemeProviderProps) => {\n    const [colorMode, setColorMode] = useState<ColorMode>(defaultColorMode);\n\n    // do we need to keep this in state? - should this be a ref?\n    // and if the window / mq stuff can run outside effect - then we can use that here too\n    const [systemPrefersColorMode, setSystemPrefersColorMode] =\n        useState<ExplicitColorMode>('light');\n\n    // derived state\n    const computedColorMode =\n        colorMode !== systemColorModeName ? colorMode : systemPrefersColorMode;\n\n    const classElementNode = classElement ?? window.document.body;\n\n    const setColorModeBrowser = useCallback(\n        (newColorMode: ColorMode) => {\n            const classList = classElementNode.classList;\n\n            // we handle `systemColorModeName` (i.e. system, as in prefers: color-mode)\n            // differently, it doesn't get classes\n            if (forceClassForSystem || newColorMode !== systemColorModeName) {\n                classList.add(newColorMode);\n            }\n\n            // allColorModes vs colorModes -- if the change between setting it could get weird\n            // removing classes we weren't told about is also weird.\n            const removeList = colorModes.filter((mode) => mode !== newColorMode);\n            classList.remove(...removeList);\n        },\n        [colorModes, forceClassForSystem, classElementNode]\n    );\n\n    // how SSR is this?\n    useLayoutEffect(() => {\n        // light is default by proxy of it existing before prefers-color-scheme did\n        // we check for dark, as explicity not light\n        const colorSchemeQuery = window.matchMedia('(prefers-color-scheme: dark)');\n\n        const handleMediaQueryChange = (query: MediaQueryListEvent | MediaQueryList) => {\n            // here we are explicitly checking dark/light - could be other?\n            setSystemPrefersColorMode(query.matches ? 'dark' : 'light');\n        };\n        handleMediaQueryChange(colorSchemeQuery);\n\n        const item = window.localStorage.getItem(localStorageKey);\n        let newColorMode: ColorMode = defaultColorMode;\n\n        if (item) {\n            newColorMode = (JSON.parse(item) || defaultColorMode) as ColorMode;\n        }\n\n        setColorModeBrowser(newColorMode);\n        // Syncing state from localStorage/media queries can only happen in an effect\n        setColorMode(newColorMode);\n\n        colorSchemeQuery.addEventListener('change', handleMediaQueryChange);\n\n        return () => {\n            colorSchemeQuery.removeEventListener('change', handleMediaQueryChange);\n        };\n    }, [defaultColorMode, setColorMode, setColorModeBrowser, localStorageKey]);\n\n    const setColorModeState = (newColorMode: ColorMode) => {\n        // Should this verify that it is valid?\n        // For now, this is the programmers responsibility\n        window.localStorage.setItem(localStorageKey, JSON.stringify(newColorMode));\n        setColorModeBrowser(newColorMode);\n        setColorMode(newColorMode);\n    };\n\n    return (\n        <ThemeContext.Provider\n            value={{\n                colorMode,\n                setColorMode: setColorModeState,\n                systemPrefersColorMode,\n                computedColorMode,\n            }}>\n            {children}\n        </ThemeContext.Provider>\n    );\n};\n\nconst useTheme = () => {\n    const context = useContext(ThemeContext);\n    if (!context) {\n        throw new Error('`useTheme()` must be used inside a `ThemeProvider`');\n    }\n    return context;\n};\nexport { ThemeProviderBase, useTheme };\nexport type { ThemeProviderProps };\n","import { type PropsWithChildren } from 'react';\nimport { ThemeProvider } from '@emotion/react';\n\nimport VarnishTheme from '@allenai/varnish-theme';\nimport type { PaletteModes, TypographyKeys } from '@allenai/varnish-theme';\n\nimport { useTheme } from './ThemeProviderBase';\n\ntype VarnishThemeType = typeof VarnishTheme;\n\nconst fontProperty = (typography: TypographyKeys) => {\n    const { fontFamily, fontSize, fontWeight, lineHeight } =\n        VarnishTheme.typography[typography].value;\n    return `${fontWeight} ${fontSize}/${lineHeight} ${fontFamily}`;\n};\n\n// either add disabled prop here (or maybe better for treeshaking-- conditionally render this provider)\nconst EmotionThemeProvider = ({ children }: PropsWithChildren) => {\n    const { computedColorMode } = useTheme();\n\n    const theme = {\n        ...VarnishTheme,\n        palette: VarnishTheme.palette[computedColorMode],\n        // helper: -- TBD usefulness\n        fontProperty,\n    };\n\n    return <ThemeProvider theme={theme}>{children}</ThemeProvider>;\n};\n\ndeclare module '@emotion/react' {\n    export interface Theme extends VarnishThemeType {\n        palette: VarnishThemeType['palette'][PaletteModes];\n    }\n}\n\nexport { EmotionThemeProvider, EmotionThemeProvider as default };\n","import {\n    Fragment,\n    type ComponentPropsWithoutRef,\n    type ComponentType,\n    type PropsWithChildren,\n} from 'react';\n\nimport ErrorBoundary from '../errorBoundary/ErrorBoundary';\nimport { ThemeProviderBase } from './ThemeProviderBase';\n\ninterface AppProviderProps extends PropsWithChildren {\n    themeProvider?: ComponentType;\n    themeDefaults?: ComponentPropsWithoutRef<typeof ThemeProviderBase>;\n}\n\nconst AppProvider = ({ themeProvider, themeDefaults, children }: AppProviderProps) => {\n    const ThemeProvider = themeProvider ?? Fragment;\n    return (\n        <ErrorBoundary>\n            <ThemeProviderBase {...themeDefaults}>\n                <ThemeProvider>{children}</ThemeProvider>\n            </ThemeProviderBase>\n        </ErrorBoundary>\n    );\n};\n\nexport { AppProvider, AppProvider as default };\n","import { createContext, useContext, useEffect, useState, type PropsWithChildren } from 'react';\n\ninterface LegalProviderProps extends PropsWithChildren {\n    localStorageKey: string;\n}\n\ninterface LegalContextType {\n    hasAgreed: boolean | undefined;\n    setAgreed: (_: boolean) => void;\n}\n\nconst LegalContext = createContext<LegalContextType | null>(null);\n\nconst LegalProvider = ({ localStorageKey, children }: LegalProviderProps) => {\n    // we use undefined here to deal with unknown state -- before useEffect runs we aren't sure\n    // so we track the third state of unknown.\n    const [hasAgreed, setHasAgreed] = useState<LegalContextType['hasAgreed']>(undefined);\n\n    useEffect(() => {\n        const item = window.localStorage.getItem(localStorageKey);\n        let hasAgreedValue = false;\n\n        if (item) {\n            hasAgreedValue = (JSON.parse(item) || false) as boolean;\n        }\n\n        // Reading from localStorage can only happen in an effect (not during SSR)\n        // eslint-disable-next-line @eslint-react/set-state-in-effect\n        setHasAgreed(hasAgreedValue);\n    }, [setHasAgreed, localStorageKey]);\n\n    const setAgreedState = (newHasAgreed: boolean) => {\n        window.localStorage.setItem(localStorageKey, JSON.stringify(newHasAgreed));\n        setHasAgreed(newHasAgreed);\n    };\n\n    return (\n        <LegalContext.Provider value={{ hasAgreed, setAgreed: setAgreedState }}>\n            {children}\n        </LegalContext.Provider>\n    );\n};\n\nconst useLegalTerms = () => {\n    const context = useContext(LegalContext);\n    if (!context) {\n        throw new Error('`useLegalTerms()` must be used inside a `LegalProvider`');\n    }\n    return context;\n};\n\nexport { LegalProvider, useLegalTerms };\n"]}