@ibti-tech/chatbot 0.8.6 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../node_modules/react/cjs/react.production.min.js", "../node_modules/react/index.js", "../node_modules/scheduler/cjs/scheduler.production.min.js", "../node_modules/scheduler/index.js", "../node_modules/react-dom/cjs/react-dom.production.min.js", "../node_modules/react-dom/index.js", "../node_modules/react-dom/client.js", "../node_modules/cookie/index.js", "../node_modules/set-cookie-parser/lib/set-cookie.js", "../node_modules/nookies/src/utils.ts", "../node_modules/nookies/src/index.ts", "../node_modules/react/cjs/react-jsx-runtime.production.min.js", "../node_modules/react/jsx-runtime.js", "../node_modules/inline-style-parser/index.js", "../node_modules/style-to-object/src/index.ts", "../node_modules/style-to-js/src/utilities.ts", "../node_modules/style-to-js/src/index.ts", "../node_modules/extend/index.js", "../src/embed.tsx", "../src/contexts/Chatbot/provider.tsx", "../src/contexts/Chatbot/context.ts", "../src/contexts/Chatbot/useChatbotMessages.ts", "../node_modules/uuid/dist/esm-browser/rng.js", "../node_modules/uuid/dist/esm-browser/stringify.js", "../node_modules/uuid/dist/esm-browser/native.js", "../node_modules/uuid/dist/esm-browser/v4.js", "../src/contexts/Chatbot/useChatbotSuggestedQuestions.ts", "../src/events/eventNames.ts", "../src/events/assistant-answer.ts", "../src/services/api/http-client.ts", "../src/services/chatbot/chatbot.api.ts", "../src/i18n/en.json", "../src/i18n/pt_BR.json", "../src/i18n/index.ts", "../src/services/chat/chat.api.ts", "../src/services/feedback/feedback.api.ts", "../src/cookies/chat.tsx", "../src/contexts/Chatbot/useChatbot.ts", "../src/hooks/useI18n.ts", "../node_modules/@ibti-tech/ui/src/icons/createIconComponent.tsx", "../node_modules/tslib/tslib.es6.mjs", "../node_modules/stylis/src/Enum.js", "../node_modules/stylis/src/Utility.js", "../node_modules/stylis/src/Tokenizer.js", "../node_modules/stylis/src/Parser.js", "../node_modules/stylis/src/Prefixer.js", "../node_modules/stylis/src/Serializer.js", "../node_modules/stylis/src/Middleware.js", "../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js", "../node_modules/styled-components/src/constants.ts", "../node_modules/styled-components/src/utils/checkDynamicCreation.ts", "../node_modules/styled-components/src/utils/empties.ts", "../node_modules/styled-components/src/utils/determineTheme.ts", "../node_modules/styled-components/src/utils/domElements.ts", "../node_modules/styled-components/src/utils/escape.ts", "../node_modules/styled-components/src/utils/generateAlphabeticName.ts", "../node_modules/styled-components/src/utils/hash.ts", "../node_modules/styled-components/src/utils/generateComponentId.ts", "../node_modules/styled-components/src/utils/getComponentName.ts", "../node_modules/styled-components/src/utils/isTag.ts", "../node_modules/styled-components/src/utils/hoist.ts", "../node_modules/styled-components/src/utils/isFunction.ts", "../node_modules/styled-components/src/utils/isStyledComponent.ts", "../node_modules/styled-components/src/utils/joinStrings.ts", "../node_modules/styled-components/src/utils/isPlainObject.ts", "../node_modules/styled-components/src/utils/mixinDeep.ts", "../node_modules/styled-components/src/utils/setToString.ts", "../node_modules/styled-components/src/utils/errors.ts", "../node_modules/styled-components/src/utils/error.ts", "../node_modules/styled-components/src/sheet/GroupedTag.ts", "../node_modules/styled-components/src/sheet/GroupIDAllocator.ts", "../node_modules/styled-components/src/sheet/Rehydration.ts", "../node_modules/styled-components/src/utils/nonce.ts", "../node_modules/styled-components/src/sheet/dom.ts", "../node_modules/styled-components/src/sheet/Tag.ts", "../node_modules/styled-components/src/sheet/Sheet.ts", "../node_modules/styled-components/src/utils/stylis.ts", "../node_modules/styled-components/src/models/StyleSheetManager.tsx", "../node_modules/styled-components/src/models/Keyframes.ts", "../node_modules/styled-components/src/utils/addUnitIfNeeded.ts", "../node_modules/styled-components/src/utils/hyphenateStyleName.ts", "../node_modules/styled-components/src/utils/flatten.ts", "../node_modules/styled-components/src/utils/isStatelessFunction.ts", "../node_modules/styled-components/src/utils/isStaticRules.ts", "../node_modules/styled-components/src/models/ComponentStyle.ts", "../node_modules/styled-components/src/models/ThemeProvider.tsx", "../node_modules/styled-components/src/models/StyledComponent.ts", "../node_modules/styled-components/src/utils/generateDisplayName.ts", "../node_modules/styled-components/src/utils/createWarnTooManyClasses.ts", "../node_modules/styled-components/src/utils/interleave.ts", "../node_modules/styled-components/src/constructors/css.ts", "../node_modules/styled-components/src/constructors/constructWithOptions.ts", "../node_modules/styled-components/src/constructors/styled.tsx", "../node_modules/styled-components/src/models/GlobalStyle.ts", "../node_modules/styled-components/src/constructors/createGlobalStyle.ts", "../node_modules/styled-components/src/constructors/keyframes.ts", "../node_modules/styled-components/src/hoc/withTheme.tsx", "../node_modules/styled-components/src/models/ServerStyleSheet.tsx", "../node_modules/styled-components/src/secretInternals.ts", "../node_modules/styled-components/src/base.ts", "../node_modules/@ibti-tech/ui/src/icons/ChevronDown.tsx", "../node_modules/@ibti-tech/ui/src/components/Button/index.tsx", "../node_modules/@ibti-tech/ui/src/components/Spinner/index.tsx", "../node_modules/@ibti-tech/ui/src/components/Spinner/styles.ts", "../node_modules/@ibti-tech/ui/src/components/ButtonBase/index.tsx", "../src/stubs/next-link.tsx", "../node_modules/@babel/runtime/helpers/esm/extends.js", "../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js", "../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js", "../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js", "../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js", "../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js", "../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js", "../node_modules/@babel/runtime/helpers/esm/construct.js", "../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js", "../node_modules/polished/dist/polished.esm.js", "../node_modules/@ibti-tech/utils/dist/index.mjs", "../node_modules/@ibti-tech/ui/src/lib/theming/constructThemeColorsContent.ts", "../node_modules/@ibti-tech/tokens/dist/index.mjs", "../node_modules/@ibti-tech/ui/src/lib/theming/constructThemeColorsPalette.ts", "../node_modules/@ibti-tech/ui/src/lib/theming/constructThemeColorsLayers.ts", "../node_modules/@ibti-tech/ui/src/lib/theming/font/constructFontFamily.ts", "../node_modules/@ibti-tech/ui/src/lib/theming/font/fontFamily.ts", "../node_modules/@ibti-tech/ui/src/lib/theming/tokens/defaultThemeTokens.ts", "../node_modules/@ibti-tech/ui/src/lib/theming/tokens/constructThemeTokens.ts", "../node_modules/@ibti-tech/ui/src/lib/theming/constructTheme.ts", "../node_modules/@ibti-tech/ui/src/lib/theming/constructThemeColorPalette.ts", "../node_modules/@ibti-tech/ui/src/lib/theming/themes/dark.ts", "../node_modules/@ibti-tech/ui/src/lib/theming/themes/light.ts", "../node_modules/@ibti-tech/ui/src/components/ButtonBase/styles.ts", "../node_modules/@ibti-tech/ui/src/components/Button/styles.ts", "../node_modules/@ibti-tech/ui/src/lib/responsiveness/index.ts", "../node_modules/@ibti-tech/ui/src/components/CardBase/index.tsx", "../node_modules/@ibti-tech/ui/src/components/CardBase/styles.ts", "../node_modules/@ibti-tech/ui/src/icons/Check.tsx", "../node_modules/@ibti-tech/ui/src/components/FormField/partials/FormFieldCharsLimit/index.tsx", "../node_modules/@ibti-tech/ui/src/components/FormField/partials/FormFieldCharsLimit/styles.ts", "../node_modules/@ibti-tech/ui/src/components/FormField/partials/FormFieldLabel/index.tsx", "../node_modules/@ibti-tech/ui/src/components/FormField/partials/FormFieldLabel/styles.ts", "../node_modules/@ibti-tech/ui/src/components/FormField/partials/FormFieldRoot/index.tsx", "../node_modules/@ibti-tech/ui/src/components/FormField/partials/FormFieldRoot/styles.ts", "../node_modules/@ibti-tech/ui/src/components/FormField/partials/FormFieldStatus/index.tsx", "../node_modules/@ibti-tech/ui/src/icons/CircleExclamation.tsx", "../node_modules/@ibti-tech/ui/src/icons/InfoCircle.tsx", "../node_modules/@ibti-tech/ui/src/components/FormField/partials/FormFieldStatus/styles.ts", "../node_modules/@ibti-tech/ui/src/components/FormField/utils/handleFormFieldStatus.ts", "../node_modules/@ibti-tech/ui/src/components/FormField/index.tsx", "../node_modules/@ibti-tech/ui/src/components/Container/index.tsx", "../node_modules/@ibti-tech/ui/src/components/Container/styles.ts", "../node_modules/@ibti-tech/ui/src/components/FormTextField/index.ts", "../node_modules/@ibti-tech/ui/src/components/IconButton/index.tsx", "../node_modules/@ibti-tech/ui/src/components/IconButton/styles.ts", "../node_modules/@ibti-tech/ui/src/components/RatingStars/index.tsx", "../node_modules/@ibti-tech/ui/src/components/RatingStars/RatingStar/index.tsx", "../node_modules/@ibti-tech/ui/src/components/RatingStars/RatingStar/styles.ts", "../node_modules/@ibti-tech/ui/src/components/RatingStars/styles.ts", "../node_modules/@ibti-tech/ui/src/components/TextArea/index.tsx", "../node_modules/@ibti-tech/ui/src/icons/ArrowUp.tsx", "../node_modules/@ibti-tech/ui/src/icons/ChevronUp.tsx", "../src/themes/index.ts", "../src/utils/domainValidation.ts", "../src/utils/visitorId.ts", "../src/components/ChatbotDevice/index.tsx", "../src/components/ChatbotDevice/styles.ts", "../src/components/ChatbotHeader/index.tsx", "../src/components/ChatbotHeader/styles.ts", "../src/components/BotIcon/index.tsx", "../node_modules/lucide-react/src/defaultAttributes.ts", "../node_modules/lucide-react/src/createLucideIcon.ts", "../node_modules/lucide-react/src/icons/bot.ts", "../node_modules/lucide-react/src/icons/copy.ts", "../node_modules/lucide-react/src/icons/headphones.ts", "../node_modules/lucide-react/src/icons/help-circle.ts", "../node_modules/lucide-react/src/icons/message-circle.ts", "../node_modules/lucide-react/src/icons/message-square-dashed.ts", "../node_modules/lucide-react/src/icons/message-square-plus.ts", "../node_modules/lucide-react/src/icons/message-square.ts", "../node_modules/lucide-react/src/icons/rotate-cw.ts", "../node_modules/lucide-react/src/icons/share-2.ts", "../node_modules/lucide-react/src/icons/sparkles.ts", "../src/components/BotIcon/embedIcons.tsx", "../src/hooks/useChatbotTexts.ts", "../src/components/ChatbotStatusLabel/index.tsx", "../src/components/ChatbotStatusLabel/styles.ts", "../src/components/ChatbotBody/index.tsx", "../src/components/ChatbotBody/styles.ts", "../src/components/MessageBalloon/index.tsx", "../src/components/MessageBalloon/styles.ts", "../node_modules/date-fns/toDate.mjs", "../node_modules/date-fns/constants.mjs", "../node_modules/date-fns/_lib/defaultOptions.mjs", "../node_modules/date-fns/startOfWeek.mjs", "../node_modules/date-fns/startOfDay.mjs", "../node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.mjs", "../node_modules/date-fns/differenceInCalendarDays.mjs", "../node_modules/date-fns/differenceInCalendarMonths.mjs", "../node_modules/date-fns/getQuarter.mjs", "../node_modules/date-fns/differenceInCalendarQuarters.mjs", "../node_modules/date-fns/differenceInCalendarWeeks.mjs", "../node_modules/date-fns/differenceInCalendarYears.mjs", "../node_modules/date-fns/_lib/getRoundingMethod.mjs", "../node_modules/date-fns/differenceInMilliseconds.mjs", "../node_modules/date-fns/differenceInHours.mjs", "../node_modules/date-fns/differenceInMinutes.mjs", "../node_modules/date-fns/differenceInSeconds.mjs", "../node_modules/date-fns/intlFormatDistance.mjs", "../src/utils/formatMessageTime.ts", "../node_modules/comma-separated-tokens/index.js", "../node_modules/estree-util-is-identifier-name/lib/index.js", "../node_modules/hast-util-whitespace/lib/index.js", "../node_modules/property-information/lib/util/schema.js", "../node_modules/property-information/lib/util/merge.js", "../node_modules/property-information/lib/normalize.js", "../node_modules/property-information/lib/util/info.js", "../node_modules/property-information/lib/util/types.js", "../node_modules/property-information/lib/util/defined-info.js", "../node_modules/property-information/lib/util/create.js", "../node_modules/property-information/lib/aria.js", "../node_modules/property-information/lib/util/case-sensitive-transform.js", "../node_modules/property-information/lib/util/case-insensitive-transform.js", "../node_modules/property-information/lib/html.js", "../node_modules/property-information/lib/svg.js", "../node_modules/property-information/lib/xlink.js", "../node_modules/property-information/lib/xmlns.js", "../node_modules/property-information/lib/xml.js", "../node_modules/property-information/lib/hast-to-react.js", "../node_modules/property-information/lib/find.js", "../node_modules/property-information/index.js", "../node_modules/space-separated-tokens/index.js", "../node_modules/hast-util-to-jsx-runtime/lib/index.js", "../node_modules/unist-util-position/lib/index.js", "../node_modules/unist-util-stringify-position/lib/index.js", "../node_modules/vfile-message/lib/index.js", "../node_modules/html-url-attributes/lib/index.js", "../node_modules/react-markdown/lib/index.js", "../node_modules/mdast-util-to-string/lib/index.js", "../node_modules/decode-named-character-reference/index.dom.js", "../node_modules/micromark-util-chunked/index.js", "../node_modules/micromark-util-combine-extensions/index.js", "../node_modules/micromark-util-decode-numeric-character-reference/index.js", "../node_modules/micromark-util-normalize-identifier/index.js", "../node_modules/micromark-util-character/index.js", "../node_modules/micromark-util-sanitize-uri/index.js", "../node_modules/micromark-factory-space/index.js", "../node_modules/micromark/lib/initialize/content.js", "../node_modules/micromark/lib/initialize/document.js", "../node_modules/micromark-util-classify-character/index.js", "../node_modules/micromark-util-resolve-all/index.js", "../node_modules/micromark-core-commonmark/lib/attention.js", "../node_modules/micromark-core-commonmark/lib/autolink.js", "../node_modules/micromark-core-commonmark/lib/blank-line.js", "../node_modules/micromark-core-commonmark/lib/block-quote.js", "../node_modules/micromark-core-commonmark/lib/character-escape.js", "../node_modules/micromark-core-commonmark/lib/character-reference.js", "../node_modules/micromark-core-commonmark/lib/code-fenced.js", "../node_modules/micromark-core-commonmark/lib/code-indented.js", "../node_modules/micromark-core-commonmark/lib/code-text.js", "../node_modules/micromark-util-subtokenize/lib/splice-buffer.js", "../node_modules/micromark-util-subtokenize/index.js", "../node_modules/micromark-core-commonmark/lib/content.js", "../node_modules/micromark-factory-destination/index.js", "../node_modules/micromark-factory-label/index.js", "../node_modules/micromark-factory-title/index.js", "../node_modules/micromark-factory-whitespace/index.js", "../node_modules/micromark-core-commonmark/lib/definition.js", "../node_modules/micromark-core-commonmark/lib/hard-break-escape.js", "../node_modules/micromark-core-commonmark/lib/heading-atx.js", "../node_modules/micromark-util-html-tag-name/index.js", "../node_modules/micromark-core-commonmark/lib/html-flow.js", "../node_modules/micromark-core-commonmark/lib/html-text.js", "../node_modules/micromark-core-commonmark/lib/label-end.js", "../node_modules/micromark-core-commonmark/lib/label-start-image.js", "../node_modules/micromark-core-commonmark/lib/label-start-link.js", "../node_modules/micromark-core-commonmark/lib/line-ending.js", "../node_modules/micromark-core-commonmark/lib/thematic-break.js", "../node_modules/micromark-core-commonmark/lib/list.js", "../node_modules/micromark-core-commonmark/lib/setext-underline.js", "../node_modules/micromark/lib/initialize/flow.js", "../node_modules/micromark/lib/initialize/text.js", "../node_modules/micromark/lib/constructs.js", "../node_modules/micromark/lib/create-tokenizer.js", "../node_modules/micromark/lib/parse.js", "../node_modules/micromark/lib/postprocess.js", "../node_modules/micromark/lib/preprocess.js", "../node_modules/micromark-util-decode-string/index.js", "../node_modules/mdast-util-from-markdown/lib/index.js", "../node_modules/remark-parse/lib/index.js", "../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js", "../node_modules/mdast-util-to-hast/lib/handlers/break.js", "../node_modules/mdast-util-to-hast/lib/handlers/code.js", "../node_modules/mdast-util-to-hast/lib/handlers/delete.js", "../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js", "../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js", "../node_modules/mdast-util-to-hast/lib/handlers/heading.js", "../node_modules/mdast-util-to-hast/lib/handlers/html.js", "../node_modules/mdast-util-to-hast/lib/revert.js", "../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js", "../node_modules/mdast-util-to-hast/lib/handlers/image.js", "../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js", "../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js", "../node_modules/mdast-util-to-hast/lib/handlers/link.js", "../node_modules/mdast-util-to-hast/lib/handlers/list-item.js", "../node_modules/mdast-util-to-hast/lib/handlers/list.js", "../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js", "../node_modules/mdast-util-to-hast/lib/handlers/root.js", "../node_modules/mdast-util-to-hast/lib/handlers/strong.js", "../node_modules/mdast-util-to-hast/lib/handlers/table.js", "../node_modules/mdast-util-to-hast/lib/handlers/table-row.js", "../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js", "../node_modules/trim-lines/index.js", "../node_modules/mdast-util-to-hast/lib/handlers/text.js", "../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js", "../node_modules/mdast-util-to-hast/lib/handlers/index.js", "../node_modules/@ungap/structured-clone/esm/deserialize.js", "../node_modules/@ungap/structured-clone/esm/serialize.js", "../node_modules/@ungap/structured-clone/esm/index.js", "../node_modules/mdast-util-to-hast/lib/footer.js", "../node_modules/unist-util-is/lib/index.js", "../node_modules/unist-util-visit-parents/lib/index.js", "../node_modules/unist-util-visit/lib/index.js", "../node_modules/mdast-util-to-hast/lib/state.js", "../node_modules/mdast-util-to-hast/lib/index.js", "../node_modules/remark-rehype/lib/index.js", "../node_modules/bail/index.js", "../node_modules/unified/lib/index.js", "../node_modules/is-plain-obj/index.js", "../node_modules/trough/lib/index.js", "../node_modules/vfile/lib/minpath.browser.js", "../node_modules/vfile/lib/minproc.browser.js", "../node_modules/vfile/lib/minurl.shared.js", "../node_modules/vfile/lib/minurl.browser.js", "../node_modules/vfile/lib/index.js", "../node_modules/unified/lib/callable-instance.js", "../src/components/WritingIndicator/index.tsx", "../src/components/WritingIndicator/styles.ts", "../src/hooks/useElementScroll.ts", "../src/hooks/useUpdatedTime.ts", "../src/components/SuggestedQuestions/index.tsx", "../src/components/SuggestedQuestions/styles.ts", "../src/components/ChatbotFooter/index.tsx", "../src/components/ChatbotFooter/styles.ts", "../src/components/ChatbotToggle/styles.ts", "../src/components/ChatbotToggle/index.tsx", "../src/components/ChatUserFeedbackRating/index.tsx", "../src/components/ChatUserFeedbackRating/styles.ts", "../package.json", "../src/version.ts", "../src/contexts/Chatbot/useChatFeedbackBox.ts", "../src/components/ChatbotBar/styles.ts", "../src/components/ChatbotBar/index.tsx"],
4
+ "sourcesContent": ["/**\n * @license React\n * react.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'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};exports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;\nexports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=function(){throw Error(\"act(...) is not supported in production builds of React.\");};\nexports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};exports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};\nexports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};exports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};\nexports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.2.0\";\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n", "/**\n * @license React\n * scheduler.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'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n", "/**\n * @license React\n * react-dom.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 Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;\nfunction Lg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction Mg(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function Ng(a){var b=a._init;return b(a._payload)}\nfunction Og(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Pg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Qg(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&Ng(f)===b.type))return d=e(b,c.props),d.ref=Lg(a,b,c),d.return=a,d;d=Rg(c.type,c.key,c.props,null,a.mode,d);d.ref=Lg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=Sg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Tg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=Qg(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=Rg(b.type,b.key,b.props,null,a.mode,c),\nc.ref=Lg(a,null,b),c.return=a,c;case wa:return b=Sg(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Tg(b,a.mode,c,null),b.return=a,b;Mg(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);Mg(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);Mg(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var th={},uh=Uf(th),vh=Uf(th),wh=Uf(th);function xh(a){if(a===th)throw Error(p(174));return a}\nfunction yh(a,b){G(wh,b);G(vh,a);G(uh,th);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(uh);G(uh,b)}function zh(){E(uh);E(vh);E(wh)}function Ah(a){xh(wh.current);var b=xh(uh.current);var c=lb(b,a.type);b!==c&&(G(vh,a),G(uh,c))}function Bh(a){vh.current===a&&(E(uh),E(vh))}var L=Uf(0);\nfunction Ch(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Dh=[];\nfunction Eh(){for(var a=0;a<Dh.length;a++)Dh[a]._workInProgressVersionPrimary=null;Dh.length=0}var Fh=ua.ReactCurrentDispatcher,Gh=ua.ReactCurrentBatchConfig,Hh=0,M=null,N=null,O=null,Ih=!1,Jh=!1,Kh=0,Lh=0;function P(){throw Error(p(321));}function Mh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Nh(a,b,c,d,e,f){Hh=f;M=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Fh.current=null===a||null===a.memoizedState?Oh:Ph;a=c(d,e);if(Jh){f=0;do{Jh=!1;Kh=0;if(25<=f)throw Error(p(301));f+=1;O=N=null;b.updateQueue=null;Fh.current=Qh;a=c(d,e)}while(Jh)}Fh.current=Rh;b=null!==N&&null!==N.next;Hh=0;O=N=M=null;Ih=!1;if(b)throw Error(p(300));return a}function Sh(){var a=0!==Kh;Kh=0;return a}\nfunction Th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===O?M.memoizedState=O=a:O=O.next=a;return O}function Uh(){if(null===N){var a=M.alternate;a=null!==a?a.memoizedState:null}else a=N.next;var b=null===O?M.memoizedState:O.next;if(null!==b)O=b,N=a;else{if(null===a)throw Error(p(310));N=a;a={memoizedState:N.memoizedState,baseState:N.baseState,baseQueue:N.baseQueue,queue:N.queue,next:null};null===O?M.memoizedState=O=a:O=O.next=a}return O}\nfunction Vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Wh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=N,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Hh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;M.lanes|=m;rh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(dh=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,M.lanes|=f,rh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction Xh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(dh=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function Yh(){}\nfunction Zh(a,b){var c=M,d=Uh(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,dh=!0);d=d.queue;$h(ai.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==O&&O.memoizedState.tag&1){c.flags|=2048;bi(9,ci.bind(null,c,d,e,b),void 0,null);if(null===Q)throw Error(p(349));0!==(Hh&30)||di(c,b,e)}return e}function di(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction ci(a,b,c,d){b.value=c;b.getSnapshot=d;ei(b)&&fi(a)}function ai(a,b,c){return c(function(){ei(b)&&fi(a)})}function ei(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function fi(a){var b=ih(a,1);null!==b&&gi(b,a,1,-1)}\nfunction hi(a){var b=Th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Vh,lastRenderedState:a};b.queue=a;a=a.dispatch=ii.bind(null,M,a);return[b.memoizedState,a]}\nfunction bi(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function ji(){return Uh().memoizedState}function ki(a,b,c,d){var e=Th();M.flags|=a;e.memoizedState=bi(1|b,c,void 0,void 0===d?null:d)}\nfunction li(a,b,c,d){var e=Uh();d=void 0===d?null:d;var f=void 0;if(null!==N){var g=N.memoizedState;f=g.destroy;if(null!==d&&Mh(d,g.deps)){e.memoizedState=bi(b,c,f,d);return}}M.flags|=a;e.memoizedState=bi(1|b,c,f,d)}function mi(a,b){return ki(8390656,8,a,b)}function $h(a,b){return li(2048,8,a,b)}function ni(a,b){return li(4,2,a,b)}function oi(a,b){return li(4,4,a,b)}\nfunction pi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function qi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return li(4,4,pi.bind(null,b,a),c)}function ri(){}function si(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction ti(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function ui(a,b,c){if(0===(Hh&21))return a.baseState&&(a.baseState=!1,dh=!0),a.memoizedState=c;He(c,b)||(c=yc(),M.lanes|=c,rh|=c,a.baseState=!0);return b}function vi(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Lh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Ph={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Wh,useRef:ji,useState:function(){return Wh(Vh)},\nuseDebugValue:ri,useDeferredValue:function(a){var b=Uh();return ui(b,N.memoizedState,a)},useTransition:function(){var a=Wh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1},Qh={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Xh,useRef:ji,useState:function(){return Xh(Vh)},useDebugValue:ri,useDeferredValue:function(a){var b=Uh();return null===\nN?b.memoizedState=a:ui(b,N.memoizedState,a)},useTransition:function(){var a=Xh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1};function Ci(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}function Di(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar Ei={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=R(),d=\nyi(a),e=mh(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=nh(a,e,d);null!==b&&(gi(b,a,d,c),oh(b,a,d))}};function Fi(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction Gi(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=eh(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Ei;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Hi(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Ei.enqueueReplaceState(b,b.state,null)}\nfunction Ii(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs={};kh(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=eh(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Di(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Ei.enqueueReplaceState(e,e.state,null),qh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}function Ji(a,b){try{var c=\"\",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e,digest:null}}\nfunction Ki(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}function Li(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Mi=\"function\"===typeof WeakMap?WeakMap:Map;function Ni(a,b,c){c=mh(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Oi||(Oi=!0,Pi=d);Li(a,b)};return c}\nfunction Qi(a,b,c){c=mh(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Li(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Li(a,b);\"function\"!==typeof d&&(null===Ri?Ri=new Set([this]):Ri.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Si(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Mi;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ti.bind(null,a,b,c),b.then(a,a))}function Ui(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Vi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=mh(-1,1),b.tag=2,nh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Wi=ua.ReactCurrentOwner,dh=!1;function Xi(a,b,c,d){b.child=null===a?Vg(b,null,c,d):Ug(b,a.child,c,d)}\nfunction Yi(a,b,c,d,e){c=c.render;var f=b.ref;ch(b,e);d=Nh(a,b,c,d,f,e);c=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&c&&vg(b);b.flags|=1;Xi(a,b,d,e);return b.child}\nfunction $i(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!aj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,bj(a,b,f,d,e);a=Rg(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return Zi(a,b,e)}b.flags|=1;a=Pg(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction bj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(dh=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(dh=!0);else return b.lanes=a.lanes,Zi(a,b,e)}return cj(a,b,c,d,e)}\nfunction dj(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(ej,fj),fj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(ej,fj),fj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(ej,fj);fj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(ej,fj),fj|=d;Xi(a,b,e,c);return b.child}function gj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function cj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);ch(b,e);c=Nh(a,b,c,d,f,e);d=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&d&&vg(b);b.flags|=1;Xi(a,b,c,e);return b.child}\nfunction hj(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;ch(b,e);if(null===b.stateNode)ij(a,b),Gi(b,c,d),Ii(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=eh(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&Hi(b,g,d,l);jh=!1;var r=b.memoizedState;g.state=r;qh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||jh?(\"function\"===typeof m&&(Di(b,c,m,d),k=b.memoizedState),(h=jh||Fi(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;lh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Ci(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=eh(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&Hi(b,g,d,k);jh=!1;r=b.memoizedState;g.state=r;qh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||jh?(\"function\"===typeof y&&(Di(b,c,y,d),n=b.memoizedState),(l=jh||Fi(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return jj(a,b,c,d,f,e)}\nfunction jj(a,b,c,d,e,f){gj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),Zi(a,b,f);d=b.stateNode;Wi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Ug(b,a.child,null,f),b.child=Ug(b,null,h,f)):Xi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function kj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);yh(a,b.containerInfo)}\nfunction lj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Xi(a,b,c,d);return b.child}var mj={dehydrated:null,treeContext:null,retryLane:0};function nj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction oj(a,b,c){var d=b.pendingProps,e=L.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(L,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=pj(g,d,0,null),a=Tg(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=nj(c),b.memoizedState=mj,a):qj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return rj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=Pg(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=Pg(h,f):(f=Tg(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?nj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=mj;return d}f=a.child;a=f.sibling;d=Pg(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction qj(a,b){b=pj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function sj(a,b,c,d){null!==d&&Jg(d);Ug(b,a.child,null,c);a=qj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction rj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Ki(Error(p(422))),sj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=pj({mode:\"visible\",children:d.children},e,0,null);f=Tg(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Ug(b,a.child,null,g);b.child.memoizedState=nj(g);b.memoizedState=mj;return f}if(0===(b.mode&1))return sj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Ki(f,d,void 0);return sj(a,b,g,d)}h=0!==(g&a.childLanes);if(dh||h){d=Q;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,ih(a,e),gi(d,a,e,-1))}tj();d=Ki(Error(p(421)));return sj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=uj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=qj(b,d.children);b.flags|=4096;return b}function vj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);bh(a.return,b,c)}\nfunction wj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction xj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Xi(a,b,d.children,c);d=L.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&vj(a,c,b);else if(19===a.tag)vj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(L,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Ch(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);wj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Ch(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}wj(b,!0,c,null,f);break;case \"together\":wj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction ij(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function Zi(a,b,c){null!==a&&(b.dependencies=a.dependencies);rh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=Pg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Pg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction yj(a,b,c){switch(b.tag){case 3:kj(b);Ig();break;case 5:Ah(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:yh(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Wg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(L,L.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return oj(a,b,c);G(L,L.current&1);a=Zi(a,b,c);return null!==a?a.sibling:null}G(L,L.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return xj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(L,L.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,dj(a,b,c)}return Zi(a,b,c)}var zj,Aj,Bj,Cj;\nzj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Aj=function(){};\nBj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;xh(uh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Cj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Dj(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Ej(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;zh();E(Wf);E(H);Eh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Fj(zg),zg=null));Aj(a,b);S(b);return null;case 5:Bh(b);var e=xh(wh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Bj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Cj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=xh(wh.current);xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(L);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Fj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(L.current&1)?0===T&&(T=3):tj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return zh(),\nAj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return ah(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(L);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Dj(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Ch(a);if(null!==g){b.flags|=128;Dj(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(L,L.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Gj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Xj=!1;break a;case 3:X=h.stateNode.containerInfo;Xj=!0;break a;case 4:X=h.stateNode.containerInfo;Xj=!0;break a}h=h.return}if(null===X)throw Error(p(160));Zj(f,g,e);X=null;Xj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)dk(b,a),b=b.sibling}\nfunction dk(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:ck(b,a);ek(a);if(d&4){try{Pj(3,a,a.return),Qj(3,a)}catch(t){W(a,a.return,t)}try{Pj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);break;case 5:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:ck(b,a);ek(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:ck(b,a);ek(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:ck(b,a);ek(a);break;case 13:ck(b,a);ek(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(fk=B()));d&4&&ak(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,ck(b,a),U=l):ck(b,a);ek(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Pj(4,r,r.return);break;case 1:Lj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Lj(r,r.return);break;case 22:if(null!==r.memoizedState){gk(q);continue}}null!==y?(y.return=r,V=y):gk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:ck(b,a);ek(a);d&4&&ak(a);break;case 21:break;default:ck(b,\na),ek(a)}}function ek(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Tj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Uj(a);Wj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Uj(a);Vj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function hk(a,b,c){V=a;ik(a,b,c)}\nfunction ik(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Jj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Jj;var l=U;Jj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?jk(e):null!==k?(k.return=g,V=k):jk(e);for(;null!==f;)V=f,ik(f,b,c),f=f.sibling;V=e;Jj=h;U=l}kk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):kk(a,b,c)}}\nfunction kk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Qj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Ci(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&sh(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}sh(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Rj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function gk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction jk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Qj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Rj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Rj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar lk=Math.ceil,mk=ua.ReactCurrentDispatcher,nk=ua.ReactCurrentOwner,ok=ua.ReactCurrentBatchConfig,K=0,Q=null,Y=null,Z=0,fj=0,ej=Uf(0),T=0,pk=null,rh=0,qk=0,rk=0,sk=null,tk=null,fk=0,Gj=Infinity,uk=null,Oi=!1,Pi=null,Ri=null,vk=!1,wk=null,xk=0,yk=0,zk=null,Ak=-1,Bk=0;function R(){return 0!==(K&6)?B():-1!==Ak?Ak:Ak=B()}\nfunction yi(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Bk&&(Bk=yc()),Bk;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function gi(a,b,c,d){if(50<yk)throw yk=0,zk=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==Q)a===Q&&(0===(K&2)&&(qk|=c),4===T&&Ck(a,Z)),Dk(a,d),1===c&&0===K&&0===(b.mode&1)&&(Gj=B()+500,fg&&jg())}\nfunction Dk(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===Q?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Ek.bind(null,a)):hg(Ek.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Fk(c,Gk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Gk(a,b){Ak=-1;Bk=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Hk()&&a.callbackNode!==c)return null;var d=uc(a,a===Q?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Ik(a,d);else{b=d;var e=K;K|=2;var f=Jk();if(Q!==a||Z!==b)uk=null,Gj=B()+500,Kk(a,b);do try{Lk();break}catch(h){Mk(a,h)}while(1);$g();mk.current=f;K=e;null!==Y?b=0:(Q=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Nk(a,e)));if(1===b)throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;if(6===b)Ck(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Ok(e)&&(b=Ik(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Nk(a,f))),1===b))throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Pk(a,tk,uk);break;case 3:Ck(a,d);if((d&130023424)===d&&(b=fk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){R();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),b);break}Pk(a,tk,uk);break;case 4:Ck(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),d);break}Pk(a,tk,uk);break;case 5:Pk(a,tk,uk);break;default:throw Error(p(329));}}}Dk(a,B());return a.callbackNode===c?Gk.bind(null,a):null}\nfunction Nk(a,b){var c=sk;a.current.memoizedState.isDehydrated&&(Kk(a,b).flags|=256);a=Ik(a,b);2!==a&&(b=tk,tk=c,null!==b&&Fj(b));return a}function Fj(a){null===tk?tk=a:tk.push.apply(tk,a)}\nfunction Ok(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Ck(a,b){b&=~rk;b&=~qk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Ek(a){if(0!==(K&6))throw Error(p(327));Hk();var b=uc(a,0);if(0===(b&1))return Dk(a,B()),null;var c=Ik(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Nk(a,d))}if(1===c)throw c=pk,Kk(a,0),Ck(a,b),Dk(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Pk(a,tk,uk);Dk(a,B());return null}\nfunction Qk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Gj=B()+500,fg&&jg())}}function Rk(a){null!==wk&&0===wk.tag&&0===(K&6)&&Hk();var b=K;K|=1;var c=ok.transition,d=C;try{if(ok.transition=null,C=1,a)return a()}finally{C=d,ok.transition=c,K=b,0===(K&6)&&jg()}}function Hj(){fj=ej.current;E(ej)}\nfunction Kk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:zh();E(Wf);E(H);Eh();break;case 5:Bh(d);break;case 4:zh();break;case 13:E(L);break;case 19:E(L);break;case 10:ah(d.type._context);break;case 22:case 23:Hj()}c=c.return}Q=a;Y=a=Pg(a.current,null);Z=fj=b;T=0;pk=null;rk=qk=rh=0;tk=sk=null;if(null!==fh){for(b=\n0;b<fh.length;b++)if(c=fh[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}fh=null}return a}\nfunction Mk(a,b){do{var c=Y;try{$g();Fh.current=Rh;if(Ih){for(var d=M.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Ih=!1}Hh=0;O=N=M=null;Jh=!1;Kh=0;nk.current=null;if(null===c||null===c.return){T=1;pk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Ui(g);if(null!==y){y.flags&=-257;Vi(y,g,h,f,b);y.mode&1&&Si(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Si(f,l,b);tj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Ui(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Vi(J,g,h,f,b);Jg(Ji(k,h));break a}}f=k=Ji(k,h);4!==T&&(T=2);null===sk?sk=[f]:sk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Ni(f,k,b);ph(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Ri||!Ri.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Qi(f,h,b);ph(f,F);break a}}f=f.return}while(null!==f)}Sk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Jk(){var a=mk.current;mk.current=Rh;return null===a?Rh:a}\nfunction tj(){if(0===T||3===T||2===T)T=4;null===Q||0===(rh&268435455)&&0===(qk&268435455)||Ck(Q,Z)}function Ik(a,b){var c=K;K|=2;var d=Jk();if(Q!==a||Z!==b)uk=null,Kk(a,b);do try{Tk();break}catch(e){Mk(a,e)}while(1);$g();K=c;mk.current=d;if(null!==Y)throw Error(p(261));Q=null;Z=0;return T}function Tk(){for(;null!==Y;)Uk(Y)}function Lk(){for(;null!==Y&&!cc();)Uk(Y)}function Uk(a){var b=Vk(a.alternate,a,fj);a.memoizedProps=a.pendingProps;null===b?Sk(a):Y=b;nk.current=null}\nfunction Sk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Ej(c,b,fj),null!==c){Y=c;return}}else{c=Ij(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Pk(a,b,c){var d=C,e=ok.transition;try{ok.transition=null,C=1,Wk(a,b,c,d)}finally{ok.transition=e,C=d}return null}\nfunction Wk(a,b,c,d){do Hk();while(null!==wk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===Q&&(Y=Q=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||vk||(vk=!0,Fk(hc,function(){Hk();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=ok.transition;ok.transition=null;\nvar g=C;C=1;var h=K;K|=4;nk.current=null;Oj(a,c);dk(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;hk(c,a,e);dc();K=h;C=g;ok.transition=f}else a.current=c;vk&&(vk=!1,wk=a,xk=e);f=a.pendingLanes;0===f&&(Ri=null);mc(c.stateNode,d);Dk(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Oi)throw Oi=!1,a=Pi,Pi=null,a;0!==(xk&1)&&0!==a.tag&&Hk();f=a.pendingLanes;0!==(f&1)?a===zk?yk++:(yk=0,zk=a):yk=0;jg();return null}\nfunction Hk(){if(null!==wk){var a=Dc(xk),b=ok.transition,c=C;try{ok.transition=null;C=16>a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Pj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Sj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Pj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Qj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,ok.transition=b}}return!1}function Xk(a,b,c){b=Ji(c,b);b=Ni(a,b,1);a=nh(a,b,1);b=R();null!==a&&(Ac(a,1,b),Dk(a,b))}\nfunction W(a,b,c){if(3===a.tag)Xk(a,a,c);else for(;null!==b;){if(3===b.tag){Xk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Ri||!Ri.has(d))){a=Ji(c,a);a=Qi(b,a,1);b=nh(b,a,1);a=R();null!==b&&(Ac(b,1,a),Dk(b,a));break}}b=b.return}}\nfunction Ti(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=R();a.pingedLanes|=a.suspendedLanes&c;Q===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction dl(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction el(a,b,c,d,e,f,g,h,k){a=bl(c,d,!0,a,e,f,g,h,k);a.context=dl(null);c=a.current;d=R();e=yi(c);f=mh(d,e);f.callback=void 0!==b&&null!==b?b:null;nh(c,f,e);a.current.lanes=e;Ac(a,e,d);Dk(a,d);return a}function fl(a,b,c,d){var e=b.current,f=R(),g=yi(e);c=dl(c);null===b.context?b.context=c:b.pendingContext=c;b=mh(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=nh(e,b,g);null!==a&&(gi(a,e,g,f),oh(a,e,g));return g}\nfunction gl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function hl(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function il(a,b){hl(a,b);(a=a.alternate)&&hl(a,b)}function jl(){return null}var kl=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ll(a){this._internalRoot=a}\nml.prototype.render=ll.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));fl(a,b,null,null)};ml.prototype.unmount=ll.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Rk(function(){fl(null,a,null,null)});b[uf]=null}};function ml(a){this._internalRoot=a}\nml.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function nl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function pl(){}\nfunction ql(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=gl(g);f.call(a)}}var g=el(b,d,a,0,null,!1,!1,\"\",pl);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Rk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=gl(k);h.call(a)}}var k=bl(a,0,!1,null,null,!1,!1,\"\",pl);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Rk(function(){fl(b,k,c,d)});return k}\nfunction rl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=gl(g);h.call(a)}}fl(b,g,a,e)}else g=ql(c,b,a,e,d);return gl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Dk(b,B()),0===(K&6)&&(Gj=B()+500,jg()))}break;case 13:Rk(function(){var b=ih(a,1);if(null!==b){var c=R();gi(b,a,1,c)}}),il(a,1)}};\nFc=function(a){if(13===a.tag){var b=ih(a,134217728);if(null!==b){var c=R();gi(b,a,134217728,c)}il(a,134217728)}};Gc=function(a){if(13===a.tag){var b=yi(a),c=ih(a,b);if(null!==c){var d=R();gi(c,a,b,d)}il(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Qk;Hb=Rk;\nvar sl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Qk]},tl={findFiberByHostInstance:Wc,bundleType:0,version:\"18.3.1\",rendererPackageName:\"react-dom\"};\nvar ul={bundleType:tl.bundleType,version:tl.version,rendererPackageName:tl.rendererPackageName,rendererConfig:tl.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:tl.findFiberByHostInstance||\njl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.3.1-next-f1338f8080-20240426\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var vl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!vl.isDisabled&&vl.supportsFiber)try{kc=vl.inject(ul),lc=vl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=sl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!nl(b))throw Error(p(200));return cl(a,b,null,c)};exports.createRoot=function(a,b){if(!nl(a))throw Error(p(299));var c=!1,d=\"\",e=kl;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=bl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ll(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Rk(a)};exports.hydrate=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!nl(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=kl;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=el(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new ml(b)};exports.render=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!ol(a))throw Error(p(40));return a._reactRootContainer?(Rk(function(){rl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Qk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!ol(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return rl(a,b,c,!1,d)};exports.version=\"18.3.1-next-f1338f8080-20240426\";\n", "'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n", "'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n", "/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar decode = decodeURIComponent;\nvar encode = encodeURIComponent;\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var pairs = str.split(';')\n var dec = opt.decode || decode;\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var index = pair.indexOf('=')\n\n // skip things that don't look like key=value\n if (index < 0) {\n continue;\n }\n\n var key = pair.substring(0, index).trim()\n\n // only assign once\n if (undefined == obj[key]) {\n var val = pair.substring(index + 1, pair.length).trim()\n\n // quoted values\n if (val[0] === '\"') {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n", "\"use strict\";\n\nvar defaultParseOptions = {\n decodeValues: true,\n map: false,\n silent: false,\n};\n\nfunction isForbiddenKey(key) {\n return typeof key !== \"string\" || key in {};\n}\n\nfunction createNullObj() {\n return Object.create(null);\n}\n\nfunction isNonEmptyString(str) {\n return typeof str === \"string\" && !!str.trim();\n}\n\nfunction parseString(setCookieValue, options) {\n var parts = setCookieValue.split(\";\").filter(isNonEmptyString);\n\n var nameValuePairStr = parts.shift();\n var parsed = parseNameValuePair(nameValuePairStr);\n var name = parsed.name;\n var value = parsed.value;\n\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n if (isForbiddenKey(name)) {\n return null;\n }\n\n try {\n value = options.decodeValues ? decodeURIComponent(value) : value; // decode cookie value\n } catch (e) {\n console.error(\n \"set-cookie-parser: failed to decode cookie value. Set options.decodeValues=false to disable decoding.\",\n e\n );\n }\n\n var cookie = createNullObj();\n cookie.name = name;\n cookie.value = value;\n\n parts.forEach(function (part) {\n var sides = part.split(\"=\");\n var key = sides.shift().trimLeft().toLowerCase();\n if (isForbiddenKey(key)) {\n return;\n }\n var value = sides.join(\"=\");\n if (key === \"expires\") {\n cookie.expires = new Date(value);\n } else if (key === \"max-age\") {\n var n = parseInt(value, 10);\n if (!Number.isNaN(n)) cookie.maxAge = n;\n } else if (key === \"secure\") {\n cookie.secure = true;\n } else if (key === \"httponly\") {\n cookie.httpOnly = true;\n } else if (key === \"samesite\") {\n cookie.sameSite = value;\n } else if (key === \"partitioned\") {\n cookie.partitioned = true;\n } else if (key) {\n cookie[key] = value;\n }\n });\n\n return cookie;\n}\n\nfunction parseNameValuePair(nameValuePairStr) {\n // Parses name-value-pair according to rfc6265bis draft\n\n var name = \"\";\n var value = \"\";\n var nameValueArr = nameValuePairStr.split(\"=\");\n if (nameValueArr.length > 1) {\n name = nameValueArr.shift();\n value = nameValueArr.join(\"=\"); // everything after the first =, joined by a \"=\" if there was more than one part\n } else {\n value = nameValuePairStr;\n }\n\n return { name: name, value: value };\n}\n\nfunction parse(input, options) {\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n if (!input) {\n if (!options.map) {\n return [];\n } else {\n return createNullObj();\n }\n }\n\n if (input.headers) {\n if (typeof input.headers.getSetCookie === \"function\") {\n // for fetch responses - they combine headers of the same type in the headers array,\n // but getSetCookie returns an uncombined array\n input = input.headers.getSetCookie();\n } else if (input.headers[\"set-cookie\"]) {\n // fast-path for node.js (which automatically normalizes header names to lower-case)\n input = input.headers[\"set-cookie\"];\n } else {\n // slow-path for other environments - see #25\n var sch =\n input.headers[\n Object.keys(input.headers).find(function (key) {\n return key.toLowerCase() === \"set-cookie\";\n })\n ];\n // warn if called on a request-like object with a cookie header rather than a set-cookie header - see #34, 36\n if (!sch && input.headers.cookie && !options.silent) {\n console.warn(\n \"Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning.\"\n );\n }\n input = sch;\n }\n }\n if (!Array.isArray(input)) {\n input = [input];\n }\n\n if (!options.map) {\n return input\n .filter(isNonEmptyString)\n .map(function (str) {\n return parseString(str, options);\n })\n .filter(Boolean);\n } else {\n var cookies = createNullObj();\n return input.filter(isNonEmptyString).reduce(function (cookies, str) {\n var cookie = parseString(str, options);\n if (cookie && !isForbiddenKey(cookie.name)) {\n cookies[cookie.name] = cookie;\n }\n return cookies;\n }, cookies);\n }\n}\n\n/*\n Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas\n that are within a single set-cookie field-value, such as in the Expires portion.\n\n This is uncommon, but explicitly allowed - see https://tools.ietf.org/html/rfc2616#section-4.2\n Node.js does this for every header *except* set-cookie - see https://github.com/nodejs/node/blob/d5e363b77ebaf1caf67cd7528224b651c86815c1/lib/_http_incoming.js#L128\n React Native's fetch does this for *every* header, including set-cookie.\n\n Based on: https://github.com/google/j2objc/commit/16820fdbc8f76ca0c33472810ce0cb03d20efe25\n Credits to: https://github.com/tomball for original and https://github.com/chrusart for JavaScript implementation\n*/\nfunction splitCookiesString(cookiesString) {\n if (Array.isArray(cookiesString)) {\n return cookiesString;\n }\n if (typeof cookiesString !== \"string\") {\n return [];\n }\n\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n // ',' is a cookie separator if we have later first '=', not ';' or ','\n lastComma = pos;\n pos += 1;\n\n skipWhitespace();\n nextStart = pos;\n\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n\n // currently special character\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n // we found cookies separator\n cookiesSeparatorFound = true;\n // pos is inside the next cookie, so back up and return it.\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n // in param ',' or param separator ';',\n // we continue from that comma\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n\n return cookiesStrings;\n}\n\nmodule.exports = parse;\nmodule.exports.parse = parse;\nmodule.exports.parseString = parseString;\nmodule.exports.splitCookiesString = splitCookiesString;\n", null, null, "/**\n * @license React\n * react-jsx-runtime.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'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n", "// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nexport default function (style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n}\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n", "import type { Declaration } from 'inline-style-parser';\nimport parse from 'inline-style-parser';\n\nexport { Declaration };\n\nexport interface StyleObject {\n [name: string]: string;\n}\n\ntype Iterator = (\n property: string,\n value: string,\n declaration: Declaration,\n) => void;\n\n/**\n * Parses inline style to object.\n *\n * @param style - Inline style.\n * @param iterator - Iterator.\n * @returns - Style object or null.\n *\n * @example Parsing inline style to object:\n *\n * ```js\n * import parse from 'style-to-object';\n * parse('line-height: 42;'); // { 'line-height': '42' }\n * ```\n */\nexport default function StyleToObject(\n style: string,\n iterator?: Iterator,\n): StyleObject | null {\n let styleObject: StyleObject | null = null;\n\n if (!style || typeof style !== 'string') {\n return styleObject;\n }\n\n const declarations = parse(style);\n const hasIterator = typeof iterator === 'function';\n\n declarations.forEach((declaration) => {\n if (declaration.type !== 'declaration') {\n return;\n }\n\n const { property, value } = declaration;\n\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n styleObject = styleObject || {};\n styleObject[property] = value;\n }\n });\n\n return styleObject;\n}\n", "const CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9_-]+$/;\nconst HYPHEN_REGEX = /-([a-z])/g;\nconst NO_HYPHEN_REGEX = /^[^-]+$/;\nconst VENDOR_PREFIX_REGEX = /^-(webkit|moz|ms|o|khtml)-/;\nconst MS_VENDOR_PREFIX_REGEX = /^-(ms)-/;\n\n/**\n * Checks whether to skip camelCase.\n */\nconst skipCamelCase = (property: string) =>\n !property ||\n NO_HYPHEN_REGEX.test(property) ||\n CUSTOM_PROPERTY_REGEX.test(property);\n\n/**\n * Replacer that capitalizes first character.\n */\nconst capitalize = (match: string, character: string) =>\n character.toUpperCase();\n\n/**\n * Replacer that removes beginning hyphen of vendor prefix property.\n */\nconst trimHyphen = (match: string, prefix: string) => `${prefix}-`;\n\n/**\n * CamelCase options.\n */\nexport interface CamelCaseOptions {\n reactCompat?: boolean;\n}\n\n/**\n * CamelCases a CSS property.\n */\nexport const camelCase = (property: string, options: CamelCaseOptions = {}) => {\n if (skipCamelCase(property)) {\n return property;\n }\n\n property = property.toLowerCase();\n\n if (options.reactCompat) {\n // `-ms` vendor prefix should not be capitalized\n property = property.replace(MS_VENDOR_PREFIX_REGEX, trimHyphen);\n } else {\n // for non-React, remove first hyphen so vendor prefix is not capitalized\n property = property.replace(VENDOR_PREFIX_REGEX, trimHyphen);\n }\n\n return property.replace(HYPHEN_REGEX, capitalize);\n};\n", "import StyleToObject from 'style-to-object';\n\nimport { camelCase, CamelCaseOptions } from './utilities';\n\ntype StyleObject = Record<string, string>;\n\ninterface StyleToJSOptions extends CamelCaseOptions {}\n\n/**\n * Parses CSS inline style to JavaScript object (camelCased).\n */\nfunction StyleToJS(style: string, options?: StyleToJSOptions): StyleObject {\n const output: StyleObject = {};\n\n if (!style || typeof style !== 'string') {\n return output;\n }\n\n StyleToObject(style, (property, value) => {\n // skip CSS comment\n if (property && value) {\n output[camelCase(property, options)] = value;\n }\n });\n\n return output;\n}\n\nStyleToJS.default = StyleToJS;\n\nexport = StyleToJS;\n", "'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n", "/**\n * Embed entry point for HTML / WordPress / PHP.\n * Config: window.IBTIChatbotConfig or data-* attributes on the script tag.\n * Mounts the widget into #ibti-chatbot-root (or containerId). Exposes window.IBTIChatbotEmbed.init(config) and destroy().\n */\n\nimport React from 'react'\nimport { createRoot } from 'react-dom/client'\nimport { ChatbotProvider } from './contexts/Chatbot/provider'\nimport { ChatbotBar } from './components/ChatbotBar'\nimport type { ChatbotTypes } from './types'\n\n/**\n * Embed configuration. Pass to IBTIChatbotEmbed.init(config) or set window.IBTIChatbotConfig.\n * data-* attributes: data-api-url, data-public-hash, data-locale, data-theme, data-position, data-colors (JSON), data-icon, data-texts (JSON).\n */\nexport interface IBTIChatbotEmbedConfig {\n /** Base URL of the chatbot API. Required. */\n apiURL: string\n /** Public hash of the chatbot. Required. */\n publicHash: string\n /** Locale: 'pt-BR' | 'en'. Default: 'pt-BR'. */\n locale?: ChatbotTypes.Locale\n /** Theme: 'light' | 'dark'. Default: 'light'. */\n theme?: ChatbotTypes.Theme\n /** Bar position. Default: 'bottom-right'. */\n position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left'\n /** DOM id for the mount container. Default: 'ibti-chatbot-root'. If missing, a div is created and appended to body. */\n containerId?: string\n /** Skip domain validation (e.g. admin preview). Do not use in production. */\n skipDomainCheck?: boolean\n /** Custom colors: primaryColor, headerBackground, userBalloonColor (hex or rgb). */\n colors?: ChatbotTypes.CustomColors\n /** Initial open state of the chat panel. Default: false. */\n isOpen?: boolean\n /** Lucide icon name for the button/header (e.g. 'Bot', 'MessageCircle'). */\n icon?: string\n /** Custom UI texts per locale: { 'pt-BR': CustomTexts, 'en': CustomTexts }. */\n texts?: ChatbotTypes.Texts\n /** When true and position is top-*, the bar pushes page content down (no overlay). Avoids extra scroll when combined with body class .ibti-chatbot-push-down. */\n pushContentDown?: boolean\n /** Offset from top (e.g. '64px', 80). Use to sit below a fixed header. */\n topOffset?: string | number\n /** When true, sets z-index to 9999 so the chatbot appears above header elements. */\n aboveHeader?: boolean\n /** Bar background when pushContentDown (light theme). Default rgb(230,230,230). */\n pushContentDownRowBackgroundLight?: string\n /** Bar background when pushContentDown (dark theme). Default rgb(0,0,0). */\n pushContentDownRowBackgroundDark?: string\n /** Height in px of the bar when pushContentDown is true. Default: 32. Clamped between 24 and 120. */\n pushContentDownBarHeight?: number\n}\n\ndeclare global {\n interface Window {\n IBTIChatbotConfig?: IBTIChatbotEmbedConfig\n IBTIChatbotEmbed?: {\n init: (config?: IBTIChatbotEmbedConfig) => void\n destroy: () => void\n }\n }\n}\n\nconst POSITION_MAP = {\n 'bottom-right': { verticalPosition: 'bottom' as const, horizontalPosition: 'right' as const },\n 'bottom-left': { verticalPosition: 'bottom' as const, horizontalPosition: 'left' as const },\n 'top-right': { verticalPosition: 'top' as const, horizontalPosition: 'right' as const },\n 'top-left': { verticalPosition: 'top' as const, horizontalPosition: 'left' as const },\n} as const\n\nconst DEFAULT_CONFIG: Partial<IBTIChatbotEmbedConfig> = {\n locale: 'pt-BR',\n theme: 'light',\n position: 'bottom-right',\n}\n\n/**\n * Reads config from data-* attributes on the script element.\n */\nfunction getConfigFromDataAttributes(script: HTMLScriptElement): Partial<IBTIChatbotEmbedConfig> {\n const config: Partial<IBTIChatbotEmbedConfig> = {}\n const apiUrl = script.getAttribute('data-api-url')\n const publicHash = script.getAttribute('data-public-hash')\n const locale = script.getAttribute('data-locale') as ChatbotTypes.Locale | null\n const theme = script.getAttribute('data-theme') as ChatbotTypes.Theme | null\n const position = script.getAttribute('data-position') as IBTIChatbotEmbedConfig['position'] | null\n const colorsJson = script.getAttribute('data-colors')\n const icon = script.getAttribute('data-icon')\n const textsJson = script.getAttribute('data-texts')\n\n if (apiUrl) config.apiURL = apiUrl\n if (publicHash) config.publicHash = publicHash\n if (locale === 'pt-BR' || locale === 'en') config.locale = locale\n if (theme === 'light' || theme === 'dark') config.theme = theme\n if (position && position in POSITION_MAP) config.position = position\n if (colorsJson) {\n try {\n config.colors = JSON.parse(colorsJson) as ChatbotTypes.CustomColors\n } catch {\n // ignore invalid JSON\n }\n }\n if (icon) config.icon = icon\n if (textsJson) {\n try {\n config.texts = JSON.parse(textsJson) as ChatbotTypes.Texts\n } catch {\n // ignore invalid JSON\n }\n }\n\n return config\n}\n\n/**\n * Resolves config: IBTIChatbotConfig > data-* attributes > defaults.\n */\nfunction resolveConfig(script: HTMLScriptElement | null): IBTIChatbotEmbedConfig | null {\n const globalConfig = typeof window !== 'undefined' ? window.IBTIChatbotConfig : undefined\n const dataConfig = script ? getConfigFromDataAttributes(script) : {}\n\n const merged = {\n ...DEFAULT_CONFIG,\n ...dataConfig,\n ...globalConfig,\n }\n\n if (!merged.apiURL || !merged.publicHash) {\n console.warn('[IBTI Chatbot] apiURL and publicHash are required.')\n return null\n }\n\n return merged as IBTIChatbotEmbedConfig\n}\n\nlet rootElement: HTMLDivElement | null = null\nlet reactRoot: ReturnType<typeof createRoot> | null = null\n\n/**\n * Initializes and mounts the chatbot widget.\n * @param configOverride - Optional explicit config (from IBTIChatbotEmbed.init)\n * @param script - Optional script element for data-* (captured at load time for async scripts)\n */\nfunction init(configOverride?: IBTIChatbotEmbedConfig, script?: HTMLScriptElement | null) {\n const scriptEl = script ?? (document.currentScript as HTMLScriptElement | null)\n const config = configOverride ?? resolveConfig(scriptEl)\n\n if (!config) return\n\n const { verticalPosition, horizontalPosition } =\n POSITION_MAP[config.position ?? 'bottom-right']\n\n const containerId = config.containerId ?? 'ibti-chatbot-root'\n let container = document.getElementById(containerId)\n\n if (!container) {\n container = document.createElement('div')\n container.id = containerId\n document.body.appendChild(container)\n }\n\n rootElement = container as HTMLDivElement\n reactRoot = createRoot(rootElement)\n\n const usePushDown =\n config.pushContentDown === true &&\n (config.position === 'top-right' || config.position === 'top-left')\n\n reactRoot.render(\n <ChatbotProvider\n apiURL={config.apiURL}\n publicHash={config.publicHash}\n locale={config.locale ?? 'pt-BR'}\n theme={config.theme ?? 'light'}\n isOpen={config.isOpen ?? false}\n skipDomainCheck={config.skipDomainCheck}\n colors={config.colors}\n icon={config.icon}\n texts={config.texts}\n >\n <ChatbotBar\n verticalPosition={verticalPosition}\n horizontalPosition={horizontalPosition}\n pushContentDown={usePushDown}\n topOffset={config.topOffset}\n aboveHeader={config.aboveHeader}\n pushContentDownRowBackgroundLight={config.pushContentDownRowBackgroundLight}\n pushContentDownRowBackgroundDark={config.pushContentDownRowBackgroundDark}\n pushContentDownBarHeight={config.pushContentDownBarHeight}\n />\n </ChatbotProvider>,\n )\n}\n\n/**\n * Unmounts and cleans up the chatbot widget.\n */\nfunction destroy() {\n if (reactRoot && rootElement) {\n reactRoot.unmount()\n reactRoot = null\n if (rootElement.parentNode) {\n rootElement.parentNode.removeChild(rootElement)\n }\n rootElement = null\n }\n}\n\nexport function mountEmbed() {\n init(undefined, currentScript)\n}\n\n// Capture currentScript immediately (becomes null after script execution; needed for async/defer)\nconst currentScript =\n typeof document !== 'undefined'\n ? (document.currentScript as HTMLScriptElement | null)\n : null\n\n// Expose API globally\nif (typeof window !== 'undefined') {\n window.IBTIChatbotEmbed = {\n init: (config) => init(config, currentScript),\n destroy,\n }\n}\n\n// Auto-initialize when script loads (if config exists)\nif (\n typeof window !== 'undefined' &&\n (window.IBTIChatbotConfig || (currentScript && (currentScript as HTMLScriptElement).getAttribute('data-public-hash')))\n) {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', mountEmbed)\n } else {\n mountEmbed()\n }\n}\n", "import React, { ReactNode, useEffect, useMemo, useRef, useState } from 'react'\nimport { ChatbotTypes } from 'types'\nimport { ChatbotContext } from './context'\nimport useChatbotMessages from './useChatbotMessages'\nimport { themes, mergeThemeWithCustomColors } from 'themes'\nimport { ThemeProvider } from 'styled-components'\nimport { getChatbotByPublicHash } from 'services'\nimport { isDomainAllowed } from 'utils/domainValidation'\nimport { getOrCreateVisitorId } from 'utils/visitorId'\n\n/**\n * Props for ChatbotProvider. Wrap your app (or chatbot subtree) with this to enable useChatbot().\n */\nexport type ChatbotProviderProps = {\n /** Locale: 'pt-BR' | 'en'. */\n locale: ChatbotTypes.Locale\n /** Base URL of the chatbot API (e.g. https://api.example.com). */\n apiURL: string\n /** Public hash of the chatbot (required for domain-validated API; omit for legacy). */\n publicHash?: string\n children?: ReactNode\n /** UI theme: 'light' | 'dark'. */\n theme: ChatbotTypes.Theme\n /** Initial open state of the chat panel. Default: false. */\n isOpen?: boolean\n /** Optional custom texts per locale (key: 'pt-BR' | 'en', value: CustomTexts). */\n texts?: ChatbotTypes.Texts\n /** Origins that skip domain validation (e.g. for staging). */\n allowedOriginsWithoutCheck?: string[]\n /** When true, skip domain check (e.g. admin preview iframe). Do not use in production embed. */\n skipDomainCheck?: boolean\n /** Custom colors: primaryColor, headerBackground, userBalloonColor (hex or rgb). */\n colors?: ChatbotTypes.CustomColors\n /** Lucide icon name for the chatbot button/header (e.g. 'Bot', 'MessageCircle'). */\n icon?: string\n}\n\nexport const ChatbotProvider = ({\n locale,\n children,\n apiURL,\n publicHash,\n theme,\n isOpen = false,\n texts,\n allowedOriginsWithoutCheck,\n skipDomainCheck,\n colors: customColors,\n icon: customIcon,\n}: ChatbotProviderProps) => {\n const [initializationStatus, setInitializationStatus] =\n useState<ChatbotTypes.InitializationStatus>(publicHash ? 'loading' : 'ready')\n const [chatbot, setChatbot] = useState<ChatbotTypes.ChatbotPublicResponse | undefined>()\n const [domainAllowed, setDomainAllowed] = useState(!publicHash)\n const [visitorId, setVisitorId] = useState<string | undefined>(() =>\n publicHash ? undefined : undefined,\n )\n\n const isReady =\n initializationStatus === 'ready' && (domainAllowed || !publicHash)\n\n useEffect(() => {\n if (\n isReady &&\n skipDomainCheck &&\n typeof window !== 'undefined' &&\n window.self !== window.top\n ) {\n try {\n window.parent.postMessage({ type: 'IBTI_CHATBOT_READY' }, '*')\n } catch {\n // ignore\n }\n }\n }, [isReady, skipDomainCheck])\n\n const {\n makeQuestion,\n chatMessages,\n loading,\n writing,\n error,\n apiConnectionError,\n suggestedQuestions,\n } = useChatbotMessages({\n apiURL,\n locale,\n publicHash: isReady ? publicHash : undefined,\n visitorId: isReady ? visitorId : undefined,\n })\n\n const [opened, setOpened] = useState(isOpen)\n\n const scrollRef = useRef<HTMLElement | null>(null)\n\n useEffect(() => {\n setOpened(isOpen)\n }, [isOpen])\n\n // Notify parent (admin preview) when open state changes\n useEffect(() => {\n if (\n skipDomainCheck &&\n typeof window !== 'undefined' &&\n window.self !== window.top\n ) {\n try {\n window.parent.postMessage(\n { type: 'IBTI_CHATBOT_OPEN_STATE', isOpen: opened },\n '*',\n )\n } catch {\n // ignore\n }\n }\n }, [opened, skipDomainCheck])\n\n const openedToggle = () => {\n setOpened(state => !state)\n }\n\n const status: ChatbotTypes.Status = useMemo(() => {\n if (writing) return 'writing'\n if (apiConnectionError || error) return 'unavailable'\n if (loading) return 'loading'\n\n return 'online'\n }, [writing, loading, error, apiConnectionError])\n\n // Bootstrap: fetch chatbot, validate domain, get visitorId (only when publicHash provided)\n useEffect(() => {\n if (!publicHash) {\n setInitializationStatus('ready')\n setDomainAllowed(true)\n return\n }\n\n let cancelled = false\n\n const bootstrap = async () => {\n try {\n const data = await getChatbotByPublicHash(apiURL, publicHash)\n if (cancelled) return\n\n if (skipDomainCheck) {\n setChatbot(data)\n setDomainAllowed(true)\n const vid = getOrCreateVisitorId(apiURL, publicHash)\n setVisitorId(vid)\n setInitializationStatus('ready')\n return\n }\n\n let currentOrigin =\n typeof window !== 'undefined' ? window.location.origin : ''\n if (\n typeof window !== 'undefined' &&\n (currentOrigin === 'null' || currentOrigin === '' || currentOrigin == null)\n ) {\n setChatbot(data)\n setDomainAllowed(true)\n const vid = getOrCreateVisitorId(apiURL, publicHash)\n setVisitorId(vid)\n setInitializationStatus('ready')\n return\n }\n const allowed = isDomainAllowed(\n currentOrigin,\n data.domain.name,\n allowedOriginsWithoutCheck,\n )\n\n setChatbot(data)\n setDomainAllowed(allowed)\n\n if (allowed) {\n const vid = getOrCreateVisitorId(apiURL, publicHash)\n setVisitorId(vid)\n setInitializationStatus('ready')\n } else {\n setInitializationStatus('domain_not_allowed')\n }\n } catch (err) {\n if (cancelled) return\n setInitializationStatus('error')\n setDomainAllowed(false)\n }\n }\n\n bootstrap()\n return () => {\n cancelled = true\n }\n }, [apiURL, publicHash, skipDomainCheck, allowedOriginsWithoutCheck])\n\n return (\n <ChatbotContext.Provider\n value={{\n chatMessages,\n makeQuestion,\n loading,\n writing,\n locale,\n scrollRef,\n opened,\n openedToggle,\n status,\n apiConnectionError,\n suggestedQuestions,\n apiURL,\n texts,\n theme,\n icon: customIcon,\n publicHash,\n visitorId,\n domainAllowed,\n initializationStatus,\n chatbot,\n }}\n >\n <ThemeProvider theme={mergeThemeWithCustomColors(themes[theme], customColors)}>\n {children}\n </ThemeProvider>\n </ChatbotContext.Provider>\n )\n}\n", "import * as React from 'react'\nimport { ChatbotTypes } from 'types'\nimport { useChatbotSuggestedQuestions } from './useChatbotSuggestedQuestions'\n\n/**\n * Shape of the chatbot context provided by ChatbotProvider.\n * Consume via useChatbot() inside the provider tree.\n */\nexport type ChatbotContextProps = {\n /** Current locale: 'pt-BR' | 'en'. */\n locale: ChatbotTypes.Locale\n /** Ordered list of chat messages (user + assistant). */\n chatMessages: ChatbotTypes.ChatMessage[]\n /** Optional ref for the scrollable messages container. */\n scrollRef?: React.MutableRefObject<HTMLElement | null>\n /** Sends a user message and streams the assistant reply. Resolves when stream ends. */\n makeQuestion: (question: string) => Promise<void>\n /** True while the assistant is streaming a response. */\n writing: boolean\n /** True while the request is in flight (before first chunk). */\n loading: boolean\n /** Whether the chat panel is open. */\n opened: boolean\n /** Toggles opened state. */\n openedToggle: () => void\n /** Derived status: 'writing' | 'loading' | 'online' | 'unavailable'. */\n status: ChatbotTypes.Status\n /** True when API health check or request failed (e.g. network/CORS). */\n apiConnectionError: boolean\n /** Suggested questions hook result: { loading, data, fetchData, resetData }. */\n suggestedQuestions: ReturnType<typeof useChatbotSuggestedQuestions>\n /** Base URL of the chatbot API. */\n apiURL: string\n /** Optional custom texts per locale (overrides defaults). */\n texts?: ChatbotTypes.Texts\n /** Current theme: 'light' | 'dark'. */\n theme: ChatbotTypes.Theme\n /** Optional Lucide icon name for the chatbot button/header (e.g. 'Bot', 'MessageCircle'). */\n icon?: string\n /** Public hash of the chatbot when using the public API. */\n publicHash?: string\n /** Stable visitor id for this session (when using publicHash). */\n visitorId?: string\n /** True when current origin is in the chatbot's allowed domains. */\n domainAllowed: boolean\n /** Widget init state: 'loading' | 'domain_not_allowed' | 'error' | 'ready'. */\n initializationStatus: ChatbotTypes.InitializationStatus\n /** Chatbot config from GET /chatbots/public/:hash when initializationStatus is 'ready'. */\n chatbot?: ChatbotTypes.ChatbotPublicResponse\n}\n\n/** React context for chatbot state. Use useChatbot() to consume. */\nexport const ChatbotContext = React.createContext({} as ChatbotContextProps)\n", "import { useEffect, useState, useRef } from 'react'\nimport { ChatbotTypes } from 'types'\nimport { v4 as uuidv4 } from 'uuid'\nimport { useChatbotSuggestedQuestions } from './useChatbotSuggestedQuestions'\nimport { dispatchAssitantAnswer } from 'events/assistant-answer'\nimport {\n sendChatContext,\n getWelcomeMessage,\n checkApiHealth,\n} from 'services'\nimport { ChatCookieManager } from 'cookies/chat'\nimport { useI18n } from 'hooks/useI18n'\n\n/**\n * Options for useChatbotMessages (used internally by ChatbotProvider).\n */\nexport type UseChatbotMessagesOptions = {\n /** Base URL of the chatbot API. */\n apiURL: string\n /** Locale: 'pt-BR' | 'en'. */\n locale: ChatbotTypes.Locale\n /** Optional. Public hash when using the public API. */\n publicHash?: string\n /** Optional. Visitor id for conversation continuity. */\n visitorId?: string\n}\n\nexport const useChatbotMessages = ({\n apiURL,\n locale,\n publicHash,\n visitorId,\n}: UseChatbotMessagesOptions) => {\n const i18n = useI18n()\n const cookieKeySuffix =\n publicHash && apiURL\n ? `${apiURL.replace(/\\/+$/, '')}:${publicHash}`\n : undefined\n const chatCookie = new ChatCookieManager(cookieKeySuffix)\n\n const [chatMessages, setChatMessages] = useState<ChatbotTypes.ChatMessage[]>(\n [],\n )\n const [initialized, setInitialized] = useState(false)\n const [loading, setLoading] = useState(false)\n const [writing, setWriting] = useState(false)\n const [error, setError] = useState<unknown>()\n const [apiConnectionError, setApiConnectionError] = useState(false)\n const prevWritingRef = useRef(false)\n const chatMessagesRef = useRef<ChatbotTypes.ChatMessage[]>([])\n const saveTimeoutRef = useRef<NodeJS.Timeout | null>(null)\n\n const suggestedQuestions = useChatbotSuggestedQuestions({\n chatContext: chatMessages.map(item => ({\n role: item.role,\n content: item.content,\n })),\n apiURL,\n locale,\n })\n\n /**\n * Helper function to save messages to cookie with debouncing during streaming\n */\n const persistMessages = (messages: ChatbotTypes.ChatMessage[], immediate: boolean = false) => {\n if (!initialized) return\n\n // Always update the ref with latest messages\n chatMessagesRef.current = messages\n\n // Clear any pending save\n if (saveTimeoutRef.current) {\n clearTimeout(saveTimeoutRef.current)\n saveTimeoutRef.current = null\n }\n\n if (immediate) {\n // Save immediately (for user questions, errors, or when response is complete)\n try {\n chatCookie.saveData(messages)\n } catch (err) {\n console.error('Failed to persist messages:', err)\n }\n } else {\n // Debounce saves during streaming (save after 500ms of no updates)\n saveTimeoutRef.current = setTimeout(() => {\n try {\n chatCookie.saveData(chatMessagesRef.current)\n } catch (err) {\n console.error('Failed to persist messages (debounced):', err)\n }\n saveTimeoutRef.current = null\n }, 500)\n }\n }\n\n /**\n * Creates a user question message and adds it to the chat history.\n * Immediately persists to cookie to ensure it's saved even if an error occurs.\n * @param question - User's question text\n * @param id - Unique identifier for the message\n * @returns The created message object\n */\n const createQuestionMessageIntoHistory = (question: string, id: string) => {\n const timestamp = new Date().toUTCString()\n const messageData: ChatbotTypes.ChatMessage = {\n id,\n timestamp,\n role: 'user',\n content: question,\n }\n\n const newHistory: ChatbotTypes.ChatMessage[] = [\n ...chatMessages,\n messageData,\n ]\n\n setChatMessages(newHistory)\n persistMessages(newHistory, true) // Save immediately\n\n return messageData\n }\n\n /**\n * Creates or updates an assistant answer message in the chat history.\n * Updates existing message if ID matches (for streaming responses),\n * otherwise adds a new message.\n * @param answer - Assistant's response text\n * @param id - Unique identifier for the message\n * @param error - Whether this is an error message\n * @param shouldPersist - Whether to immediately persist to cookie (default: false for streaming updates)\n * @returns The created or updated message object\n */\n const createOrUpdateAnswerMessageIntoHistory = (\n answer: string,\n id: string,\n error: boolean = false,\n shouldPersist: boolean = false,\n ) => {\n const timestamp = new Date().toUTCString()\n\n const messageData: ChatbotTypes.ChatMessage = {\n id,\n timestamp,\n role: 'assistant',\n content: answer,\n error,\n }\n\n setChatMessages(prev => {\n const itemAlreadyExists = prev.some(item => item.id == id)\n\n // Update existing message (for streaming responses)\n if (itemAlreadyExists) {\n const updated = prev.map(item => {\n if (item.id == id)\n return {\n ...item,\n content: messageData.content,\n }\n\n return item\n })\n\n // Persist with debouncing during streaming, or immediately if requested\n persistMessages(updated, shouldPersist)\n\n return updated\n }\n\n // Add new message\n const newHistory = [...prev, messageData]\n\n // Persist with debouncing during streaming, or immediately if requested\n persistMessages(newHistory, shouldPersist)\n\n return newHistory\n })\n\n return messageData\n }\n\n /**\n * Sends a user question to the API and handles the streaming response.\n * Manages loading states and persists messages to cookies.\n * @param userQuestion - The question text from the user\n */\n const makeQuestion = async (userQuestion: string) => {\n setLoading(true)\n suggestedQuestions.resetData()\n\n const answerId = uuidv4()\n const questionId = uuidv4()\n const chatContext = createQuestionMessageIntoHistory(\n userQuestion,\n questionId,\n )\n\n try {\n await sendChatContext({\n apiURL,\n locale,\n publicHash,\n visitorId,\n chatContext: [\n ...chatMessages.map(item => ({\n role: item.role,\n content: item.content,\n })),\n { role: chatContext.role, content: chatContext.content },\n ],\n onReceiving(receivedMessage) {\n setLoading(false)\n setWriting(true)\n // Update answer message as chunks arrive (streaming)\n // Don't persist during streaming to avoid excessive cookie writes\n createOrUpdateAnswerMessageIntoHistory(receivedMessage, answerId, false, false)\n },\n onDone: () => {\n setWriting(false)\n // Persist the complete response when done\n // Use a small timeout to ensure the last streaming update is applied to state\n // Then force immediate save\n setTimeout(() => {\n // Get the latest state and save immediately\n setChatMessages(currentMessages => {\n if (initialized && currentMessages.length > 0) {\n // Clear any pending debounced save\n if (saveTimeoutRef.current) {\n clearTimeout(saveTimeoutRef.current)\n saveTimeoutRef.current = null\n }\n // Save immediately with the latest messages\n chatCookie.saveData(currentMessages)\n chatMessagesRef.current = currentMessages\n }\n return currentMessages\n })\n }, 100)\n suggestedQuestions.fetchData()\n },\n })\n } catch (err) {\n // Handle errors by creating an error message\n if (err instanceof Error) {\n createOrUpdateAnswerMessageIntoHistory(err.message, answerId, true, true)\n }\n // Check if it's a connection error (network error, CORS, etc.)\n const isConnectionError =\n err instanceof TypeError ||\n (err instanceof Error &&\n (err.message.toLowerCase().includes('fetch') ||\n err.message.toLowerCase().includes('network') ||\n err.message.toLowerCase().includes('failed to fetch')))\n if (isConnectionError) {\n setApiConnectionError(true)\n }\n setError(err)\n setLoading(false)\n setWriting(false)\n }\n\n dispatchAssitantAnswer()\n }\n\n /**\n * Persists all messages (questions + answers) to cookies when the assistant\n * finishes writing (when writing state changes from true to false).\n * This ensures complete conversations are saved, not just user questions.\n */\n useEffect(() => {\n if (!initialized) return\n\n // Save when writing completes (transitions from true to false)\n if (prevWritingRef.current && !writing && !loading && chatMessages.length > 0) {\n // Force immediate save when writing completes\n // Clear any pending debounced save first\n if (saveTimeoutRef.current) {\n clearTimeout(saveTimeoutRef.current)\n saveTimeoutRef.current = null\n }\n // Save immediately with the latest messages\n try {\n chatCookie.saveData(chatMessages)\n chatMessagesRef.current = chatMessages\n } catch (err) {\n console.error('Failed to persist messages on writing complete:', err)\n }\n }\n\n prevWritingRef.current = writing\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [writing, loading, chatMessages, initialized])\n\n /**\n * Update ref whenever chatMessages changes\n */\n useEffect(() => {\n chatMessagesRef.current = chatMessages\n }, [chatMessages])\n\n /**\n * Cleanup timeout on unmount\n */\n useEffect(() => {\n return () => {\n if (saveTimeoutRef.current) {\n clearTimeout(saveTimeoutRef.current)\n }\n }\n }, [])\n\n /**\n * Initializes the chat by loading saved messages from cookies\n * or fetching the welcome message if no saved data exists.\n * Automatically cleans up expired conversations (older than 24 hours).\n * Checks API health before initializing.\n * Requires publicHash and visitorId when using new API (domain-validated flow).\n */\n const init = async () => {\n // When using new API, wait for publicHash and visitorId before init\n if (publicHash !== undefined && visitorId === undefined) {\n return\n }\n\n // First, check if API is available with a heartbeat\n try {\n const isApiAvailable = await checkApiHealth(apiURL, locale, publicHash)\n if (!isApiAvailable) {\n setApiConnectionError(true)\n setInitialized(true)\n return\n }\n setApiConnectionError(false)\n } catch (err) {\n // Connection error detected\n setApiConnectionError(true)\n setError(err)\n setInitialized(true)\n return\n }\n\n const savedData = chatCookie.getData()\n\n if (savedData && savedData.length > 0) {\n // Restore previous conversation\n setChatMessages(savedData)\n setInitialized(true)\n } else {\n // No saved data or expired - start fresh with welcome message\n try {\n const firstMessage = await getWelcomeMessage(apiURL, locale, publicHash)\n setChatMessages([\n {\n id: uuidv4(),\n timestamp: new Date().toUTCString(),\n role: 'assistant',\n content: firstMessage,\n },\n ])\n setApiConnectionError(false)\n } catch (err) {\n // Failed to connect to API\n const isConnectionError =\n err instanceof TypeError ||\n (err instanceof Error &&\n (err.message.toLowerCase().includes('fetch') ||\n err.message.toLowerCase().includes('network') ||\n err.message.toLowerCase().includes('failed to fetch')))\n if (isConnectionError) {\n setApiConnectionError(true)\n }\n setError(err)\n } finally {\n setInitialized(true)\n }\n }\n }\n\n /**\n * Initialize chat on mount (only once).\n * When publicHash is provided (new API), init only after visitorId is available.\n */\n useEffect(() => {\n if (initialized) return\n // New API flow: wait for visitorId\n if (publicHash !== undefined && visitorId === undefined) return\n\n init()\n }, [initialized, publicHash, visitorId])\n\n return {\n chatMessages,\n makeQuestion,\n loading,\n writing,\n error,\n apiConnectionError,\n suggestedQuestions,\n }\n}\n\nexport default useChatbotMessages\n", "// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}", "import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;", "const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};", "import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;", "import { useState } from 'react'\n// import { getSuggestedQuestions } from 'services/chatbot-api'\nimport { ChatbotTypes } from 'types'\n\n/**\n * Options for useChatbotSuggestedQuestions (used internally for suggested questions).\n */\nexport type UseChatbotSuggestedQuestionsOptions = {\n /** Current conversation context (role + content). */\n chatContext: ChatbotTypes.ChatContextItem[]\n /** Base URL of the API. */\n apiURL: string\n /** Locale: 'pt-BR' | 'en'. */\n locale: ChatbotTypes.Locale\n}\n\n/**\n * Hook for suggested questions (used by ChatbotProvider).\n * Returns loading state, list of question strings, fetchData, and resetData.\n */\nexport const useChatbotSuggestedQuestions = ({\n chatContext,\n locale = 'en',\n apiURL,\n}: UseChatbotSuggestedQuestionsOptions) => {\n const [loading, setLoading] = useState(false)\n const [data, setData] = useState<string[]>([])\n\n const fetchData = async () => {\n if (chatContext.length === 0) return\n\n setLoading(true)\n // const suggestedData = await getSuggestedQuestions({\n // chatContext,\n // locale,\n // apiURL,\n // })\n // setData(suggestedData)\n setLoading(false)\n }\n\n const resetData = () => {\n setData([])\n }\n\n return {\n loading,\n data,\n fetchData,\n resetData,\n }\n}\n", "export const CUSTOM_EVENT_NAMES = {\n ASSISTANT_ANSWER_FINISHED: 'ASSISTANT_ANSWER_FINISHED',\n}\n", "import { CUSTOM_EVENT_NAMES } from './eventNames'\n\nexport const dispatchAssitantAnswer = () => {\n const evt = new CustomEvent(CUSTOM_EVENT_NAMES.ASSISTANT_ANSWER_FINISHED)\n document.dispatchEvent(evt)\n}\n", "/**\n * Default headers for all chatbot API requests.\n * - Content-Type: application/json\n * - User-Agent: navigator.userAgent when available, else 'IBTI-Chatbot/1.0'\n *\n * @returns Record of header name to value (suitable for fetch headers)\n */\nexport const getDefaultHeaders = (): Record<string, string> => ({\n 'Content-Type': 'application/json',\n 'User-Agent':\n typeof navigator !== 'undefined' ? navigator.userAgent : 'IBTI-Chatbot/1.0',\n})\n", "import { ChatbotTypes } from 'types'\nimport { getDefaultHeaders } from '../api/http-client'\n\nconst CACHE_TTL_MS = 5 * 60 * 1000 // 5 minutes\nconst cache = new Map<\n string,\n { data: ChatbotTypes.ChatbotPublicResponse; expires: number }\n>()\n\nfunction cacheKey(apiURL: string, publicHash: string): string {\n const base = apiURL.replace(/\\/+$/, '')\n return `${base}:${publicHash}`\n}\n\n/**\n * Fetches a chatbot by its public hash.\n * Endpoint: GET /chatbots/public/:hash\n * Results are cached in memory for 5 minutes (key: apiURL:publicHash).\n *\n * @param apiURL - Base URL of the API (no trailing slash)\n * @param publicHash - Public hash of the chatbot (from admin/embed config)\n * @returns Promise resolving to ChatbotPublicResponse (id, name, domain, etc.)\n * @throws Error when chatbot is not found (e.g. 404) or request fails\n */\nexport const getChatbotByPublicHash = async (\n apiURL: string,\n publicHash: string,\n): Promise<ChatbotTypes.ChatbotPublicResponse> => {\n const key = cacheKey(apiURL, publicHash)\n const now = Date.now()\n const entry = cache.get(key)\n if (entry && entry.expires > now) return entry.data\n\n const response = await fetch(`${apiURL}/chatbots/public/${publicHash}`, {\n method: 'GET',\n headers: getDefaultHeaders(),\n cache: 'default',\n })\n\n if (!response.ok) {\n throw new Error(`Chatbot not found (${response.status})`)\n }\n\n const data = (await response.json()) as ChatbotTypes.ChatbotPublicResponse\n cache.set(key, { data, expires: now + CACHE_TTL_MS })\n return data\n}\n", "{\n \"CHATBOT_NAME\": \"IBTI Chatbot (Beta)\",\n \"STATUS\": {\n \"ONLINE\": \"Now online\",\n \"LOADING\": \"Loading...\",\n \"WRITING\": \"Writing answer...\",\n \"UNAVAILABLE\": \"Unavailable\",\n \"INACTIVE\": \"Inactive\"\n },\n \"WRITING_MESSAGE\": \"Writing\",\n \"ERRORS\": {\n \"UNKNOWN\": \"Sorry. We couldn't provide a response.\",\n \"DOMAIN_NOT_ALLOWED\": \"The chatbot is not available on this domain.\",\n \"CHATBOT_NOT_FOUND\": \"Chatbot not found. Please check the configuration.\"\n },\n \"INPUT_PLACEHOLDER\": \"Ask something\",\n \"CHATBOT_BAR\": {\n \"OPEN\": \"Open {{CHATBOT_NAME}}\",\n \"CLOSE\": \"Close {{CHATBOT_NAME}}\"\n },\n \"SUGGESTED_QUESTIONS\": {\n \"TITLE\": \"You may like to ask:\",\n \"LOADING\": \"Loading suggested questions...\"\n },\n \"CHAT_FEEDBACK\": {\n \"TITLE\": \"Rate the Chatbot\",\n \"DESCRIPTION\": \"Give us a feedback about our bot assistant.\",\n \"MESSAGE_FIELD\": \"Description\",\n \"SUBMIT_BUTTON\": \"Send\",\n \"CLOSE_BUTTON\": \"Close\",\n \"RATE\": \"Rate assistant\"\n },\n \"MESSAGE_ACTIONS\": {\n \"COPY\": \"Copy message\",\n \"SHARE\": \"Share message\",\n \"RESEND\": \"Resend message\"\n },\n \"USER_LABEL\": \"Me\"\n}\n", "{\n \"CHATBOT_NAME\": \"Assistente da IBTI (Beta)\",\n \"STATUS\": {\n \"ONLINE\": \"Ativo agora\",\n \"LOADING\": \"Carregando...\",\n \"WRITING\": \"Escrevendo resposta...\",\n \"UNAVAILABLE\": \"Indispon\u00EDvel\",\n \"INACTIVE\": \"Inativo\"\n },\n \"WRITING_MESSAGE\": \"Escrevendo\",\n \"ERRORS\": {\n \"UNKNOWN\": \"Desculpe. N\u00E3o conseguimos fornecer uma resposta.\",\n \"DOMAIN_NOT_ALLOWED\": \"O chatbot n\u00E3o est\u00E1 dispon\u00EDvel neste dom\u00EDnio.\",\n \"CHATBOT_NOT_FOUND\": \"Chatbot n\u00E3o encontrado. Verifique a configura\u00E7\u00E3o.\"\n },\n \"INPUT_PLACEHOLDER\": \"Pergunte alguma coisa\",\n \"CHATBOT_BAR\": {\n \"OPEN\": \"Abrir Assistente da IBTI\",\n \"CLOSE\": \"Fechar Assistente da IBTI\"\n },\n \"SUGGESTED_QUESTIONS\": {\n \"TITLE\": \"Voc\u00EA pode querer perguntar:\",\n \"LOADING\": \"Carregando perguntas sugeridas...\"\n },\n \"CHAT_FEEDBACK\": {\n \"TITLE\": \"Avalie nosso Assistente\",\n \"DESCRIPTION\": \"D\u00EA-nos um feedback sobre o nosso assistente virtual.\",\n \"MESSAGE_FIELD\": \"Descri\u00E7\u00E3o\",\n \"SUBMIT_BUTTON\": \"Enviar\",\n \"CLOSE_BUTTON\": \"Fechar\",\n \"RATE\": \"Avaliar assistente\"\n },\n \"MESSAGE_ACTIONS\": {\n \"COPY\": \"Copiar mensagem\",\n \"SHARE\": \"Compartilhar mensagem\",\n \"RESEND\": \"Reenviar mensagem\"\n },\n \"USER_LABEL\": \"Eu\"\n}\n", "import { ChatbotTypes } from 'types'\nimport { LocaleTerms } from './LocaleTerms'\nimport en from './en.json'\nimport ptBR from './pt_BR.json'\n\nexport const locales = ['en', 'pt-BR'] as const\n\nexport const i18n: Record<ChatbotTypes.Locale, LocaleTerms> = {\n en: en,\n 'pt-BR': ptBR,\n}\n\nexport const getLanguageTerm = (lang: ChatbotTypes.Locale) => i18n[lang]\n", "import { i18n } from 'i18n'\nimport { ChatbotTypes } from 'types'\nimport { getDefaultHeaders } from '../api/http-client'\nimport type { SendNewQuestionOptions } from '../types'\n\n/**\n * Sends chat context to the completion endpoint and streams the response.\n * Endpoint: POST /chat/completion?locale=&hash=&visitorId=\n *\n * @param options - SendNewQuestionOptions: chatContext, locale, apiURL, optional publicHash/visitorId, onReceiving, onDone\n * @returns Promise that resolves when the stream ends (no value)\n * @throws Error when response is not ok (includes status in message)\n */\nexport const sendChatContext = async ({\n chatContext,\n locale = 'en',\n onReceiving,\n onDone,\n apiURL,\n publicHash,\n visitorId,\n}: SendNewQuestionOptions): Promise<void> => {\n const params = new URLSearchParams({ locale })\n if (publicHash) params.set('hash', publicHash)\n if (visitorId) params.set('visitorId', visitorId)\n\n const response = await fetch(\n `${apiURL}/chat/completion?${params.toString()}`,\n {\n method: 'POST',\n headers: getDefaultHeaders(),\n body: JSON.stringify({ context: chatContext }),\n },\n )\n\n if (!response.ok) {\n throw new Error(\n i18n[locale].ERRORS.UNKNOWN + ` (status: ${response.status})`,\n )\n }\n\n if (!response.body) return\n\n const reader = response.body.getReader()\n const decoder = new TextDecoder()\n let message = ''\n\n const read = (): Promise<void> =>\n reader.read().then(({ done, value }) => {\n if (done) {\n onDone?.()\n return\n }\n\n const chunk = decoder.decode(value, { stream: true })\n message += chunk\n onReceiving(message, chunk)\n return read()\n })\n\n return read()\n}\n\n/**\n * Checks if the API is available (lightweight health check).\n * Tries HEAD on /chat/welcome first; falls back to GET on failure. Timeout: 5s.\n *\n * @param apiUrl - Base URL of the API (e.g. https://api.example.com)\n * @param locale - Locale for query: 'pt-BR' | 'en'\n * @param publicHash - Optional; added as query param when provided\n * @returns true if response is ok, false on error or timeout\n */\nexport const checkApiHealth = async (\n apiUrl: string,\n locale: ChatbotTypes.Locale = 'en',\n publicHash?: string,\n): Promise<boolean> => {\n const params = new URLSearchParams({ locale })\n if (publicHash) params.set('hash', publicHash)\n const url = `${apiUrl}/chat/welcome?${params.toString()}`\n\n const controller = new AbortController()\n const timeoutMs = 5000\n const timeoutId = setTimeout(() => controller.abort(), timeoutMs)\n\n try {\n const response = await fetch(url, {\n method: 'HEAD',\n signal: controller.signal,\n headers: getDefaultHeaders(),\n })\n clearTimeout(timeoutId)\n return response.ok\n } catch {\n clearTimeout(timeoutId)\n }\n\n const fallbackController = new AbortController()\n const fallbackTimeoutId = setTimeout(\n () => fallbackController.abort(),\n timeoutMs,\n )\n\n try {\n const response = await fetch(url, {\n method: 'GET',\n signal: fallbackController.signal,\n headers: getDefaultHeaders(),\n })\n clearTimeout(fallbackTimeoutId)\n return response.ok\n } catch {\n clearTimeout(fallbackTimeoutId)\n return false\n }\n}\n\n/**\n * Fetches the welcome message for the chatbot.\n * Endpoint: GET /chat/welcome?locale=&hash=\n *\n * @param apiUrl - Base URL of the API\n * @param locale - Locale for the welcome message: 'pt-BR' | 'en'\n * @param publicHash - Optional; chatbot identifier when using public API\n * @returns Promise resolving to the welcome message string\n * @throws Error when response is not ok (uses i18n error message + status)\n */\nexport const getWelcomeMessage = async (\n apiUrl: string,\n locale: ChatbotTypes.Locale = 'en',\n publicHash?: string,\n): Promise<string> => {\n const params = new URLSearchParams({ locale })\n if (publicHash) params.set('hash', publicHash)\n\n const response = await fetch(\n `${apiUrl}/chat/welcome?${params.toString()}`,\n {\n method: 'GET',\n headers: getDefaultHeaders(),\n },\n )\n\n if (!response.ok) {\n throw new Error(\n i18n[locale].ERRORS.UNKNOWN + ` (status: ${response.status})`,\n )\n }\n\n const data = (await response.json()) as { welcomeMessage: string }\n return data.welcomeMessage\n}\n", "import { getDefaultHeaders } from '../api/http-client'\nimport type { SendUserChatFeedbackParams } from '../types'\n\n/**\n * Sends user feedback (rating) for the current chat session.\n * Endpoint: POST /chat/feedback\n * Body: hash, visitorId, locale, rating_score, message (optional). API resolves conversation by hash + visitorId.\n *\n * @param params - SendUserChatFeedbackParams: apiURL, locale, ratingScore, optional description, publicHash, visitorId\n * @returns Promise resolving to the fetch Response; check response.ok for success\n */\nexport const sendUserChatFeedback = async ({\n apiURL,\n locale = 'en',\n ratingScore,\n description,\n publicHash,\n visitorId,\n}: SendUserChatFeedbackParams): Promise<Response> => {\n return fetch(`${apiURL}/chat/feedback`, {\n method: 'POST',\n headers: getDefaultHeaders(),\n body: JSON.stringify({\n locale,\n rating_score: ratingScore,\n message: description,\n ...(publicHash && { hash: publicHash }),\n ...(visitorId && { visitorId }),\n }),\n })\n}\n", "import { parseCookies, setCookie } from 'nookies'\nimport { ChatbotTypes } from 'types'\n\n/**\n * Structure for storing chat messages with timestamp\n * to enable automatic cleanup after 24 hours\n */\ninterface ChatStorageData {\n messages: ChatbotTypes.ChatMessage[]\n createdAt: string\n}\n\n/**\n * Manages chat conversation persistence in localStorage (client-side) or cookies (server-side).\n * Automatically cleans up conversations older than 24 hours.\n * Migrates data from cookies to localStorage automatically.\n * When keySuffix is provided (e.g. apiURL:publicHash), each chatbot has its own history.\n */\nexport class ChatCookieManager {\n storageKey: string\n cookieKey: string // Keep for migration purposes\n\n constructor(keySuffix?: string) {\n const base = 'ibtiChatbot@chat'\n const suffix = keySuffix ? `:${keySuffix}` : ''\n this.storageKey = `${base}${suffix}`\n this.cookieKey = `${base}${suffix}`\n }\n maxAgeInHours = 24\n\n /**\n * Validates that the data can be safely serialized to JSON\n * @param data - Data to validate\n * @throws Error if data cannot be serialized\n */\n checkValidJSONData(data: any) {\n try {\n JSON.parse(JSON.stringify(data))\n } catch (err) {\n throw new Error('Invalid chat context data.')\n }\n }\n\n /**\n * Checks if the stored data has expired based on creation timestamp\n * @param createdAt - ISO timestamp string when data was created\n * @returns true if data is older than maxAgeInHours\n */\n isDataExpired(createdAt: string): boolean {\n const now = new Date().getTime()\n const created = new Date(createdAt).getTime()\n const maxAgeInMs = this.maxAgeInHours * 60 * 60 * 1000\n return now - created > maxAgeInMs\n }\n\n /**\n * Migrates data from cookies to localStorage if cookies exist and localStorage doesn't\n * @returns true if migration was performed\n */\n migrateFromCookies(): boolean {\n if (typeof window === 'undefined') return false\n\n // Check if localStorage already has data\n if (localStorage.getItem(this.storageKey)) {\n return false\n }\n\n // Try to read from cookies\n try {\n const cookies = document.cookie.split(';')\n const cookie = cookies.find(c => {\n const trimmed = c.trim()\n return trimmed.startsWith(`${this.cookieKey}=`)\n })\n\n if (cookie) {\n const equalIndex = cookie.indexOf('=')\n if (equalIndex !== -1) {\n const cookieValue = decodeURIComponent(cookie.substring(equalIndex + 1).trim())\n const data = JSON.parse(cookieValue) as ChatStorageData | ChatbotTypes.ChatMessage[]\n\n // Migrate to localStorage\n if (Array.isArray(data)) {\n const storageData: ChatStorageData = {\n messages: data,\n createdAt: new Date().toISOString(),\n }\n localStorage.setItem(this.storageKey, JSON.stringify(storageData))\n } else if (data.messages) {\n localStorage.setItem(this.storageKey, JSON.stringify(data))\n }\n\n // Delete old cookie after successful migration\n document.cookie = `${this.cookieKey}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`\n return true\n }\n }\n } catch (err) {\n console.warn('Failed to migrate from cookies to localStorage:', err)\n }\n\n return false\n }\n\n /**\n * Retrieves chat messages from localStorage (client-side) or cookies (server-side).\n * Automatically migrates from cookies to localStorage and cleans expired data.\n * @returns Array of chat messages, empty array if none found or expired\n */\n getData(): ChatbotTypes.ChatMessage[] {\n // Check if we're in a browser environment\n if (typeof window !== 'undefined') {\n // Try to migrate from cookies first (one-time migration)\n this.migrateFromCookies()\n\n // Read from localStorage\n const storedValue = localStorage.getItem(this.storageKey)\n if (!storedValue) {\n return []\n }\n\n try {\n const data = JSON.parse(storedValue) as ChatStorageData | ChatbotTypes.ChatMessage[]\n\n // Migrate from old format (direct array) to new format (with timestamp)\n if (Array.isArray(data)) {\n const storageData: ChatStorageData = {\n messages: data,\n createdAt: new Date().toISOString(),\n }\n localStorage.setItem(this.storageKey, JSON.stringify(storageData))\n return data\n }\n\n // Check if data has expired (older than 24 hours) and clean it up\n if (data.createdAt && this.isDataExpired(data.createdAt)) {\n this.saveData([])\n return []\n }\n\n return data.messages || []\n } catch (err) {\n // If parsing fails, reset to empty state\n console.warn('Failed to parse chat storage data:', err)\n this.saveData([])\n return []\n }\n } else {\n // Server-side: Use nookies for Next.js\n const cookies = parseCookies()\n const cookieValue = cookies[this.cookieKey]\n\n if (!cookieValue) {\n return []\n }\n\n try {\n const data = JSON.parse(cookieValue) as ChatStorageData | ChatbotTypes.ChatMessage[]\n\n // Migrate from old format (direct array) to new format (with timestamp)\n if (Array.isArray(data)) {\n return data\n }\n\n // Check if data has expired (older than 24 hours) and clean it up\n if (data.createdAt && this.isDataExpired(data.createdAt)) {\n return []\n }\n\n return data.messages || []\n } catch (err) {\n console.warn('Failed to parse chat cookie:', err)\n return []\n }\n }\n }\n\n /**\n * Saves chat messages to localStorage (client-side) or cookies (server-side).\n * Data expires after 24 hours (checked on read, not enforced by storage).\n * @param data - Array of chat messages to persist\n */\n saveData(data: ChatbotTypes.ChatMessage[]) {\n try {\n this.checkValidJSONData(data)\n\n const storageData: ChatStorageData = {\n messages: data,\n createdAt: new Date().toISOString(),\n }\n\n const storageValue = JSON.stringify(storageData)\n\n // Check if we're in a browser environment\n if (typeof window !== 'undefined') {\n // Use localStorage for client-side (much larger capacity than cookies)\n try {\n localStorage.setItem(this.storageKey, storageValue)\n\n // Verify data was saved\n const verifyData = localStorage.getItem(this.storageKey)\n if (!verifyData) {\n throw new Error('Failed to verify localStorage save')\n }\n\n // Clean up old cookie if it exists (migration cleanup)\n document.cookie = `${this.cookieKey}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`\n } catch (err) {\n // If localStorage fails (e.g., quota exceeded), log error but don't throw\n // This allows the app to continue functioning\n console.error('Failed to save to localStorage:', err)\n\n // Try to clear some space or handle quota exceeded\n if (err instanceof DOMException && err.code === 22) {\n console.warn('localStorage quota exceeded. Consider clearing old data.')\n }\n\n throw new Error('Failed to save chat context data to localStorage')\n }\n } else {\n // Server-side: Use nookies for Next.js (fallback, but shouldn't be used in practice)\n // Note: This is kept for compatibility but localStorage should be used client-side\n setCookie(null, this.cookieKey, storageValue, {\n expiresIn: 60 * 60 * 24, // 24 hours in seconds\n })\n }\n } catch (err) {\n console.error('Failed to save chat data:', err)\n throw new Error('Fail to save chat context data')\n }\n }\n}\n", "import React, { useContext } from 'react'\nimport { ChatbotContext } from './context'\n\n/**\n * Returns the chatbot context (state and actions).\n * Must be used within a ChatbotProvider; throws otherwise.\n *\n * @returns ChatbotContextProps (locale, chatMessages, makeQuestion, opened, openedToggle, status, etc.)\n */\nexport const useChatbot = () => {\n const context = useContext(ChatbotContext)\n\n if (!context) throw new Error('ChatbotContext was not found to be consumed.')\n\n return context\n}\n\nexport default useChatbot\n", "import { useChatbot } from 'contexts/Chatbot/useChatbot'\nimport { i18n } from 'i18n'\n\nexport const useI18n = () => {\n const { locale } = useChatbot()\n\n return i18n[locale]\n}\n", "import React, { createElement, CSSProperties, ReactNode } from 'react'\n\nexport type IconProps = {\n color?: string\n size?: string\n className?: string\n style?: CSSProperties\n}\n\nexport type IconComponent = (props: IconProps) => JSX.Element\n\nexport type CreateIconComponentProps = {\n content: ReactNode | string\n viewBox: string\n size?: string\n color?: string\n}\n\nexport const createIconComponent = ({\n content,\n viewBox,\n}: CreateIconComponentProps): IconComponent => {\n const createIcon = ({\n size = '1em',\n color = 'currentColor',\n ...componentProps\n }: IconProps) => {\n const props = {\n height: size,\n width: size,\n fill: color,\n viewBox: viewBox,\n ...componentProps,\n className: componentProps.className,\n }\n\n return createElement(\n 'svg',\n props,\n typeof content === 'string' ? (\n <g dangerouslySetInnerHTML={{ __html: content }} />\n ) : (\n content\n ),\n )\n }\n\n return createIcon\n}\n", "/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n", "export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\nexport var SCOPE = '@scope'\n", "/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @param {number} position\n * @return {number}\n */\nexport function indexof (value, search, position) {\n\treturn value.indexOf(search, position)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n\n/**\n * @param {string[]} array\n * @param {RegExp} pattern\n * @return {string[]}\n */\nexport function filter (array, pattern) {\n\treturn array.filter(function (value) { return !match(value, pattern) })\n}\n", "import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {object[]} siblings\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length, siblings) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: '', siblings: siblings}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0, root.siblings), root, {length: -root.length}, props)\n}\n\n/**\n * @param {object} root\n */\nexport function lift (root) {\n\twhile (root.root)\n\t\troot = copy(root.root, {children: [root]})\n\n\tappend(root, root.siblings)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n", "import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, token, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f', abs(index ? points[index - 1] : 0)) != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent, declarations), declarations)\n\t\t\t\t\t\tif ((token(previous || 1) == 5 || token(peek() || 1) == 5) && strlen(characters) && substr(characters, -1, void 0) !== ' ') characters += ' '\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length || (variable === 0 && previous === 47)))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1, declarations) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length, rulesets), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tswitch (atrule) {\n\t\t\t\t\t\t\t\t\t// c(ontainer)\n\t\t\t\t\t\t\t\t\tcase 99:\n\t\t\t\t\t\t\t\t\t\tif (charat(characters, 3) === 110) break\n\t\t\t\t\t\t\t\t\t// l(ayer)\n\t\t\t\t\t\t\t\t\tcase 108:\n\t\t\t\t\t\t\t\t\t\tif (charat(characters, 2) === 97) break\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\toffset = 0\n\t\t\t\t\t\t\t\t\t// d(ocument) m(edia) s(upports)\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (offset) parse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\telse parse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length, siblings)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @param {object[]} siblings\n * @return {object}\n */\nexport function comment (value, root, parent, siblings) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function declaration (value, root, parent, length, siblings) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length, siblings)\n}\n", "import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace, substr, match} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @param {object[]} children\n * @return {string}\n */\nexport function prefix (value, length, children) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599:\n\t\t\treturn WEBKIT + value + value\n\t\t// mask-composite\n\t\tcase 4855:\n\t\t\treturn WEBKIT + value.replace('add', 'source-over').replace('substract', 'source-out').replace('intersect', 'source-in').replace('exclude', 'xor') + value\n\t\t// tab-size\n\t\tcase 4789:\n\t\t\treturn MOZ + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t\t// default: fallthrough to below\n\t\t\t}\n\t\t// flex, flex-direction, scroll-snap-type, writing-mode\n\t\tcase 6828: case 4268: case 2903:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/g, '') + (!match(value, /flex-|baseline/) ? MS + 'grid-row-' + replace(value, /flex-|-self/g, '') : '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/g, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /space-between/, 'justify') + WEBKIT + value + value\n\t\t// justify-self\n\t\tcase 4200:\n\t\t\tif (!match(value, /flex-|baseline/)) return MS + 'grid-column-align' + substr(value, length) + value\n\t\t\tbreak\n\t\t// grid-template-(columns|rows)\n\t\tcase 2592: case 3360:\n\t\t\treturn MS + replace(value, 'template-', '') + value\n\t\t// grid-(row|column)-start\n\t\tcase 4384: case 3616:\n\t\t\tif (children && children.some(function (element, index) { return length = index, match(element.props, /grid-\\w+-end/) })) {\n\t\t\t\treturn ~indexof(value + (children = children[length].value), 'span', 0) ? value : (MS + replace(value, '-start', '') + value + MS + 'grid-row-span:' + (~indexof(children, 'span', 0) ? match(children, /\\d+/) : +match(children, /\\d+/) - +match(value, /\\d+/)) + ';')\n\t\t\t}\n\t\t\treturn MS + replace(value, '-start', '') + value\n\t\t// grid-(row|column)-end\n\t\tcase 4896: case 4128:\n\t\t\treturn (children && children.some(function (element) { return match(element.props, /grid-\\w+-start/) })) ? value : MS + replace(replace(value, '-end', '-span'), 'span ', '') + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch', 0) ? prefix(replace(value, 'stretch', 'fill-available'), length, children) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// grid-(column|row)\n\t\tcase 5152: case 5920:\n\t\t\treturn replace(value, /(.+?):(\\d+)(\\s*\\/\\s*(span)?\\s*(\\d+))?(.*)/, function (_, a, b, c, d, e, f) { return (MS + a + ':' + b + f) + (c ? (MS + a + '-span:' + (d ? e : +e - +b)) + f : '') + value })\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// stick(y)?\n\t\t\tif (charat(value, length + 6) === 121)\n\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\tbreak\n\t\t// display: (flex|inline-flex|grid|inline-grid)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, charat(value, 14) === 45 ? 18 : 11)) {\n\t\t\t\t// (inline-)?fle(x)\n\t\t\t\tcase 120:\n\t\t\t\t\treturn replace(value, /(.+:)([^;\\s!]+)(;|(\\s+)?!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t\t// (inline-)?gri(d)\n\t\t\t\tcase 100:\n\t\t\t\t\treturn replace(value, ':', ':' + MS) + value\n\t\t\t}\n\t\t\tbreak\n\t\t// scroll-margin, scroll-margin-(top|right|bottom|left)\n\t\tcase 5719: case 2647: case 2135: case 3927: case 2391:\n\t\t\treturn replace(value, 'scroll-', 'scroll-snap-') + value\n\t}\n\n\treturn value\n}\n", "import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES, NAMESPACE} from './Enum.js'\nimport {strlen} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\n\tfor (var i = 0; i < children.length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case NAMESPACE: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: if (!strlen(element.value = element.props.join(','))) return ''\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n", "import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine, filter, assign} from './Utility.js'\nimport {copy, lift, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(children = element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, callback = /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [value]}))\n\t\t\t\t\t\t\t\t\tassign(element, {props: filter(children, callback)})\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [value]}))\n\t\t\t\t\t\t\t\t\tassign(element, {props: filter(children, callback)})\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n", "var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n scale: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n", "declare let SC_DISABLE_SPEEDY: boolean | null | undefined;\ndeclare let __VERSION__: string;\n\nimport React from 'react';\n\nexport const SC_ATTR: string =\n (typeof process !== 'undefined' &&\n typeof process.env !== 'undefined' &&\n (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR)) ||\n 'data-styled';\n\nexport const SC_ATTR_ACTIVE = 'active';\nexport const SC_ATTR_VERSION = 'data-styled-version';\nexport const SC_VERSION = __VERSION__;\nexport const SPLITTER = '/*!sc*/\\n';\n\nexport const IS_BROWSER = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Detect if we're running in a React Server Component environment.\n * RSC environments lack createContext, making this a reliable indicator.\n */\nexport const IS_RSC = typeof React.createContext === 'undefined';\n\nexport const DISABLE_SPEEDY = Boolean(\n typeof SC_DISABLE_SPEEDY === 'boolean'\n ? SC_DISABLE_SPEEDY\n : typeof process !== 'undefined' &&\n typeof process.env !== 'undefined' &&\n typeof process.env.REACT_APP_SC_DISABLE_SPEEDY !== 'undefined' &&\n process.env.REACT_APP_SC_DISABLE_SPEEDY !== ''\n ? process.env.REACT_APP_SC_DISABLE_SPEEDY === 'false'\n ? false\n : process.env.REACT_APP_SC_DISABLE_SPEEDY\n : typeof process !== 'undefined' &&\n typeof process.env !== 'undefined' &&\n typeof process.env.SC_DISABLE_SPEEDY !== 'undefined' &&\n process.env.SC_DISABLE_SPEEDY !== ''\n ? process.env.SC_DISABLE_SPEEDY === 'false'\n ? false\n : process.env.SC_DISABLE_SPEEDY\n : process.env.NODE_ENV !== 'production'\n);\n\n// Shared empty execution context when generating static styles\nexport const STATIC_EXECUTION_CONTEXT = {};\n", "import React from 'react';\nimport { IS_RSC } from '../constants';\n\nconst invalidHookCallRe = /invalid hook call/i;\nconst seen = new Set();\n\nexport const checkDynamicCreation = (displayName: string, componentId?: string | undefined) => {\n if (process.env.NODE_ENV !== 'production') {\n // Skip check in RSC environments where:\n // 1. Components are always module-level (can't be in render functions)\n // 2. Hook detection is unreliable due to different module evaluation context\n if (IS_RSC) {\n return;\n }\n\n const parsedIdString = componentId ? ` with the id of \"${componentId}\"` : '';\n const message =\n `The component ${displayName}${parsedIdString} has been created dynamically.\\n` +\n \"You may see this warning because you've called styled inside another component.\\n\" +\n 'To resolve this only create new StyledComponents outside of any render method and function component.\\n' +\n 'See https://styled-components.com/docs/basics#define-styled-components-outside-of-the-render-method for more info.\\n';\n\n // If a hook is called outside of a component:\n // React 17 and earlier throw an error\n // React 18 and above use console.error\n\n const originalConsoleError = console.error;\n try {\n let didNotCallInvalidHook = true;\n console.error = (consoleErrorMessage, ...consoleErrorArgs) => {\n // The error here is expected, since we're expecting anything that uses `checkDynamicCreation` to\n // be called outside of a React component.\n if (invalidHookCallRe.test(consoleErrorMessage)) {\n didNotCallInvalidHook = false;\n // This shouldn't happen, but resets `warningSeen` if we had this error happen intermittently\n seen.delete(message);\n } else {\n originalConsoleError(consoleErrorMessage, ...consoleErrorArgs);\n }\n };\n // We purposefully call a hook outside of a component and expect it to throw\n // If it doesn't, then we're inside another component.\n // Use useState instead of useRef to avoid importing useRef\n if (typeof React.useState === 'function') {\n React.useState(null);\n }\n\n if (didNotCallInvalidHook && !seen.has(message)) {\n console.warn(message);\n seen.add(message);\n }\n } catch (error) {\n // The error here is expected, since we're expecting anything that uses `checkDynamicCreation` to\n // be called outside of a React component.\n if (invalidHookCallRe.test((error as Error).message)) {\n // This shouldn't happen, but resets `warningSeen` if we had this error happen intermittently\n seen.delete(message);\n }\n } finally {\n console.error = originalConsoleError;\n }\n }\n};\n", "import { Dict } from '../types';\n\nexport const EMPTY_ARRAY = Object.freeze([]) as Readonly<any[]>;\nexport const EMPTY_OBJECT = Object.freeze({}) as Readonly<Dict<any>>;\n", "import { DefaultTheme, ExecutionProps } from '../types';\nimport { EMPTY_OBJECT } from './empties';\n\nexport default function determineTheme(\n props: ExecutionProps,\n providedTheme?: DefaultTheme | undefined,\n defaultProps: { theme?: DefaultTheme | undefined } = EMPTY_OBJECT\n): DefaultTheme | undefined {\n return (props.theme !== defaultProps.theme && props.theme) || providedTheme || defaultProps.theme;\n}\n", "const elements = [\n 'a',\n 'abbr',\n 'address',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'bdi',\n 'bdo',\n 'blockquote',\n 'body',\n 'button',\n 'br',\n 'canvas',\n 'caption',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'data',\n 'datalist',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'hr',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'map',\n 'mark',\n 'menu',\n 'meter',\n 'nav',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'search',\n 'section',\n 'select',\n 'slot',\n 'small',\n 'span',\n 'strong',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n 'circle',\n 'clipPath',\n 'defs',\n 'ellipse',\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDistantLight',\n 'feDropShadow',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight',\n 'feTile',\n 'feTurbulence',\n 'filter',\n 'foreignObject',\n 'g',\n 'image',\n 'line',\n 'linearGradient',\n 'marker',\n 'mask',\n 'path',\n 'pattern',\n 'polygon',\n 'polyline',\n 'radialGradient',\n 'rect',\n 'stop',\n 'svg',\n 'switch',\n 'symbol',\n 'text',\n 'textPath',\n 'tspan',\n 'use',\n] as const;\n\nexport default new Set(elements);\nexport type SupportedHTMLElements = (typeof elements)[number];\n", "// Source: https://www.w3.org/TR/cssom-1/#serialize-an-identifier\n// Control characters and non-letter first symbols are not supported\nconst escapeRegex = /[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~-]+/g;\n\nconst dashesAtEnds = /(^-|-$)/g;\n\n/**\n * TODO: Explore using CSS.escape when it becomes more available\n * in evergreen browsers.\n */\nexport default function escape(str: string) {\n return str // Replace all possible CSS selectors\n .replace(escapeRegex, '-') // Remove extraneous hyphens at the start and end\n .replace(dashesAtEnds, '');\n}\n", "const AD_REPLACER_R = /(a)(d)/gi;\n\n/* This is the \"capacity\" of our alphabet i.e. 2x26 for all letters plus their capitalised\n * counterparts */\nconst charsLength = 52;\n\n/* start at 75 for 'a' until 'z' (25) and then start at 65 for capitalised letters */\nconst getAlphabeticChar = (code: number) => String.fromCharCode(code + (code > 25 ? 39 : 97));\n\n/* input a number, usually a hash and convert it to base-52 */\nexport default function generateAlphabeticName(code: number) {\n let name = '';\n let x;\n\n /* get a char and divide by alphabet-length */\n for (x = Math.abs(code); x > charsLength; x = (x / charsLength) | 0) {\n name = getAlphabeticChar(x % charsLength) + name;\n }\n\n return (getAlphabeticChar(x % charsLength) + name).replace(AD_REPLACER_R, '$1-$2');\n}\n", "export const SEED = 5381;\n\n// When we have separate strings it's useful to run a progressive\n// version of djb2 where we pretend that we're still looping over\n// the same string\nexport const phash = (h: number, x: string) => {\n let i = x.length;\n\n while (i) {\n h = (h * 33) ^ x.charCodeAt(--i);\n }\n\n return h;\n};\n\n// This is a djb2 hashing function\nexport const hash = (x: string) => {\n return phash(SEED, x);\n};\n", "import generateAlphabeticName from './generateAlphabeticName';\nimport { hash } from './hash';\n\nexport default function generateComponentId(str: string) {\n return generateAlphabeticName(hash(str) >>> 0);\n}\n", "import { StyledTarget } from '../types';\n\nexport default function getComponentName(target: StyledTarget<any>) {\n return (\n (process.env.NODE_ENV !== 'production' ? typeof target === 'string' && target : false) ||\n (target as Exclude<StyledTarget<any>, string>).displayName ||\n (target as Function).name ||\n 'Component'\n );\n}\n", "import { StyledTarget } from '../types';\n\nexport default function isTag(target: StyledTarget<'web'>): target is string {\n return (\n typeof target === 'string' &&\n (process.env.NODE_ENV !== 'production'\n ? target.charAt(0) === target.charAt(0).toLowerCase()\n : true)\n );\n}\n", "import React from 'react';\nimport { AnyComponent } from '../types';\n\nconst hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\n// copied from react-is\nconst REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nconst REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\n\n/**\n * Adapted from hoist-non-react-statics to avoid the react-is dependency.\n */\nconst REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true,\n};\n\nconst KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true,\n};\n\nconst FORWARD_REF_STATICS = {\n $$typeof: true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n};\n\nconst MEMO_STATICS = {\n $$typeof: true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true,\n};\n\nconst TYPE_STATICS = {\n [REACT_FORWARD_REF_TYPE]: FORWARD_REF_STATICS,\n [REACT_MEMO_TYPE]: MEMO_STATICS,\n};\n\ntype OmniComponent = AnyComponent;\n\n// adapted from react-is\nfunction isMemo(\n object: OmniComponent | React.MemoExoticComponent<any>\n): object is React.MemoExoticComponent<any> {\n const $$typeofType = 'type' in object && object.type.$$typeof;\n\n return $$typeofType === REACT_MEMO_TYPE;\n}\n\nfunction getStatics(component: OmniComponent) {\n // React v16.11 and below\n if (isMemo(component)) {\n return MEMO_STATICS;\n }\n\n // React v16.12 and above\n return '$$typeof' in component\n ? TYPE_STATICS[component['$$typeof'] as unknown as string]\n : REACT_STATICS;\n}\n\nconst defineProperty = Object.defineProperty;\nconst getOwnPropertyNames = Object.getOwnPropertyNames;\nconst getOwnPropertySymbols = Object.getOwnPropertySymbols;\nconst getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nconst getPrototypeOf = Object.getPrototypeOf;\nconst objectPrototype = Object.prototype;\n\ntype ExcludeList = {\n [key: string]: true;\n};\n\nexport type NonReactStatics<S extends OmniComponent, C extends ExcludeList = {}> = {\n [key in Exclude<\n keyof S,\n S extends React.MemoExoticComponent<any>\n ? keyof typeof MEMO_STATICS | keyof C\n : S extends React.ForwardRefExoticComponent<any>\n ? keyof typeof FORWARD_REF_STATICS | keyof C\n : keyof typeof REACT_STATICS | keyof typeof KNOWN_STATICS | keyof C\n >]: S[key];\n};\n\nexport default function hoistNonReactStatics<\n T extends OmniComponent,\n S extends OmniComponent,\n C extends ExcludeList = {},\n>(targetComponent: T, sourceComponent: S, excludelist?: C | undefined) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n if (objectPrototype) {\n const inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, excludelist);\n }\n }\n\n let keys: (String | Symbol)[] = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n const targetStatics = getStatics(targetComponent);\n const sourceStatics = getStatics(sourceComponent);\n\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i] as unknown as string;\n if (\n !(key in KNOWN_STATICS) &&\n !(excludelist && excludelist[key]) &&\n !(sourceStatics && key in sourceStatics) &&\n !(targetStatics && key in targetStatics)\n ) {\n const descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor!);\n } catch (e) {\n /* ignore */\n }\n }\n }\n }\n\n return targetComponent as T & NonReactStatics<S, C>;\n}\n", "export default function isFunction(test: any): test is Function {\n return typeof test === 'function';\n}\n", "import { StyledComponentBrand } from '../types';\n\nexport default function isStyledComponent(target: any): target is StyledComponentBrand {\n return typeof target === 'object' && 'styledComponentId' in target;\n}\n", "/**\n * Convenience function for joining strings to form className chains\n */\nexport function joinStrings(a?: string | undefined, b?: string | undefined): string {\n return a && b ? `${a} ${b}` : a || b || '';\n}\n\nexport function joinStringArray(arr: string[], sep?: string | undefined): string {\n if (arr.length === 0) {\n return '';\n }\n\n let result = arr[0];\n for (let i = 1; i < arr.length; i++) {\n result += sep ? sep + arr[i] : arr[i];\n }\n return result;\n}\n", "export default function isPlainObject(x: any): x is Record<any, any> {\n return (\n x !== null &&\n typeof x === 'object' &&\n x.constructor.name === Object.name &&\n /* check for reasonable markers that the object isn't an element for react & preact/compat */\n !('props' in x && x.$$typeof)\n );\n}\n", "import isPlainObject from './isPlainObject';\n\nfunction mixinRecursively(target: any, source: any, forceMerge = false) {\n /* only merge into POJOs, Arrays, but for top level objects only\n * allow to merge into anything by passing forceMerge = true */\n if (!forceMerge && !isPlainObject(target) && !Array.isArray(target)) {\n return source;\n }\n\n if (Array.isArray(source)) {\n for (let key = 0; key < source.length; key++) {\n target[key] = mixinRecursively(target[key], source[key]);\n }\n } else if (isPlainObject(source)) {\n for (const key in source) {\n target[key] = mixinRecursively(target[key], source[key]);\n }\n }\n\n return target;\n}\n\n/**\n * Arrays & POJOs merged recursively, other objects and value types are overridden\n * If target is not a POJO or an Array, it will get source properties injected via shallow merge\n * Source objects applied left to right. Mutates & returns target. Similar to lodash merge.\n */\nexport default function mixinDeep(target: any, ...sources: any[]) {\n for (const source of sources) {\n mixinRecursively(target, source, true);\n }\n\n return target;\n}\n", "/**\n * If the Object prototype is frozen, the \"toString\" property is non-writable. This means that any objects which inherit this property\n * cannot have the property changed using a \"=\" assignment operator. If using strict mode, attempting that will cause an error. If not using\n * strict mode, attempting that will be silently ignored.\n *\n * If the Object prototype is frozen, inherited non-writable properties can still be shadowed using one of two mechanisms:\n *\n * 1. ES6 class methods: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes#methods\n * 2. Using the `Object.defineProperty()` static method:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty\n *\n * However, this project uses Babel to transpile ES6 classes, and transforms ES6 class methods to use the assignment operator instead:\n * https://babeljs.io/docs/babel-plugin-transform-class-properties#options\n *\n * Therefore, the most compatible way to shadow the prototype's \"toString\" property is to define a new \"toString\" property on this object.\n */\nexport function setToString(object: object, toStringFn: () => string) {\n Object.defineProperty(object, 'toString', { value: toStringFn });\n}\n", "export default {\n '1': 'Cannot create styled-component for component: %s.\\n\\n',\n '2': \"Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\\n\\n- Are you trying to reuse it across renders?\\n- Are you accidentally calling collectStyles twice?\\n\\n\",\n '3': 'Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\\n\\n',\n '4': 'The `StyleSheetManager` expects a valid target or sheet prop!\\n\\n- Does this error occur on the client and is your target falsy?\\n- Does this error occur on the server and is the sheet falsy?\\n\\n',\n '5': 'The clone method cannot be used on the client!\\n\\n- Are you running in a client-like environment on the server?\\n- Are you trying to run SSR on the client?\\n\\n',\n '6': \"Trying to insert a new style tag, but the given Node is unmounted!\\n\\n- Are you using a custom target that isn't mounted?\\n- Does your document not have a valid head element?\\n- Have you accidentally removed a style tag manually?\\n\\n\",\n '7': 'ThemeProvider: Please return an object from your \"theme\" prop function, e.g.\\n\\n```js\\ntheme={() => ({})}\\n```\\n\\n',\n '8': 'ThemeProvider: Please make your \"theme\" prop an object.\\n\\n',\n '9': 'Missing document `<head>`\\n\\n',\n '10': 'Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n',\n '11': '_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n',\n '12': 'It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n',\n '13': '%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\\n',\n '14': 'ThemeProvider: \"theme\" prop is required.\\n\\n',\n '15': \"A stylis plugin has been supplied that is not named. We need a name for each plugin to be able to prevent styling collisions between different stylis configurations within the same app. Before you pass your plugin to `<StyleSheetManager stylisPlugins={[]}>`, please make sure each plugin is uniquely-named, e.g.\\n\\n```js\\nObject.defineProperty(importedPlugin, 'name', { value: 'some-unique-name' });\\n```\\n\\n\",\n '16': \"Reached the limit of how many styled components may be created at group %s.\\nYou may only create up to 1,073,741,824 components. If you're creating components dynamically,\\nas for instance in your render method then you may be running into this limitation.\\n\\n\",\n '17': \"CSSStyleSheet could not be found on HTMLStyleElement.\\nHas styled-components' style tag been unmounted or altered by another script?\\n\",\n '18': 'ThemeProvider: Please make sure your useTheme hook is within a `<ThemeProvider>`',\n};\n", "import { Dict } from '../types';\nimport errorMap from './errors';\n\nconst ERRORS: Dict<any> = process.env.NODE_ENV !== 'production' ? errorMap : {};\n\n/**\n * super basic version of sprintf\n */\nfunction format(...args: [string, ...any]) {\n let a = args[0];\n const b = [];\n\n for (let c = 1, len = args.length; c < len; c += 1) {\n b.push(args[c]);\n }\n\n b.forEach(d => {\n a = a.replace(/%[a-z]/, d);\n });\n\n return a;\n}\n\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n */\nexport default function throwStyledComponentsError(\n code: string | number,\n ...interpolations: any[]\n) {\n if (process.env.NODE_ENV === 'production') {\n return new Error(\n `An error occurred. See https://github.com/styled-components/styled-components/blob/main/packages/styled-components/src/utils/errors.md#${code} for more information.${\n interpolations.length > 0 ? ` Args: ${interpolations.join(', ')}` : ''\n }`\n );\n } else {\n return new Error(format(ERRORS[code], ...interpolations).trim());\n }\n}\n", "import { SPLITTER } from '../constants';\nimport styledError from '../utils/error';\nimport { GroupedTag, Tag } from './types';\n\n/** Create a GroupedTag with an underlying Tag implementation */\nexport const makeGroupedTag = (tag: Tag) => {\n return new DefaultGroupedTag(tag);\n};\n\nconst BASE_SIZE = 1 << 9;\n\nconst DefaultGroupedTag = class DefaultGroupedTag implements GroupedTag {\n groupSizes: Uint32Array;\n length: number;\n tag: Tag;\n\n constructor(tag: Tag) {\n this.groupSizes = new Uint32Array(BASE_SIZE);\n this.length = BASE_SIZE;\n this.tag = tag;\n }\n\n indexOfGroup(group: number) {\n let index = 0;\n for (let i = 0; i < group; i++) {\n index += this.groupSizes[i];\n }\n\n return index;\n }\n\n insertRules(group: number, rules: string[]) {\n if (group >= this.groupSizes.length) {\n const oldBuffer = this.groupSizes;\n const oldSize = oldBuffer.length;\n\n let newSize = oldSize;\n while (group >= newSize) {\n newSize <<= 1;\n if (newSize < 0) {\n throw styledError(16, `${group}`);\n }\n }\n\n this.groupSizes = new Uint32Array(newSize);\n this.groupSizes.set(oldBuffer);\n this.length = newSize;\n\n for (let i = oldSize; i < newSize; i++) {\n this.groupSizes[i] = 0;\n }\n }\n\n let ruleIndex = this.indexOfGroup(group + 1);\n\n for (let i = 0, l = rules.length; i < l; i++) {\n if (this.tag.insertRule(ruleIndex, rules[i])) {\n this.groupSizes[group]++;\n ruleIndex++;\n }\n }\n }\n\n clearGroup(group: number) {\n if (group < this.length) {\n const length = this.groupSizes[group];\n const startIndex = this.indexOfGroup(group);\n const endIndex = startIndex + length;\n\n this.groupSizes[group] = 0;\n\n for (let i = startIndex; i < endIndex; i++) {\n this.tag.deleteRule(startIndex);\n }\n }\n }\n\n getGroup(group: number) {\n let css = '';\n if (group >= this.length || this.groupSizes[group] === 0) {\n return css;\n }\n\n const length = this.groupSizes[group];\n const startIndex = this.indexOfGroup(group);\n const endIndex = startIndex + length;\n\n for (let i = startIndex; i < endIndex; i++) {\n css += `${this.tag.getRule(i)}${SPLITTER}`;\n }\n\n return css;\n }\n};\n", "import styledError from '../utils/error';\n\nconst MAX_SMI = 1 << (31 - 1);\n\nlet groupIDRegister: Map<string, number> = new Map();\nlet reverseRegister: Map<number, string> = new Map();\nlet nextFreeGroup = 1;\n\nexport const resetGroupIds = () => {\n groupIDRegister = new Map();\n reverseRegister = new Map();\n nextFreeGroup = 1;\n};\n\nexport const getGroupForId = (id: string): number => {\n if (groupIDRegister.has(id)) {\n return groupIDRegister.get(id) as any;\n }\n\n while (reverseRegister.has(nextFreeGroup)) {\n nextFreeGroup++;\n }\n\n const group = nextFreeGroup++;\n\n if (process.env.NODE_ENV !== 'production' && ((group | 0) < 0 || group > MAX_SMI)) {\n throw styledError(16, `${group}`);\n }\n\n groupIDRegister.set(id, group);\n reverseRegister.set(group, id);\n return group;\n};\n\nexport const getIdForGroup = (group: number): void | string => {\n return reverseRegister.get(group);\n};\n\nexport const setGroupForId = (id: string, group: number) => {\n // move pointer\n nextFreeGroup = group + 1;\n\n groupIDRegister.set(id, group);\n reverseRegister.set(group, id);\n};\n", "import { SC_ATTR, SC_ATTR_ACTIVE, SC_ATTR_VERSION, SC_VERSION, SPLITTER } from '../constants';\nimport { getIdForGroup, setGroupForId } from './GroupIDAllocator';\nimport { Sheet } from './types';\n\nconst SELECTOR = `style[${SC_ATTR}][${SC_ATTR_VERSION}=\"${SC_VERSION}\"]`;\nconst MARKER_RE = new RegExp(`^${SC_ATTR}\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)`);\n\nexport const outputSheet = (sheet: Sheet) => {\n const tag = sheet.getTag();\n const { length } = tag;\n\n let css = '';\n for (let group = 0; group < length; group++) {\n const id = getIdForGroup(group);\n if (id === undefined) continue;\n\n const names = sheet.names.get(id);\n const rules = tag.getGroup(group);\n if (names === undefined || !names.size || rules.length === 0) continue;\n\n const selector = `${SC_ATTR}.g${group}[id=\"${id}\"]`;\n\n let content = '';\n if (names !== undefined) {\n names.forEach(name => {\n if (name.length > 0) {\n content += `${name},`;\n }\n });\n }\n\n // NOTE: It's easier to collect rules and have the marker\n // after the actual rules to simplify the rehydration\n css += `${rules}${selector}{content:\"${content}\"}${SPLITTER}`;\n }\n\n return css;\n};\n\nconst rehydrateNamesFromContent = (sheet: Sheet, id: string, content: string) => {\n const names = content.split(',');\n let name;\n\n for (let i = 0, l = names.length; i < l; i++) {\n if ((name = names[i])) {\n sheet.registerName(id, name);\n }\n }\n};\n\nconst rehydrateSheetFromTag = (sheet: Sheet, style: HTMLStyleElement) => {\n const parts = (style.textContent ?? '').split(SPLITTER);\n const rules: string[] = [];\n\n for (let i = 0, l = parts.length; i < l; i++) {\n const part = parts[i].trim();\n if (!part) continue;\n\n const marker = part.match(MARKER_RE);\n\n if (marker) {\n const group = parseInt(marker[1], 10) | 0;\n const id = marker[2];\n\n if (group !== 0) {\n // Rehydrate componentId to group index mapping\n setGroupForId(id, group);\n // Rehydrate names and rules\n // looks like: data-styled.g11[id=\"idA\"]{content:\"nameA,\"}\n rehydrateNamesFromContent(sheet, id, marker[3]);\n sheet.getTag().insertRules(group, rules);\n }\n\n rules.length = 0;\n } else {\n rules.push(part);\n }\n }\n};\n\nexport const rehydrateSheet = (sheet: Sheet) => {\n const nodes = document.querySelectorAll(SELECTOR);\n\n for (let i = 0, l = nodes.length; i < l; i++) {\n const node = nodes[i] as any as HTMLStyleElement;\n if (node && node.getAttribute(SC_ATTR) !== SC_ATTR_ACTIVE) {\n rehydrateSheetFromTag(sheet, node);\n\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n }\n }\n};\n", "declare let __webpack_nonce__: string;\n\nexport default function getNonce() {\n return typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n}\n", "import { SC_ATTR, SC_ATTR_ACTIVE, SC_ATTR_VERSION, SC_VERSION } from '../constants';\nimport { InsertionTarget } from '../types';\nimport styledError from '../utils/error';\nimport getNonce from '../utils/nonce';\n\n/** Find last style element if any inside target */\nconst findLastStyleTag = (target: InsertionTarget): void | HTMLStyleElement => {\n const arr = Array.from(target.querySelectorAll<HTMLStyleElement>(`style[${SC_ATTR}]`));\n\n return arr[arr.length - 1];\n};\n\n/** Create a style element inside `target` or <head> after the last */\nexport const makeStyleTag = (target?: InsertionTarget | undefined): HTMLStyleElement => {\n const head = document.head;\n const parent = target || head;\n const style = document.createElement('style');\n const prevStyle = findLastStyleTag(parent);\n const nextSibling = prevStyle !== undefined ? prevStyle.nextSibling : null;\n\n style.setAttribute(SC_ATTR, SC_ATTR_ACTIVE);\n style.setAttribute(SC_ATTR_VERSION, SC_VERSION);\n\n const nonce = getNonce();\n\n if (nonce) style.setAttribute('nonce', nonce);\n\n parent.insertBefore(style, nextSibling);\n\n return style;\n};\n\n/** Get the CSSStyleSheet instance for a given style element */\nexport const getSheet = (tag: HTMLStyleElement): CSSStyleSheet => {\n if (tag.sheet) {\n return tag.sheet as any as CSSStyleSheet;\n }\n\n // Avoid Firefox quirk where the style element might not have a sheet property\n const { styleSheets } = document;\n for (let i = 0, l = styleSheets.length; i < l; i++) {\n const sheet = styleSheets[i];\n if (sheet.ownerNode === tag) {\n return sheet as any as CSSStyleSheet;\n }\n }\n\n throw styledError(17);\n};\n\n/** Remove a GlobalStyle's SSR-rendered inline style tag(s) from the DOM */\nexport const removeGlobalStyleTag = (componentId: string): void => {\n if (typeof document === 'undefined') return;\n\n const styleTags = document.querySelectorAll(`style[data-styled-global=\"${componentId}\"]`);\n styleTags.forEach(tag => tag.remove());\n};\n", "import { InsertionTarget } from '../types';\nimport { getSheet, makeStyleTag } from './dom';\nimport { SheetOptions, Tag } from './types';\n\n/** Create a CSSStyleSheet-like tag depending on the environment */\nexport const makeTag = ({ isServer, useCSSOMInjection, target }: SheetOptions) => {\n if (isServer) {\n return new VirtualTag(target);\n } else if (useCSSOMInjection) {\n return new CSSOMTag(target);\n } else {\n return new TextTag(target);\n }\n};\n\nexport const CSSOMTag = class CSSOMTag implements Tag {\n element: HTMLStyleElement;\n\n sheet: CSSStyleSheet;\n\n length: number;\n\n constructor(target?: InsertionTarget | undefined) {\n this.element = makeStyleTag(target);\n\n // Avoid Edge bug where empty style elements don't create sheets\n this.element.appendChild(document.createTextNode(''));\n\n this.sheet = getSheet(this.element);\n this.length = 0;\n }\n\n insertRule(index: number, rule: string): boolean {\n try {\n this.sheet.insertRule(rule, index);\n this.length++;\n return true;\n } catch (_error) {\n return false;\n }\n }\n\n deleteRule(index: number): void {\n this.sheet.deleteRule(index);\n this.length--;\n }\n\n getRule(index: number): string {\n const rule = this.sheet.cssRules[index];\n\n // Avoid IE11 quirk where cssText is inaccessible on some invalid rules\n if (rule && rule.cssText) {\n return rule.cssText;\n } else {\n return '';\n }\n }\n};\n\n/** A Tag that emulates the CSSStyleSheet API but uses text nodes */\nexport const TextTag = class TextTag implements Tag {\n element: HTMLStyleElement;\n nodes: NodeListOf<Node>;\n length: number;\n\n constructor(target?: InsertionTarget | undefined) {\n this.element = makeStyleTag(target);\n this.nodes = this.element.childNodes;\n this.length = 0;\n }\n\n insertRule(index: number, rule: string) {\n if (index <= this.length && index >= 0) {\n const node = document.createTextNode(rule);\n const refNode = this.nodes[index];\n this.element.insertBefore(node, refNode || null);\n this.length++;\n return true;\n } else {\n return false;\n }\n }\n\n deleteRule(index: number) {\n this.element.removeChild(this.nodes[index]);\n this.length--;\n }\n\n getRule(index: number) {\n if (index < this.length) {\n return this.nodes[index].textContent as string;\n } else {\n return '';\n }\n }\n};\n\n/** A completely virtual (server-side) Tag that doesn't manipulate the DOM */\nexport const VirtualTag = class VirtualTag implements Tag {\n rules: string[];\n\n length: number;\n\n constructor(_target?: InsertionTarget | undefined) {\n this.rules = [];\n this.length = 0;\n }\n\n insertRule(index: number, rule: string) {\n if (index <= this.length) {\n this.rules.splice(index, 0, rule);\n this.length++;\n return true;\n } else {\n return false;\n }\n }\n\n deleteRule(index: number) {\n this.rules.splice(index, 1);\n this.length--;\n }\n\n getRule(index: number) {\n if (index < this.length) {\n return this.rules[index];\n } else {\n return '';\n }\n }\n};\n", "import { DISABLE_SPEEDY, IS_BROWSER } from '../constants';\nimport { InsertionTarget } from '../types';\nimport { EMPTY_OBJECT } from '../utils/empties';\nimport { setToString } from '../utils/setToString';\nimport { makeGroupedTag } from './GroupedTag';\nimport { getGroupForId } from './GroupIDAllocator';\nimport { outputSheet, rehydrateSheet } from './Rehydration';\nimport { makeTag } from './Tag';\nimport { GroupedTag, Sheet, SheetOptions } from './types';\n\nlet SHOULD_REHYDRATE = IS_BROWSER;\n\ntype SheetConstructorArgs = {\n isServer?: boolean;\n useCSSOMInjection?: boolean;\n target?: InsertionTarget | undefined;\n};\n\ntype GlobalStylesAllocationMap = {\n [key: string]: number;\n};\ntype NamesAllocationMap = Map<string, Set<string>>;\n\nconst defaultOptions: SheetOptions = {\n isServer: !IS_BROWSER,\n useCSSOMInjection: !DISABLE_SPEEDY,\n};\n\n/** Contains the main stylesheet logic for stringification and caching */\nexport default class StyleSheet implements Sheet {\n gs: GlobalStylesAllocationMap;\n names: NamesAllocationMap;\n options: SheetOptions;\n server: boolean;\n tag?: GroupedTag | undefined;\n\n /** Register a group ID to give it an index */\n static registerId(id: string): number {\n return getGroupForId(id);\n }\n\n constructor(\n options: SheetConstructorArgs = EMPTY_OBJECT as Object,\n globalStyles: GlobalStylesAllocationMap = {},\n names?: NamesAllocationMap | undefined\n ) {\n this.options = {\n ...defaultOptions,\n ...options,\n };\n\n this.gs = globalStyles;\n this.names = new Map(names as NamesAllocationMap);\n this.server = !!options.isServer;\n\n // We rehydrate only once and use the sheet that is created first\n if (!this.server && IS_BROWSER && SHOULD_REHYDRATE) {\n SHOULD_REHYDRATE = false;\n rehydrateSheet(this);\n }\n\n setToString(this, () => outputSheet(this));\n }\n\n rehydrate(): void {\n if (!this.server && IS_BROWSER) {\n rehydrateSheet(this);\n }\n }\n\n reconstructWithOptions(options: SheetConstructorArgs, withNames = true) {\n return new StyleSheet(\n { ...this.options, ...options },\n this.gs,\n (withNames && this.names) || undefined\n );\n }\n\n allocateGSInstance(id: string) {\n return (this.gs[id] = (this.gs[id] || 0) + 1);\n }\n\n /** Lazily initialises a GroupedTag for when it's actually needed */\n getTag() {\n return this.tag || (this.tag = makeGroupedTag(makeTag(this.options)));\n }\n\n /** Check whether a name is known for caching */\n hasNameForId(id: string, name: string): boolean {\n return this.names.has(id) && (this.names.get(id) as any).has(name);\n }\n\n /** Mark a group's name as known for caching */\n registerName(id: string, name: string) {\n getGroupForId(id);\n\n if (!this.names.has(id)) {\n const groupNames = new Set<string>();\n groupNames.add(name);\n this.names.set(id, groupNames);\n } else {\n (this.names.get(id) as any).add(name);\n }\n }\n\n /** Insert new rules which also marks the name as known */\n insertRules(id: string, name: string, rules: string | string[]) {\n this.registerName(id, name);\n this.getTag().insertRules(getGroupForId(id), rules);\n }\n\n /** Clears all cached names for a given group ID */\n clearNames(id: string) {\n if (this.names.has(id)) {\n (this.names.get(id) as any).clear();\n }\n }\n\n /** Clears all rules for a given group ID */\n clearRules(id: string) {\n this.getTag().clearGroup(getGroupForId(id));\n this.clearNames(id);\n }\n\n /** Clears the entire tag which deletes all rules but not its names */\n clearTag() {\n // NOTE: This does not clear the names, since it's only used during SSR\n // so that we can continuously output only new rules\n this.tag = undefined;\n }\n}\n", "import * as stylis from 'stylis';\nimport { Stringifier } from '../types';\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from './empties';\nimport throwStyledError from './error';\nimport { SEED, phash } from './hash';\n\nconst AMP_REGEX = /&/g;\n\n// Character codes for fast comparison\nconst DOUBLE_QUOTE = 34; // \"\nconst SINGLE_QUOTE = 39; // '\nconst SLASH = 47; // /\nconst ASTERISK = 42; // *\nconst BACKSLASH = 92; // \\\nconst OPEN_BRACE = 123; // {\nconst CLOSE_BRACE = 125; // }\nconst SEMICOLON = 59; // ;\nconst NEWLINE = 10; // \\n\nconst OPEN_PAREN = 40; // (\nconst CLOSE_PAREN = 41; // )\n\n/**\n * Strips JS-style line comments (//) from CSS, handling comments anywhere\n * in the line while preserving strings, url() contents, and valid CSS.\n * Optimized with early bail and charCodeAt for performance.\n */\nfunction stripLineComments(css: string): string {\n // Fast path: no // means no line comments\n if (css.indexOf('//') === -1) return css;\n\n const len = css.length;\n const parts: string[] = [];\n let start = 0;\n let i = 0;\n let inString = 0; // 0 = none, DOUBLE_QUOTE or SINGLE_QUOTE when in string\n let urlDepth = 0; // Track nesting depth inside url()\n\n while (i < len) {\n const code = css.charCodeAt(i);\n\n // Track string state\n if (\n (code === DOUBLE_QUOTE || code === SINGLE_QUOTE) &&\n (i === 0 || css.charCodeAt(i - 1) !== BACKSLASH)\n ) {\n if (inString === 0) {\n inString = code;\n } else if (inString === code) {\n inString = 0;\n }\n i++;\n continue;\n }\n\n // Skip string content\n if (inString !== 0) {\n i++;\n continue;\n }\n\n // Track url() context - check for 'url(' (case insensitive via | 32)\n if (\n code === OPEN_PAREN &&\n i >= 3 &&\n (css.charCodeAt(i - 1) | 32) === 108 && // l\n (css.charCodeAt(i - 2) | 32) === 114 && // r\n (css.charCodeAt(i - 3) | 32) === 117 // u\n ) {\n urlDepth = 1;\n i++;\n continue;\n }\n\n // Track nested parentheses inside url()\n if (urlDepth > 0) {\n if (code === CLOSE_PAREN) urlDepth--;\n else if (code === OPEN_PAREN) urlDepth++;\n i++;\n continue;\n }\n\n // Check for line comment (only when not in url())\n if (code === SLASH && i + 1 < len && css.charCodeAt(i + 1) === SLASH) {\n if (i > start) parts.push(css.substring(start, i));\n // Skip to end of line\n while (i < len && css.charCodeAt(i) !== NEWLINE) {\n i++;\n }\n start = i;\n continue;\n }\n\n i++;\n }\n\n // No comments found after indexOf check means // was in a string or url()\n if (start === 0) return css;\n if (start < len) parts.push(css.substring(start));\n return parts.join('');\n}\n\n/**\n * Checks if CSS has unbalanced closing braces that would cause stylis\n * to prematurely close rule blocks.\n * Optimized with early bail and charCodeAt for performance.\n */\nfunction hasUnbalancedBraces(css: string): boolean {\n // Fast path: no closing brace means can't have unbalanced braces\n if (css.indexOf('}') === -1) return false;\n\n const len = css.length;\n let depth = 0;\n let inString = 0; // 0 = none, char code when in string\n let inComment = false;\n\n for (let i = 0; i < len; i++) {\n const code = css.charCodeAt(i);\n\n // Handle CSS comments\n if (inString === 0 && !inComment && code === SLASH && css.charCodeAt(i + 1) === ASTERISK) {\n inComment = true;\n i++;\n continue;\n }\n if (inComment) {\n if (code === ASTERISK && css.charCodeAt(i + 1) === SLASH) {\n inComment = false;\n i++;\n }\n continue;\n }\n\n // Track string state\n if (\n (code === DOUBLE_QUOTE || code === SINGLE_QUOTE) &&\n (i === 0 || css.charCodeAt(i - 1) !== BACKSLASH)\n ) {\n if (inString === 0) {\n inString = code;\n } else if (inString === code) {\n inString = 0;\n }\n continue;\n }\n if (inString !== 0) continue;\n\n // Track brace depth\n if (code === OPEN_BRACE) {\n depth++;\n } else if (code === CLOSE_BRACE) {\n depth--;\n if (depth < 0) return true;\n }\n }\n\n return depth !== 0 || inString !== 0;\n}\n\n/**\n * Sanitizes CSS by removing declarations with unbalanced braces.\n * This contains invalid syntax to just the affected declaration.\n * Optimized with charCodeAt for performance.\n */\nfunction sanitizeCSS(css: string): string {\n // Fast path: valid CSS passes through unchanged\n if (!hasUnbalancedBraces(css)) {\n return css;\n }\n\n const len = css.length;\n let result = '';\n let declStart = 0;\n let braceDepth = 0;\n let inString = 0;\n let inComment = false;\n\n for (let i = 0; i < len; i++) {\n const code = css.charCodeAt(i);\n\n // Handle CSS comments\n if (inString === 0 && !inComment && code === SLASH && css.charCodeAt(i + 1) === ASTERISK) {\n inComment = true;\n i++;\n continue;\n }\n if (inComment) {\n if (code === ASTERISK && css.charCodeAt(i + 1) === SLASH) {\n inComment = false;\n i++;\n }\n continue;\n }\n\n // Track string state\n if (\n (code === DOUBLE_QUOTE || code === SINGLE_QUOTE) &&\n (i === 0 || css.charCodeAt(i - 1) !== BACKSLASH)\n ) {\n if (inString === 0) {\n inString = code;\n } else if (inString === code) {\n inString = 0;\n }\n continue;\n }\n if (inString !== 0) continue;\n\n if (code === OPEN_BRACE) {\n braceDepth++;\n } else if (code === CLOSE_BRACE) {\n braceDepth--;\n\n if (braceDepth < 0) {\n // Extra closing brace - skip to next semicolon or newline\n let skipEnd = i + 1;\n while (skipEnd < len) {\n const skipCode = css.charCodeAt(skipEnd);\n if (skipCode === SEMICOLON || skipCode === NEWLINE) break;\n skipEnd++;\n }\n if (skipEnd < len && css.charCodeAt(skipEnd) === SEMICOLON) skipEnd++;\n\n braceDepth = 0;\n i = skipEnd - 1;\n declStart = skipEnd;\n continue;\n }\n\n if (braceDepth === 0) {\n result += css.substring(declStart, i + 1);\n declStart = i + 1;\n }\n } else if (code === SEMICOLON && braceDepth === 0) {\n result += css.substring(declStart, i + 1);\n declStart = i + 1;\n }\n }\n\n // Add remaining valid content\n if (declStart < len) {\n const remaining = css.substring(declStart);\n if (!hasUnbalancedBraces(remaining)) {\n result += remaining;\n }\n }\n\n return result;\n}\n\nexport type ICreateStylisInstance = {\n options?: { namespace?: string | undefined; prefix?: boolean | undefined } | undefined;\n plugins?: stylis.Middleware[] | undefined;\n};\n\n/**\n * Takes an element and recurses through it's rules added the namespace to the start of each selector.\n * Takes into account media queries by recursing through child rules if they are present.\n */\nfunction recursivelySetNamepace(compiled: stylis.Element[], namespace: String): stylis.Element[] {\n return compiled.map(rule => {\n if (rule.type === 'rule') {\n // add the namespace to the start\n rule.value = `${namespace} ${rule.value}`;\n // add the namespace after each comma for subsequent selectors.\n rule.value = rule.value.replaceAll(',', `,${namespace} `);\n rule.props = (rule.props as string[]).map(prop => {\n return `${namespace} ${prop}`;\n });\n }\n\n if (Array.isArray(rule.children) && rule.type !== '@keyframes') {\n rule.children = recursivelySetNamepace(rule.children, namespace);\n }\n return rule;\n });\n}\n\nexport default function createStylisInstance(\n {\n options = EMPTY_OBJECT as object,\n plugins = EMPTY_ARRAY as unknown as stylis.Middleware[],\n }: ICreateStylisInstance = EMPTY_OBJECT as object\n) {\n let _componentId: string;\n let _selector: string;\n let _selectorRegexp: RegExp;\n\n const selfReferenceReplacer = (match: string, offset: number, string: string) => {\n if (\n /**\n * We only want to refer to the static class directly if the selector is part of a\n * self-reference selector `& + & { color: red; }`\n */\n string.startsWith(_selector) &&\n string.endsWith(_selector) &&\n string.replaceAll(_selector, '').length > 0\n ) {\n return `.${_componentId}`;\n }\n\n return match;\n };\n\n /**\n * When writing a style like\n *\n * & + & {\n * color: red;\n * }\n *\n * The second ampersand should be a reference to the static component class. stylis\n * has no knowledge of static class so we have to intelligently replace the base selector.\n *\n * https://github.com/thysultan/stylis.js/tree/v4.0.2#abstract-syntax-structure\n */\n const selfReferenceReplacementPlugin: stylis.Middleware = element => {\n if (element.type === stylis.RULESET && element.value.includes('&')) {\n (element.props as string[])[0] = element.props[0]\n // catch any hanging references that stylis missed\n .replace(AMP_REGEX, _selector)\n .replace(_selectorRegexp, selfReferenceReplacer);\n }\n };\n\n const middlewares = plugins.slice();\n\n middlewares.push(selfReferenceReplacementPlugin);\n\n /**\n * Enables automatic vendor-prefixing for styles.\n */\n if (options.prefix) {\n middlewares.push(stylis.prefixer);\n }\n\n middlewares.push(stylis.stringify);\n\n const stringifyRules: Stringifier = (\n css: string,\n selector = '',\n /**\n * This \"prefix\" referes to a _selector_ prefix.\n */\n prefix = '',\n componentId = '&'\n ) => {\n // stylis has no concept of state to be passed to plugins\n // but since JS is single-threaded, we can rely on that to ensure\n // these properties stay in sync with the current stylis run\n _componentId = componentId;\n _selector = selector;\n _selectorRegexp = new RegExp(`\\\\${_selector}\\\\b`, 'g');\n\n const flatCSS = sanitizeCSS(stripLineComments(css));\n let compiled = stylis.compile(\n prefix || selector ? `${prefix} ${selector} { ${flatCSS} }` : flatCSS\n );\n\n if (options.namespace) {\n compiled = recursivelySetNamepace(compiled, options.namespace);\n }\n\n const stack: string[] = [];\n\n stylis.serialize(\n compiled,\n stylis.middleware(middlewares.concat(stylis.rulesheet(value => stack.push(value))))\n );\n\n return stack;\n };\n\n stringifyRules.hash = plugins.length\n ? plugins\n .reduce((acc, plugin) => {\n if (!plugin.name) {\n throwStyledError(15);\n }\n\n return phash(acc, plugin.name);\n }, SEED)\n .toString()\n : '';\n\n return stringifyRules;\n}\n", "import React from 'react';\nimport type stylis from 'stylis';\nimport { IS_RSC } from '../constants';\nimport StyleSheet from '../sheet';\nimport { InsertionTarget, ShouldForwardProp, Stringifier } from '../types';\nimport createStylisInstance from '../utils/stylis';\n\nexport const mainSheet: StyleSheet = new StyleSheet();\nexport const mainStylis: Stringifier = createStylisInstance();\n\nexport type IStyleSheetContext = {\n shouldForwardProp?: ShouldForwardProp<'web'> | undefined;\n styleSheet: StyleSheet;\n stylis: Stringifier;\n};\n\nconst defaultContextValue: IStyleSheetContext = {\n shouldForwardProp: undefined,\n styleSheet: mainSheet,\n stylis: mainStylis,\n};\n\n// Create context only if createContext is available, otherwise create a fallback\nexport const StyleSheetContext = !IS_RSC\n ? React.createContext<IStyleSheetContext>(defaultContextValue)\n : ({\n Provider: ({ children }: { children: React.ReactNode; value?: IStyleSheetContext }) =>\n children,\n Consumer: ({ children }: { children: (value: IStyleSheetContext) => React.ReactNode }) =>\n children(defaultContextValue),\n } as React.Context<IStyleSheetContext>);\n\nexport const StyleSheetConsumer = StyleSheetContext.Consumer;\n\nexport type IStylisContext = Stringifier | void;\nexport const StylisContext = !IS_RSC\n ? React.createContext<IStylisContext>(undefined)\n : ({\n Provider: ({ children }: { children: React.ReactNode; value?: IStylisContext }) => children,\n Consumer: ({ children }: { children: (value: IStylisContext) => React.ReactNode }) =>\n children(undefined),\n } as React.Context<IStylisContext>);\nexport const StylisConsumer = StylisContext.Consumer;\n\nexport function useStyleSheetContext() {\n // Skip useContext if we're in an RSC environment without context support\n return !IS_RSC ? React.useContext(StyleSheetContext) : defaultContextValue;\n}\n\nexport type IStyleSheetManager = React.PropsWithChildren<{\n /**\n * If desired, you can pass this prop to disable \"speedy\" insertion mode, which\n * uses the browser [CSSOM APIs](https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet).\n * When disabled, rules are inserted as simple text into style blocks.\n */\n disableCSSOMInjection?: undefined | boolean;\n /**\n * If you are working exclusively with modern browsers, vendor prefixes can often be omitted\n * to reduce the weight of CSS on the page.\n */\n enableVendorPrefixes?: undefined | boolean;\n /**\n * Provide an optional selector to be prepended to all generated style rules.\n */\n namespace?: undefined | string;\n /**\n * Create and provide your own `StyleSheet` if necessary for advanced SSR scenarios.\n */\n sheet?: undefined | StyleSheet;\n /**\n * Starting in v6, styled-components no longer does its own prop validation\n * and recommends use of transient props \"$prop\" to pass style-only props to\n * components. If for some reason you are not able to use transient props, a\n * prop validation function can be provided via `StyleSheetManager`, such as\n * `@emotion/is-prop-valid`.\n *\n * When the return value is `true`, props will be forwarded to the DOM/underlying\n * component. If return value is `false`, the prop will be discarded after styles\n * are calculated.\n *\n * Manually composing `styled.{element}.withConfig({shouldForwardProp})` will\n * override this default.\n */\n shouldForwardProp?: undefined | IStyleSheetContext['shouldForwardProp'];\n /**\n * An array of plugins to be run by stylis (style processor) during compilation.\n * Check out [what's available on npm*](https://www.npmjs.com/search?q=keywords%3Astylis).\n *\n * \\* The plugin(s) must be compatible with stylis v4 or above.\n */\n stylisPlugins?: undefined | stylis.Middleware[];\n /**\n * Provide an alternate DOM node to host generated styles; useful for iframes.\n */\n target?: undefined | InsertionTarget;\n}>;\n\nexport function StyleSheetManager(props: IStyleSheetManager): React.JSX.Element {\n // In RSC environments without context support, StyleSheetManager becomes a no-op\n if (IS_RSC || !React.useMemo) {\n return props.children as React.JSX.Element;\n }\n\n const { styleSheet } = useStyleSheetContext();\n\n const resolvedStyleSheet = React.useMemo(() => {\n let sheet = styleSheet;\n\n if (props.sheet) {\n sheet = props.sheet;\n } else if (props.target) {\n sheet = sheet.reconstructWithOptions({ target: props.target }, false);\n }\n\n if (props.disableCSSOMInjection) {\n sheet = sheet.reconstructWithOptions({ useCSSOMInjection: false });\n }\n\n return sheet;\n }, [props.disableCSSOMInjection, props.sheet, props.target, styleSheet]);\n\n const stylis = React.useMemo(\n () =>\n createStylisInstance({\n options: { namespace: props.namespace, prefix: props.enableVendorPrefixes },\n plugins: props.stylisPlugins,\n }),\n [props.enableVendorPrefixes, props.namespace, props.stylisPlugins]\n );\n\n const styleSheetContextValue = React.useMemo(\n () => ({\n shouldForwardProp: props.shouldForwardProp,\n styleSheet: resolvedStyleSheet,\n stylis,\n }),\n [props.shouldForwardProp, resolvedStyleSheet, stylis]\n );\n\n return (\n <StyleSheetContext.Provider value={styleSheetContextValue}>\n <StylisContext.Provider value={stylis}>{props.children}</StylisContext.Provider>\n </StyleSheetContext.Provider>\n );\n}\n", "import StyleSheet from '../sheet';\nimport { Keyframes as KeyframesType, Stringifier } from '../types';\nimport styledError from '../utils/error';\nimport { setToString } from '../utils/setToString';\nimport { mainStylis } from './StyleSheetManager';\n\nexport default class Keyframes implements KeyframesType {\n id: string;\n name: string;\n rules: string;\n\n constructor(name: string, rules: string) {\n this.name = name;\n this.id = `sc-keyframes-${name}`;\n this.rules = rules;\n\n setToString(this, () => {\n throw styledError(12, String(this.name));\n });\n }\n\n inject = (styleSheet: StyleSheet, stylisInstance: Stringifier = mainStylis): void => {\n const resolvedName = this.name + stylisInstance.hash;\n\n if (!styleSheet.hasNameForId(this.id, resolvedName)) {\n styleSheet.insertRules(\n this.id,\n resolvedName,\n stylisInstance(this.rules, resolvedName, '@keyframes')\n );\n }\n };\n\n getName(stylisInstance: Stringifier = mainStylis): string {\n return this.name + stylisInstance.hash;\n }\n}\n", "import unitless from '@emotion/unitless';\n\n// Taken from https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/dangerousStyleValue.js\nexport default function addUnitIfNeeded(name: string, value: any) {\n // https://github.com/amilajack/eslint-plugin-flowtype-errors/issues/133\n if (value == null || typeof value === 'boolean' || value === '') {\n return '';\n }\n\n if (typeof value === 'number' && value !== 0 && !(name in unitless) && !name.startsWith('--')) {\n return `${value}px`; // Presumes implicit 'px' suffix for unitless numbers except for CSS variables\n }\n\n return String(value).trim();\n}\n", "const isUpper = (c: string) => c >= 'A' && c <= 'Z';\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n */\nexport default function hyphenateStyleName(string: string): string {\n let output = '';\n\n for (let i = 0; i < string.length; i++) {\n const c = string[i];\n // Check for CSS variable prefix\n if (i === 1 && c === '-' && string[0] === '-') {\n return string;\n }\n\n if (isUpper(c)) {\n output += '-' + c.toLowerCase();\n } else {\n output += c;\n }\n }\n\n return output.startsWith('ms-') ? '-' + output : output;\n}\n", "import Keyframes from '../models/Keyframes';\nimport StyleSheet from '../sheet';\nimport {\n AnyComponent,\n Dict,\n ExecutionContext,\n Interpolation,\n IStyledComponent,\n RuleSet,\n Stringifier,\n StyledObject,\n} from '../types';\nimport addUnitIfNeeded from './addUnitIfNeeded';\nimport { EMPTY_ARRAY } from './empties';\nimport getComponentName from './getComponentName';\nimport hyphenate from './hyphenateStyleName';\nimport isFunction from './isFunction';\nimport isPlainObject from './isPlainObject';\nimport isStatelessFunction from './isStatelessFunction';\nimport isStyledComponent from './isStyledComponent';\n\n/**\n * It's falsish not falsy because 0 is allowed.\n */\nconst isFalsish = (chunk: any): chunk is undefined | null | false | '' =>\n chunk === undefined || chunk === null || chunk === false || chunk === '';\n\nexport const objToCssArray = (obj: Dict<any>): string[] => {\n const rules = [];\n\n for (const key in obj) {\n const val = obj[key];\n if (!obj.hasOwnProperty(key) || isFalsish(val)) continue;\n\n // @ts-expect-error Property 'isCss' does not exist on type 'any[]'\n if ((Array.isArray(val) && val.isCss) || isFunction(val)) {\n rules.push(`${hyphenate(key)}:`, val, ';');\n } else if (isPlainObject(val)) {\n rules.push(`${key} {`, ...objToCssArray(val), '}');\n } else {\n rules.push(`${hyphenate(key)}: ${addUnitIfNeeded(key, val)};`);\n }\n }\n\n return rules;\n};\n\nexport default function flatten<Props extends object>(\n chunk: Interpolation<object>,\n executionContext?: (ExecutionContext & Props) | undefined,\n styleSheet?: StyleSheet | undefined,\n stylisInstance?: Stringifier | undefined\n): RuleSet<Props> {\n if (isFalsish(chunk)) {\n return [];\n }\n\n /* Handle other components */\n if (isStyledComponent(chunk)) {\n return [`.${(chunk as unknown as IStyledComponent<'web', any>).styledComponentId}`];\n }\n\n /* Either execute or defer the function */\n if (isFunction(chunk)) {\n if (isStatelessFunction(chunk) && executionContext) {\n const result = chunk(executionContext);\n\n if (\n process.env.NODE_ENV !== 'production' &&\n typeof result === 'object' &&\n !Array.isArray(result) &&\n !(result instanceof Keyframes) &&\n !isPlainObject(result) &&\n result !== null\n ) {\n console.error(\n `${getComponentName(\n chunk as AnyComponent\n )} is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.`\n );\n }\n\n return flatten<Props>(result, executionContext, styleSheet, stylisInstance);\n } else {\n return [chunk as unknown as IStyledComponent<'web'>];\n }\n }\n\n if (chunk instanceof Keyframes) {\n if (styleSheet) {\n chunk.inject(styleSheet, stylisInstance);\n return [chunk.getName(stylisInstance)];\n } else {\n return [chunk];\n }\n }\n\n /* Handle objects */\n if (isPlainObject(chunk)) {\n return objToCssArray(chunk as StyledObject<Props>);\n }\n\n if (!Array.isArray(chunk)) {\n return [chunk.toString()];\n }\n\n return flatMap(chunk, chunklet =>\n flatten<Props>(chunklet, executionContext, styleSheet, stylisInstance)\n );\n}\n\nfunction flatMap<T, U>(array: T[], transform: (value: T, index: number, array: T[]) => U[]): U[] {\n return Array.prototype.concat.apply(EMPTY_ARRAY, array.map(transform));\n}\n", "import isFunction from './isFunction';\n\nexport default function isStatelessFunction(test: any): test is Function {\n return isFunction(test) && !(test.prototype && test.prototype.isReactComponent);\n}\n", "import { RuleSet } from '../types';\nimport isFunction from './isFunction';\nimport isStyledComponent from './isStyledComponent';\n\nexport default function isStaticRules<Props extends object>(rules: RuleSet<Props>) {\n for (let i = 0; i < rules.length; i += 1) {\n const rule = rules[i];\n\n if (isFunction(rule) && !isStyledComponent(rule)) {\n // functions are allowed to be static if they're just being\n // used to get the classname of a nested styled component\n return false;\n }\n }\n\n return true;\n}\n", "import { SC_VERSION } from '../constants';\nimport StyleSheet from '../sheet';\nimport { getGroupForId } from '../sheet/GroupIDAllocator';\nimport { ExecutionContext, RuleSet, Stringifier } from '../types';\nimport flatten from '../utils/flatten';\nimport generateName from '../utils/generateAlphabeticName';\nimport { hash, phash } from '../utils/hash';\nimport isStaticRules from '../utils/isStaticRules';\nimport { joinStringArray, joinStrings } from '../utils/joinStrings';\n\ndeclare const __SERVER__: boolean;\n\nconst SEED = hash(SC_VERSION);\n\n/**\n * ComponentStyle is all the CSS-specific stuff, not the React-specific stuff.\n */\nexport default class ComponentStyle {\n baseHash: number;\n baseStyle: ComponentStyle | null | undefined;\n componentId: string;\n isStatic: boolean;\n rules: RuleSet<any>;\n staticRulesId: string;\n\n constructor(rules: RuleSet<any>, componentId: string, baseStyle?: ComponentStyle | undefined) {\n this.rules = rules;\n this.staticRulesId = '';\n this.isStatic =\n process.env.NODE_ENV === 'production' &&\n (baseStyle === undefined || baseStyle.isStatic) &&\n isStaticRules(rules);\n this.componentId = componentId;\n this.baseHash = phash(SEED, componentId);\n this.baseStyle = baseStyle;\n\n // NOTE: This registers the componentId, which ensures a consistent order\n // for this component's styles compared to others\n StyleSheet.registerId(componentId);\n }\n\n generateAndInjectStyles(\n executionContext: ExecutionContext,\n styleSheet: StyleSheet,\n stylis: Stringifier\n ): { className: string; css: string } {\n let names = this.baseStyle\n ? this.baseStyle.generateAndInjectStyles(executionContext, styleSheet, stylis).className\n : '';\n\n // force dynamic classnames if user-supplied stylis plugins are in use\n if (this.isStatic && !stylis.hash) {\n if (this.staticRulesId && styleSheet.hasNameForId(this.componentId, this.staticRulesId)) {\n names = joinStrings(names, this.staticRulesId);\n } else {\n const cssStatic = joinStringArray(\n flatten(this.rules, executionContext, styleSheet, stylis) as string[]\n );\n const name = generateName(phash(this.baseHash, cssStatic) >>> 0);\n\n if (!styleSheet.hasNameForId(this.componentId, name)) {\n const cssStaticFormatted = stylis(cssStatic, `.${name}`, undefined, this.componentId);\n styleSheet.insertRules(this.componentId, name, cssStaticFormatted);\n }\n\n names = joinStrings(names, name);\n this.staticRulesId = name;\n }\n } else {\n let dynamicHash = phash(this.baseHash, stylis.hash);\n let css = '';\n\n for (let i = 0; i < this.rules.length; i++) {\n const partRule = this.rules[i];\n\n if (typeof partRule === 'string') {\n css += partRule;\n\n if (process.env.NODE_ENV !== 'production') dynamicHash = phash(dynamicHash, partRule);\n } else if (partRule) {\n const partString = joinStringArray(\n flatten(partRule, executionContext, styleSheet, stylis) as string[]\n );\n // The same value can switch positions in the array, so we include \"i\" in the hash.\n dynamicHash = phash(dynamicHash, partString + i);\n css += partString;\n }\n }\n\n if (css) {\n const name = generateName(dynamicHash >>> 0);\n\n if (!styleSheet.hasNameForId(this.componentId, name)) {\n const cssFormatted = stylis(css, `.${name}`, undefined, this.componentId);\n styleSheet.insertRules(this.componentId, name, cssFormatted);\n }\n\n names = joinStrings(names, name);\n }\n }\n\n // Retrieve CSS from Tag for RSC rendering\n const generatedCSS =\n typeof window === 'undefined'\n ? styleSheet.getTag().getGroup(getGroupForId(this.componentId))\n : '';\n\n return { className: names, css: generatedCSS };\n }\n}\n", "import React from 'react';\nimport { IS_RSC } from '../constants';\nimport styledError from '../utils/error';\nimport isFunction from '../utils/isFunction';\n\n// Helper type for the `DefaultTheme` interface that enforces an object type & exclusively allows\n// for typed keys.\ntype DefaultThemeAsObject<T = object> = Record<keyof T, any>;\n\n/**\n * Override DefaultTheme to get accurate typings for your project.\n *\n * ```\n * // create styled-components.d.ts in your project source\n * // if it isn't being picked up, check tsconfig compilerOptions.types\n * import type { CSSProp } from \"styled-components\";\n * import Theme from './theme';\n *\n * type ThemeType = typeof Theme;\n *\n * declare module \"styled-components\" {\n * export interface DefaultTheme extends ThemeType {}\n * }\n *\n * declare module \"react\" {\n * interface DOMAttributes<T> {\n * css?: CSSProp;\n * }\n * }\n * ```\n */\nexport interface DefaultTheme extends DefaultThemeAsObject {}\n\ntype ThemeFn = (outerTheme?: DefaultTheme | undefined) => DefaultTheme;\ntype ThemeArgument = DefaultTheme | ThemeFn;\n\ntype Props = {\n children?: React.ReactNode;\n theme: ThemeArgument;\n};\n\n// Create context only if createContext is available, otherwise create a fallback\nexport const ThemeContext = !IS_RSC\n ? React.createContext<DefaultTheme | undefined>(undefined)\n : ({\n Provider: ({ children }: { children: React.ReactNode; value?: DefaultTheme }) => children,\n Consumer: ({ children }: { children: (theme?: DefaultTheme) => React.ReactNode }) =>\n children(undefined),\n } as React.Context<DefaultTheme | undefined>);\n\nexport const ThemeConsumer = ThemeContext.Consumer;\n\nfunction mergeTheme(theme: ThemeArgument, outerTheme?: DefaultTheme | undefined): DefaultTheme {\n if (!theme) {\n throw styledError(14);\n }\n\n if (isFunction(theme)) {\n const themeFn = theme as ThemeFn;\n const mergedTheme = themeFn(outerTheme);\n\n if (\n process.env.NODE_ENV !== 'production' &&\n (mergedTheme === null || Array.isArray(mergedTheme) || typeof mergedTheme !== 'object')\n ) {\n throw styledError(7);\n }\n\n return mergedTheme;\n }\n\n if (Array.isArray(theme) || typeof theme !== 'object') {\n throw styledError(8);\n }\n\n return outerTheme ? { ...outerTheme, ...theme } : theme;\n}\n\n/**\n * Returns the current theme (as provided by the closest ancestor `ThemeProvider`.)\n *\n * If no `ThemeProvider` is found, the function will error. If you need access to the theme in an\n * uncertain composition scenario, `React.useContext(ThemeContext)` will not emit an error if there\n * is no `ThemeProvider` ancestor.\n */\nexport function useTheme(): DefaultTheme {\n // Skip useContext if we're in an RSC environment without context support\n const theme = !IS_RSC ? React.useContext(ThemeContext) : undefined;\n\n if (!theme) {\n throw styledError(18);\n }\n\n return theme;\n}\n\n/**\n * Provide a theme to an entire react component tree via context\n */\nexport default function ThemeProvider(props: Props): React.JSX.Element | null {\n // In RSC environments without context support, ThemeProvider becomes a no-op\n if (IS_RSC) {\n return props.children as React.JSX.Element | null;\n }\n\n const outerTheme = React.useContext(ThemeContext);\n const themeContext = React.useMemo(\n () => mergeTheme(props.theme, outerTheme),\n [props.theme, outerTheme]\n );\n\n if (!props.children) {\n return null;\n }\n\n return <ThemeContext.Provider value={themeContext}>{props.children}</ThemeContext.Provider>;\n}\n", "import isPropValid from '@emotion/is-prop-valid';\nimport React, { createElement, PropsWithoutRef, Ref } from 'react';\nimport { IS_RSC, SC_VERSION } from '../constants';\nimport type {\n AnyComponent,\n Attrs,\n BaseObject,\n Dict,\n ExecutionContext,\n ExecutionProps,\n IStyledComponent,\n IStyledComponentFactory,\n IStyledStatics,\n OmitNever,\n RuleSet,\n StyledOptions,\n WebTarget,\n} from '../types';\nimport { checkDynamicCreation } from '../utils/checkDynamicCreation';\nimport createWarnTooManyClasses from '../utils/createWarnTooManyClasses';\nimport determineTheme from '../utils/determineTheme';\nimport domElements from '../utils/domElements';\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from '../utils/empties';\nimport escape from '../utils/escape';\nimport generateComponentId from '../utils/generateComponentId';\nimport generateDisplayName from '../utils/generateDisplayName';\nimport hoist from '../utils/hoist';\nimport isFunction from '../utils/isFunction';\nimport isStyledComponent from '../utils/isStyledComponent';\nimport isTag from '../utils/isTag';\nimport { joinStrings } from '../utils/joinStrings';\nimport merge from '../utils/mixinDeep';\nimport { setToString } from '../utils/setToString';\nimport ComponentStyle from './ComponentStyle';\nimport { useStyleSheetContext } from './StyleSheetManager';\nimport { DefaultTheme, ThemeContext } from './ThemeProvider';\n\nconst identifiers: { [key: string]: number } = {};\n\n/* We depend on components having unique IDs */\nfunction generateId(\n displayName?: string | undefined,\n parentComponentId?: string | undefined\n): string {\n const name = typeof displayName !== 'string' ? 'sc' : escape(displayName);\n // Ensure that no displayName can lead to duplicate componentIds\n identifiers[name] = (identifiers[name] || 0) + 1;\n\n const componentId = `${name}-${generateComponentId(\n // SC_VERSION gives us isolation between multiple runtimes on the page at once\n // this is improved further with use of the babel plugin \"namespace\" feature\n SC_VERSION + name + identifiers[name]\n )}`;\n\n return parentComponentId ? `${parentComponentId}-${componentId}` : componentId;\n}\n\nfunction useInjectedStyle<T extends ExecutionContext>(\n componentStyle: ComponentStyle,\n resolvedAttrs: T\n): { className: string; css: string } {\n const ssc = useStyleSheetContext();\n\n const result = componentStyle.generateAndInjectStyles(resolvedAttrs, ssc.styleSheet, ssc.stylis);\n\n if (process.env.NODE_ENV !== 'production' && React.useDebugValue) {\n React.useDebugValue(result.className);\n }\n\n return result;\n}\n\nfunction resolveContext<Props extends BaseObject>(\n attrs: Attrs<React.HTMLAttributes<Element> & Props>[],\n props: ExecutionProps & Props,\n theme: DefaultTheme\n): React.HTMLAttributes<Element> & ExecutionContext & Props {\n const context: React.HTMLAttributes<Element> & ExecutionContext & Props = {\n ...props,\n // unset, add `props.className` back at the end so props always \"wins\"\n className: undefined,\n theme,\n } as React.HTMLAttributes<Element> & ExecutionContext & Props;\n\n let attrDef;\n\n for (let i = 0; i < attrs.length; i += 1) {\n attrDef = attrs[i];\n const resolvedAttrDef = isFunction(attrDef) ? attrDef(context) : attrDef;\n\n for (const key in resolvedAttrDef) {\n if (key === 'className') {\n context.className = joinStrings(context.className, resolvedAttrDef[key] as string);\n } else if (key === 'style') {\n context.style = { ...context.style, ...(resolvedAttrDef[key] as React.CSSProperties) };\n } else {\n // @ts-expect-error attrs can dynamically add arbitrary properties\n context[key] = resolvedAttrDef[key];\n }\n }\n }\n\n if ('className' in props && typeof props.className === 'string') {\n context.className = joinStrings(context.className, props.className);\n }\n\n return context;\n}\n\nlet seenUnknownProps = new Set();\n\nfunction useStyledComponentImpl<Props extends BaseObject>(\n forwardedComponent: IStyledComponent<'web', Props>,\n props: ExecutionProps & Props,\n forwardedRef: Ref<Element>\n) {\n const {\n attrs: componentAttrs,\n componentStyle,\n defaultProps,\n foldedComponentIds,\n styledComponentId,\n target,\n } = forwardedComponent;\n\n const contextTheme = !IS_RSC ? React.useContext(ThemeContext) : undefined;\n const ssc = useStyleSheetContext();\n const shouldForwardProp = forwardedComponent.shouldForwardProp || ssc.shouldForwardProp;\n\n if (process.env.NODE_ENV !== 'production' && React.useDebugValue) {\n React.useDebugValue(styledComponentId);\n }\n\n // NOTE: the non-hooks version only subscribes to this when !componentStyle.isStatic,\n // but that'd be against the rules-of-hooks. We could be naughty and do it anyway as it\n // should be an immutable value, but behave for now.\n const theme = determineTheme(props, contextTheme, defaultProps) || EMPTY_OBJECT;\n\n const context = resolveContext<Props>(componentAttrs, props, theme);\n const elementToBeCreated: WebTarget = context.as || target;\n const propsForElement: Dict<any> = {};\n\n for (const key in context) {\n // @ts-expect-error context may have arbitrary properties from attrs\n if (context[key] === undefined) {\n // Omit undefined values from props passed to wrapped element.\n // This enables using .attrs() to remove props, for example.\n } else if (key[0] === '$' || key === 'as' || (key === 'theme' && context.theme === theme)) {\n // Omit transient props and execution props.\n } else if (key === 'forwardedAs') {\n propsForElement.as = context.forwardedAs;\n } else if (!shouldForwardProp || shouldForwardProp(key, elementToBeCreated)) {\n // @ts-expect-error context may have arbitrary properties from attrs\n propsForElement[key] = context[key];\n\n if (\n !shouldForwardProp &&\n process.env.NODE_ENV === 'development' &&\n !isPropValid(key) &&\n !seenUnknownProps.has(key) &&\n // Only warn on DOM Element.\n domElements.has(elementToBeCreated as any)\n ) {\n seenUnknownProps.add(key);\n console.warn(\n `styled-components: it looks like an unknown prop \"${key}\" is being sent through to the DOM, which will likely trigger a React console error. If you would like automatic filtering of unknown props, you can opt-into that behavior via \\`<StyleSheetManager shouldForwardProp={...}>\\` (connect an API like \\`@emotion/is-prop-valid\\`) or consider using transient props (\\`$\\` prefix for automatic filtering.)`\n );\n }\n }\n }\n\n const { className: generatedClassName, css } = useInjectedStyle(componentStyle, context);\n\n if (process.env.NODE_ENV !== 'production' && forwardedComponent.warnTooManyClasses) {\n forwardedComponent.warnTooManyClasses(generatedClassName);\n }\n\n let classString = joinStrings(foldedComponentIds, styledComponentId);\n if (generatedClassName) {\n classString += ' ' + generatedClassName;\n }\n if (context.className) {\n classString += ' ' + context.className;\n }\n\n propsForElement[\n // handle custom elements which React doesn't properly alias\n isTag(elementToBeCreated) &&\n !domElements.has(elementToBeCreated as Extract<typeof domElements, string>)\n ? 'class'\n : 'className'\n ] = classString;\n\n // forwardedRef is coming from React.forwardRef.\n // But it might not exist. Since React 19 handles `ref` like a prop, it only define it if there is a value.\n // We don't want to inject an empty ref.\n if (forwardedRef) {\n propsForElement.ref = forwardedRef;\n }\n\n const element = createElement(elementToBeCreated, propsForElement);\n\n // RSC mode: output style tag alongside element\n // React 19's style hoisting will deduplicate by href and move to <head>\n if (IS_RSC && css) {\n return React.createElement(\n React.Fragment,\n null,\n React.createElement('style', {\n precedence: 'styled-components',\n href: `sc-${styledComponentId}-${generatedClassName}`,\n children: css,\n }),\n element\n );\n }\n\n return element;\n}\n\nfunction createStyledComponent<\n Target extends WebTarget,\n OuterProps extends BaseObject,\n Statics extends BaseObject = BaseObject,\n>(\n target: Target,\n options: StyledOptions<'web', OuterProps>,\n rules: RuleSet<OuterProps>\n): ReturnType<IStyledComponentFactory<'web', Target, OuterProps, Statics>> {\n const isTargetStyledComp = isStyledComponent(target);\n const styledComponentTarget = target as IStyledComponent<'web', OuterProps>;\n const isCompositeComponent = !isTag(target);\n\n const {\n attrs = EMPTY_ARRAY,\n componentId = generateId(options.displayName, options.parentComponentId),\n displayName = generateDisplayName(target),\n } = options;\n\n const styledComponentId =\n options.displayName && options.componentId\n ? `${escape(options.displayName)}-${options.componentId}`\n : options.componentId || componentId;\n\n // fold the underlying StyledComponent attrs up (implicit extend)\n const finalAttrs =\n isTargetStyledComp && styledComponentTarget.attrs\n ? styledComponentTarget.attrs.concat(attrs as unknown as Attrs<OuterProps>[]).filter(Boolean)\n : (attrs as Attrs<OuterProps>[]);\n\n let { shouldForwardProp } = options;\n\n if (isTargetStyledComp && styledComponentTarget.shouldForwardProp) {\n const shouldForwardPropFn = styledComponentTarget.shouldForwardProp;\n\n if (options.shouldForwardProp) {\n const passedShouldForwardPropFn = options.shouldForwardProp;\n\n // compose nested shouldForwardProp calls\n shouldForwardProp = (prop, elementToBeCreated) =>\n shouldForwardPropFn(prop, elementToBeCreated) &&\n passedShouldForwardPropFn(prop, elementToBeCreated);\n } else {\n shouldForwardProp = shouldForwardPropFn;\n }\n }\n\n const componentStyle = new ComponentStyle(\n rules,\n styledComponentId,\n isTargetStyledComp ? (styledComponentTarget.componentStyle as ComponentStyle) : undefined\n );\n\n function forwardRefRender(\n props: PropsWithoutRef<ExecutionProps & OuterProps>,\n ref: Ref<Element>\n ) {\n return useStyledComponentImpl<OuterProps>(\n WrappedStyledComponent,\n props as ExecutionProps & OuterProps,\n ref\n );\n }\n\n forwardRefRender.displayName = displayName;\n\n /**\n * forwardRef creates a new interim component, which we'll take advantage of\n * instead of extending ParentComponent to create _another_ interim class\n */\n let WrappedStyledComponent = React.forwardRef(forwardRefRender) as unknown as IStyledComponent<\n 'web',\n any\n > &\n Statics;\n WrappedStyledComponent.attrs = finalAttrs;\n WrappedStyledComponent.componentStyle = componentStyle;\n WrappedStyledComponent.displayName = displayName;\n WrappedStyledComponent.shouldForwardProp = shouldForwardProp;\n\n // this static is used to preserve the cascade of static classes for component selector\n // purposes; this is especially important with usage of the css prop\n WrappedStyledComponent.foldedComponentIds = isTargetStyledComp\n ? joinStrings(styledComponentTarget.foldedComponentIds, styledComponentTarget.styledComponentId)\n : '';\n\n WrappedStyledComponent.styledComponentId = styledComponentId;\n\n // fold the underlying StyledComponent target up since we folded the styles\n WrappedStyledComponent.target = isTargetStyledComp ? styledComponentTarget.target : target;\n\n Object.defineProperty(WrappedStyledComponent, 'defaultProps', {\n get() {\n return this._foldedDefaultProps;\n },\n\n set(obj) {\n this._foldedDefaultProps = isTargetStyledComp\n ? merge({}, styledComponentTarget.defaultProps, obj)\n : obj;\n },\n });\n\n if (process.env.NODE_ENV !== 'production') {\n checkDynamicCreation(displayName, styledComponentId);\n\n WrappedStyledComponent.warnTooManyClasses = createWarnTooManyClasses(\n displayName,\n styledComponentId\n );\n }\n\n setToString(WrappedStyledComponent, () => `.${WrappedStyledComponent.styledComponentId}`);\n\n if (isCompositeComponent) {\n const compositeComponentTarget = target as AnyComponent;\n\n hoist<typeof WrappedStyledComponent, typeof compositeComponentTarget>(\n WrappedStyledComponent,\n compositeComponentTarget,\n {\n // all SC-specific things should not be hoisted\n attrs: true,\n componentStyle: true,\n displayName: true,\n foldedComponentIds: true,\n shouldForwardProp: true,\n styledComponentId: true,\n target: true,\n } as { [key in keyof OmitNever<IStyledStatics<'web', OuterProps>>]: true }\n );\n }\n\n return WrappedStyledComponent;\n}\n\nexport default createStyledComponent;\n", "import { StyledTarget } from '../types';\nimport getComponentName from './getComponentName';\nimport isTag from './isTag';\n\nexport default function generateDisplayName(target: StyledTarget<any>) {\n return isTag(target) ? `styled.${target}` : `Styled(${getComponentName(target)})`;\n}\n", "import { Dict } from '../types';\n\nexport const LIMIT = 200;\n\nexport default (displayName: string, componentId: string) => {\n let generatedClasses: Dict<any> = {};\n let warningSeen = false;\n\n return (className: string) => {\n if (!warningSeen) {\n generatedClasses[className] = true;\n if (Object.keys(generatedClasses).length >= LIMIT) {\n // Unable to find latestRule in test environment.\n\n const parsedIdString = componentId ? ` with the id of \"${componentId}\"` : '';\n\n console.warn(\n `Over ${LIMIT} classes were generated for component ${displayName}${parsedIdString}.\\n` +\n 'Consider using the attrs method, together with a style object for frequently changed styles.\\n' +\n 'Example:\\n' +\n ' const Component = styled.div.attrs(props => ({\\n' +\n ' style: {\\n' +\n ' background: props.background,\\n' +\n ' },\\n' +\n ' }))`width: 100%;`\\n\\n' +\n ' <Component />'\n );\n warningSeen = true;\n generatedClasses = {};\n }\n }\n };\n};\n", "import { Interpolation } from '../types';\n\nexport default function interleave<Props extends object>(\n strings: readonly string[],\n interpolations: Interpolation<Props>[]\n): Interpolation<Props>[] {\n const result: Interpolation<Props>[] = [strings[0]];\n\n for (let i = 0, len = interpolations.length; i < len; i += 1) {\n result.push(interpolations[i], strings[i + 1]);\n }\n\n return result;\n}\n", "import {\n BaseObject,\n Interpolation,\n NoInfer,\n RuleSet,\n StyledObject,\n StyleFunction,\n Styles,\n} from '../types';\nimport { EMPTY_ARRAY } from '../utils/empties';\nimport flatten from '../utils/flatten';\nimport interleave from '../utils/interleave';\nimport isFunction from '../utils/isFunction';\nimport isPlainObject from '../utils/isPlainObject';\n\n/**\n * Used when flattening object styles to determine if we should\n * expand an array of styles.\n */\nconst addTag = <T extends RuleSet<any>>(arg: T): T & { isCss: true } =>\n Object.assign(arg, { isCss: true } as const);\n\nfunction css(styles: Styles<object>, ...interpolations: Interpolation<object>[]): RuleSet<object>;\nfunction css<Props extends object>(\n styles: Styles<NoInfer<Props>>,\n ...interpolations: Interpolation<NoInfer<Props>>[]\n): RuleSet<NoInfer<Props>>;\nfunction css<Props extends object = BaseObject>(\n styles: Styles<NoInfer<Props>>,\n ...interpolations: Interpolation<NoInfer<Props>>[]\n): RuleSet<NoInfer<Props>> {\n if (isFunction(styles) || isPlainObject(styles)) {\n const styleFunctionOrObject = styles as StyleFunction<Props> | StyledObject<Props>;\n\n return addTag(\n flatten<Props>(\n interleave<Props>(EMPTY_ARRAY, [\n styleFunctionOrObject,\n ...interpolations,\n ]) as Interpolation<object>\n )\n );\n }\n\n const styleStringArray = styles as TemplateStringsArray;\n\n if (\n interpolations.length === 0 &&\n styleStringArray.length === 1 &&\n typeof styleStringArray[0] === 'string'\n ) {\n return flatten<Props>(styleStringArray);\n }\n\n return addTag(\n flatten<Props>(interleave<Props>(styleStringArray, interpolations) as Interpolation<object>)\n );\n}\n\nexport default css;\n", "import {\n Attrs,\n BaseObject,\n ExecutionProps,\n Interpolation,\n IStyledComponent,\n IStyledComponentFactory,\n KnownTarget,\n NoInfer,\n Runtime,\n StyledOptions,\n StyledTarget,\n Styles,\n Substitute,\n} from '../types';\nimport { EMPTY_OBJECT } from '../utils/empties';\nimport styledError from '../utils/error';\nimport css from './css';\n\ntype AttrsResult<T extends Attrs<any>> = T extends (...args: any) => infer P\n ? P extends object\n ? P\n : never\n : T extends object\n ? T\n : never;\n\n/**\n * Based on Attrs being a simple object or function that returns\n * a prop object, inspect the attrs result and attempt to extract\n * any \"as\" prop usage to modify the runtime target.\n */\ntype AttrsTarget<\n R extends Runtime,\n T extends Attrs<any>,\n FallbackTarget extends StyledTarget<R>,\n Result extends ExecutionProps = AttrsResult<T>,\n> = Result extends { as: infer RuntimeTarget }\n ? RuntimeTarget extends KnownTarget\n ? RuntimeTarget\n : FallbackTarget\n : FallbackTarget;\n\nexport interface Styled<\n R extends Runtime,\n Target extends StyledTarget<R>,\n OuterProps extends object,\n OuterStatics extends object = BaseObject,\n> {\n <Props extends object = BaseObject, Statics extends object = BaseObject>(\n initialStyles: Styles<Substitute<OuterProps, NoInfer<Props>>>,\n ...interpolations: Interpolation<Substitute<OuterProps, NoInfer<Props>>>[]\n ): IStyledComponent<R, Substitute<OuterProps, Props>> &\n OuterStatics &\n Statics &\n (R extends 'web'\n ? Target extends string\n ? {}\n : Omit<Target, keyof React.Component<any>>\n : {});\n\n attrs: <\n Props extends object = BaseObject,\n PrivateMergedProps extends object = Substitute<OuterProps, Props>,\n PrivateAttrsArg extends Attrs<PrivateMergedProps> = Attrs<PrivateMergedProps>,\n PrivateResolvedTarget extends StyledTarget<R> = AttrsTarget<R, PrivateAttrsArg, Target>,\n >(\n attrs: PrivateAttrsArg\n ) => Styled<\n R,\n PrivateResolvedTarget,\n PrivateResolvedTarget extends KnownTarget\n ? Substitute<\n Substitute<OuterProps, React.ComponentPropsWithRef<PrivateResolvedTarget>>,\n Props\n >\n : PrivateMergedProps,\n OuterStatics\n >;\n\n withConfig: (config: StyledOptions<R, OuterProps>) => Styled<R, Target, OuterProps, OuterStatics>;\n}\n\nexport default function constructWithOptions<\n R extends Runtime,\n Target extends StyledTarget<R>,\n OuterProps extends object = Target extends KnownTarget\n ? React.ComponentPropsWithRef<Target>\n : BaseObject,\n OuterStatics extends object = BaseObject,\n>(\n componentConstructor: IStyledComponentFactory<R, StyledTarget<R>, object, any>,\n tag: StyledTarget<R>,\n options: StyledOptions<R, OuterProps> = EMPTY_OBJECT\n): Styled<R, Target, OuterProps, OuterStatics> {\n /**\n * We trust that the tag is a valid component as long as it isn't\n * falsish. Typically the tag here is a string or function (i.e.\n * class or pure function component), however a component may also be\n * an object if it uses another utility, e.g. React.memo. React will\n * output an appropriate warning however if the `tag` isn't valid.\n */\n if (!tag) {\n throw styledError(1, tag);\n }\n\n /* This is callable directly as a template function */\n const templateFunction = <Props extends object = BaseObject, Statics extends object = BaseObject>(\n initialStyles: Styles<Substitute<OuterProps, Props>>,\n ...interpolations: Interpolation<Substitute<OuterProps, Props>>[]\n ) =>\n componentConstructor<Substitute<OuterProps, Props>, Statics>(\n tag,\n options as StyledOptions<R, Substitute<OuterProps, Props>>,\n css<Substitute<OuterProps, Props>>(initialStyles, ...interpolations)\n );\n\n /**\n * Attrs allows for accomplishing two goals:\n *\n * 1. Backfilling props at runtime more expressively than defaultProps\n * 2. Amending the prop interface of a wrapped styled component\n */\n templateFunction.attrs = <\n Props extends object = BaseObject,\n PrivateMergedProps extends object = Substitute<OuterProps, Props>,\n PrivateAttrsArg extends Attrs<PrivateMergedProps> = Attrs<PrivateMergedProps>,\n PrivateResolvedTarget extends StyledTarget<R> = AttrsTarget<R, PrivateAttrsArg, Target>,\n >(\n attrs: PrivateAttrsArg\n ) =>\n constructWithOptions<\n R,\n PrivateResolvedTarget,\n PrivateResolvedTarget extends KnownTarget\n ? Substitute<\n Substitute<OuterProps, React.ComponentPropsWithRef<PrivateResolvedTarget>>,\n Props\n >\n : PrivateMergedProps,\n OuterStatics\n >(componentConstructor, tag, {\n ...options,\n attrs: Array.prototype.concat(options.attrs, attrs).filter(Boolean),\n });\n\n /**\n * If config methods are called, wrap up a new template function\n * and merge options.\n */\n templateFunction.withConfig = (config: StyledOptions<R, OuterProps>) =>\n constructWithOptions<R, Target, OuterProps, OuterStatics>(componentConstructor, tag, {\n ...options,\n ...config,\n });\n\n return templateFunction;\n}\n", "import * as React from 'react';\nimport createStyledComponent from '../models/StyledComponent';\nimport { BaseObject, KnownTarget, WebTarget } from '../types';\nimport domElements, { SupportedHTMLElements } from '../utils/domElements';\nimport constructWithOptions, { Styled as StyledInstance } from './constructWithOptions';\n\nconst baseStyled = <Target extends WebTarget, InjectedProps extends object = BaseObject>(\n tag: Target\n) =>\n constructWithOptions<\n 'web',\n Target,\n Target extends KnownTarget ? React.ComponentPropsWithRef<Target> & InjectedProps : InjectedProps\n >(createStyledComponent, tag);\n\nconst styled = baseStyled as typeof baseStyled & {\n [E in SupportedHTMLElements]: StyledInstance<'web', E, React.JSX.IntrinsicElements[E]>;\n};\n\n// Shorthands for all valid HTML Elements\ndomElements.forEach(domElement => {\n // @ts-expect-error some react typing bs\n styled[domElement] = baseStyled<typeof domElement>(domElement);\n});\n\nexport default styled;\nexport { StyledInstance };\n\n/**\n * This is the type of the `styled` HOC.\n */\nexport type Styled = typeof styled;\n\n/**\n * Use this higher-order type for scenarios where you are wrapping `styled`\n * and providing extra props as a third-party library.\n */\nexport type LibraryStyled<LibraryProps extends object = BaseObject> = <Target extends WebTarget>(\n tag: Target\n) => typeof baseStyled<Target, LibraryProps>;\n", "import StyleSheet from '../sheet';\nimport { ExecutionContext, RuleSet, Stringifier } from '../types';\nimport flatten from '../utils/flatten';\nimport isStaticRules from '../utils/isStaticRules';\nimport { joinStringArray } from '../utils/joinStrings';\n\nexport default class GlobalStyle<Props extends object> {\n componentId: string;\n isStatic: boolean;\n rules: RuleSet<Props>;\n\n constructor(rules: RuleSet<Props>, componentId: string) {\n this.rules = rules;\n this.componentId = componentId;\n this.isStatic = isStaticRules(rules);\n\n // pre-register the first instance to ensure global styles\n // load before component ones\n StyleSheet.registerId(this.componentId + 1);\n }\n\n createStyles(\n instance: number,\n executionContext: ExecutionContext & Props,\n styleSheet: StyleSheet,\n stylis: Stringifier\n ): void {\n const flatCSS = joinStringArray(\n flatten(this.rules as RuleSet<object>, executionContext, styleSheet, stylis) as string[]\n );\n const css = stylis(flatCSS, '');\n const id = this.componentId + instance;\n\n // NOTE: We use the id as a name as well, since these rules never change\n styleSheet.insertRules(id, id, css);\n }\n\n removeStyles(instance: number, styleSheet: StyleSheet): void {\n styleSheet.clearRules(this.componentId + instance);\n }\n\n renderStyles(\n instance: number,\n executionContext: ExecutionContext & Props,\n styleSheet: StyleSheet,\n stylis: Stringifier\n ): void {\n if (instance > 2) StyleSheet.registerId(this.componentId + instance);\n\n const id = this.componentId + instance;\n\n // For static styles that don't change based on props,\n // only inject once and don't remove/re-add on every render.\n // This prevents issues with React StrictMode where the effect cleanup\n // from the simulated unmount runs after the re-render.\n if (this.isStatic) {\n if (!styleSheet.hasNameForId(id, id)) {\n this.createStyles(instance, executionContext, styleSheet, stylis);\n }\n return;\n }\n\n // NOTE: Remove old styles, then inject the new ones\n this.removeStyles(instance, styleSheet);\n this.createStyles(instance, executionContext, styleSheet, stylis);\n }\n}\n", "import React from 'react';\nimport { IS_RSC, STATIC_EXECUTION_CONTEXT } from '../constants';\nimport GlobalStyle from '../models/GlobalStyle';\nimport { useStyleSheetContext } from '../models/StyleSheetManager';\nimport { DefaultTheme, ThemeContext } from '../models/ThemeProvider';\nimport StyleSheet from '../sheet';\nimport { removeGlobalStyleTag } from '../sheet/dom';\nimport { getGroupForId } from '../sheet/GroupIDAllocator';\nimport { ExecutionContext, ExecutionProps, Interpolation, Stringifier, Styles } from '../types';\nimport { checkDynamicCreation } from '../utils/checkDynamicCreation';\nimport determineTheme from '../utils/determineTheme';\nimport generateComponentId from '../utils/generateComponentId';\nimport css from './css';\n\ndeclare const __SERVER__: boolean;\n\nexport default function createGlobalStyle<Props extends object>(\n strings: Styles<Props>,\n ...interpolations: Array<Interpolation<Props>>\n) {\n const rules = css<Props>(strings, ...interpolations);\n const styledComponentId = `sc-global-${generateComponentId(JSON.stringify(rules))}`;\n const globalStyle = new GlobalStyle<Props>(rules, styledComponentId);\n\n if (process.env.NODE_ENV !== 'production') {\n checkDynamicCreation(styledComponentId);\n }\n\n // Use a WeakMap to maintain stable instances per stylesheet\n const instanceMap = new WeakMap<StyleSheet, number>();\n\n const GlobalStyleComponent: React.ComponentType<ExecutionProps & Props> = props => {\n const ssc = useStyleSheetContext();\n const theme = !IS_RSC ? React.useContext(ThemeContext) : undefined;\n\n // Get or create instance ID for this stylesheet\n let instance = instanceMap.get(ssc.styleSheet);\n if (instance === undefined) {\n instance = ssc.styleSheet.allocateGSInstance(styledComponentId);\n instanceMap.set(ssc.styleSheet, instance);\n }\n\n if (\n process.env.NODE_ENV !== 'production' &&\n // @ts-expect-error invariant check\n React.Children.count(props.children)\n ) {\n console.warn(\n `The global style component ${styledComponentId} was given child JSX. createGlobalStyle does not render children.`\n );\n }\n\n if (\n process.env.NODE_ENV !== 'production' &&\n rules.some(rule => typeof rule === 'string' && rule.indexOf('@import') !== -1)\n ) {\n console.warn(\n `Please do not use @import CSS syntax in createGlobalStyle at this time, as the CSSOM APIs we use in production do not handle it well. Instead, we recommend using a library such as react-helmet to inject a typical <link> meta tag to the stylesheet, or simply embedding it manually in your index.html <head> section for a simpler app.`\n );\n }\n\n // Render styles during component execution\n // Use runtime check since __SERVER__ build constant may not match actual environment\n const shouldRenderStyles = typeof window === 'undefined' || !ssc.styleSheet.server;\n if (shouldRenderStyles) {\n renderStyles(instance, props, ssc.styleSheet, theme, ssc.stylis);\n }\n\n // Client-side cleanup: conditionally use hooks\n // The __SERVER__ and IS_RSC checks are module-level and deterministic, so this doesn't violate rules of hooks\n if (!__SERVER__ && !IS_RSC) {\n // Track cleanup state per component instance to handle React StrictMode's simulated unmount/remount\n const shouldRemoveRef = React.useRef(true);\n\n React.useLayoutEffect(() => {\n // Signal that this component is mounted and styles should stay\n shouldRemoveRef.current = false;\n\n return () => {\n // Mark that we're in cleanup\n shouldRemoveRef.current = true;\n\n // Use queueMicrotask to delay cleanup slightly.\n // In React StrictMode's simulated unmount/remount, the next effect\n // will run before this microtask, setting shouldRemove = false.\n // In a real unmount, no new effect runs, so styles get removed.\n queueMicrotask(() => {\n if (shouldRemoveRef.current) {\n globalStyle.removeStyles(instance, ssc.styleSheet);\n // Also remove any SSR-rendered inline style tags with precedence\n // These persist in the DOM because React 19's hoisted styles don't unmount\n removeGlobalStyleTag(styledComponentId);\n }\n });\n };\n }, [instance, ssc.styleSheet]);\n }\n\n // RSC mode: output style tag\n if (IS_RSC) {\n const id = styledComponentId + instance;\n const css =\n typeof window === 'undefined' ? ssc.styleSheet.getTag().getGroup(getGroupForId(id)) : '';\n\n if (css) {\n // Use stable href without content hash so React can deduplicate/replace during HMR\n const href = `${styledComponentId}-${instance}`;\n return React.createElement('style', {\n key: href,\n 'data-styled-global': styledComponentId,\n precedence: 'styled-components',\n href,\n children: css,\n });\n }\n }\n\n return null;\n };\n\n function renderStyles(\n instance: number,\n props: ExecutionProps,\n styleSheet: StyleSheet,\n theme: DefaultTheme | undefined,\n stylis: Stringifier\n ) {\n if (globalStyle.isStatic) {\n globalStyle.renderStyles(\n instance,\n STATIC_EXECUTION_CONTEXT as unknown as ExecutionContext & Props,\n styleSheet,\n stylis\n );\n } else {\n const context = {\n ...props,\n theme: determineTheme(props, theme, GlobalStyleComponent.defaultProps),\n } as ExecutionContext & Props;\n\n globalStyle.renderStyles(instance, context, styleSheet, stylis);\n }\n }\n\n return React.memo(GlobalStyleComponent);\n}\n", "import Keyframes from '../models/Keyframes';\nimport { Interpolation, Styles } from '../types';\nimport generateComponentId from '../utils/generateComponentId';\nimport { joinStringArray } from '../utils/joinStrings';\nimport css from './css';\n\nexport default function keyframes<Props extends object = {}>(\n strings: Styles<Props>,\n ...interpolations: Array<Interpolation<Props>>\n): Keyframes {\n /* Warning if you've used keyframes on React Native */\n if (\n process.env.NODE_ENV !== 'production' &&\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative'\n ) {\n console.warn(\n '`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.'\n );\n }\n\n const rules = joinStringArray(css<Props>(strings, ...interpolations) as string[]);\n const name = generateComponentId(rules);\n return new Keyframes(name, rules);\n}\n", "import React from 'react';\nimport { IS_RSC } from '../constants';\nimport { ThemeContext } from '../models/ThemeProvider';\nimport { AnyComponent, ExecutionProps } from '../types';\nimport determineTheme from '../utils/determineTheme';\nimport getComponentName from '../utils/getComponentName';\nimport hoist, { NonReactStatics } from '../utils/hoist';\n\nexport default function withTheme<T extends AnyComponent>(\n Component: T\n): React.ForwardRefExoticComponent<\n React.PropsWithoutRef<React.ComponentPropsWithRef<T> & ExecutionProps> & React.RefAttributes<T>\n> &\n NonReactStatics<T> {\n const WithTheme = React.forwardRef<T, React.ComponentPropsWithRef<T> & ExecutionProps>(\n (props, ref) => {\n const theme = !IS_RSC ? React.useContext(ThemeContext) : undefined;\n const themeProp = determineTheme(props, theme, Component.defaultProps);\n\n if (process.env.NODE_ENV !== 'production' && themeProp === undefined) {\n console.warn(\n `[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"${getComponentName(\n Component\n )}\"`\n );\n }\n\n return React.createElement(Component, {\n ...props,\n theme: themeProp,\n ref,\n } as React.ComponentPropsWithRef<T>);\n }\n );\n\n WithTheme.displayName = `WithTheme(${getComponentName(Component)})`;\n\n return hoist(WithTheme, Component);\n}\n", "import React from 'react';\nimport { type PipeableStream } from 'react-dom/server';\nimport type * as streamInternal from 'stream';\nimport { IS_BROWSER, SC_ATTR, SC_ATTR_VERSION, SC_VERSION } from '../constants';\nimport StyleSheet from '../sheet';\nimport styledError from '../utils/error';\nimport { joinStringArray } from '../utils/joinStrings';\nimport getNonce from '../utils/nonce';\nimport { StyleSheetManager } from './StyleSheetManager';\n\ndeclare const __SERVER__: boolean;\n\nconst CLOSING_TAG_R = /^\\s*<\\/[a-z]/i;\n\nexport default class ServerStyleSheet {\n instance: StyleSheet;\n sealed: boolean;\n\n constructor() {\n this.instance = new StyleSheet({ isServer: true });\n this.sealed = false;\n }\n\n _emitSheetCSS = (): string => {\n const css = this.instance.toString();\n if (!css) return '';\n const nonce = getNonce();\n const attrs = [\n nonce && `nonce=\"${nonce}\"`,\n `${SC_ATTR}=\"true\"`,\n `${SC_ATTR_VERSION}=\"${SC_VERSION}\"`,\n ];\n const htmlAttr = joinStringArray(attrs.filter(Boolean) as string[], ' ');\n\n return `<style ${htmlAttr}>${css}</style>`;\n };\n\n collectStyles(children: any): React.JSX.Element {\n if (this.sealed) {\n throw styledError(2);\n }\n\n return <StyleSheetManager sheet={this.instance}>{children}</StyleSheetManager>;\n }\n\n getStyleTags = (): string => {\n if (this.sealed) {\n throw styledError(2);\n }\n\n return this._emitSheetCSS();\n };\n\n getStyleElement = () => {\n if (this.sealed) {\n throw styledError(2);\n }\n\n const css = this.instance.toString();\n if (!css) return [];\n\n const props = {\n [SC_ATTR]: '',\n [SC_ATTR_VERSION]: SC_VERSION,\n dangerouslySetInnerHTML: {\n __html: css,\n },\n };\n\n const nonce = getNonce();\n if (nonce) {\n (props as any).nonce = nonce;\n }\n\n // v4 returned an array for this fn, so we'll do the same for v5 for backward compat\n return [<style {...props} key=\"sc-0-0\" />];\n };\n\n interleaveWithNodeStream(\n input: NodeJS.ReadableStream | PipeableStream\n ): streamInternal.Transform {\n if (!__SERVER__ || IS_BROWSER) {\n throw styledError(3);\n } else if (this.sealed) {\n throw styledError(2);\n }\n\n this.seal();\n\n const { Transform } = require('stream');\n const { instance: sheet, _emitSheetCSS } = this;\n\n const transformer: streamInternal.Transform = new Transform({\n transform: function appendStyleChunks(\n chunk: string,\n /* encoding */\n _: string,\n callback: Function\n ) {\n // Get the chunk and retrieve the sheet's CSS as an HTML chunk,\n // then reset its rules so we get only new ones for the next chunk\n const renderedHtml = chunk.toString();\n const html = _emitSheetCSS();\n\n sheet.clearTag();\n\n // prepend style html to chunk, unless the start of the chunk is a\n // closing tag in which case append right after that\n if (CLOSING_TAG_R.test(renderedHtml)) {\n const endOfClosingTag = renderedHtml.indexOf('>') + 1;\n const before = renderedHtml.slice(0, endOfClosingTag);\n const after = renderedHtml.slice(endOfClosingTag);\n\n this.push(before + html + after);\n } else {\n this.push(html + renderedHtml);\n }\n\n callback();\n },\n });\n\n // Type guard to determine stream type\n if ('on' in input && typeof input.on === 'function' && 'pipe' in input) {\n // NodeJS.ReadableStream\n const readableStream = input as NodeJS.ReadableStream;\n readableStream.on('error', err => {\n // forward the error to the transform stream\n transformer.emit('error', err);\n });\n return readableStream.pipe(transformer);\n } else if ('pipe' in input && typeof input.pipe === 'function') {\n // React PipeableStream\n const pipeableStream = input as PipeableStream;\n return pipeableStream.pipe(transformer);\n } else {\n throw new Error('Unsupported stream type');\n }\n }\n\n seal = (): void => {\n this.sealed = true;\n };\n}\n", "import { mainSheet } from './models/StyleSheetManager';\nimport StyleSheet from './sheet';\n\nexport const __PRIVATE__ = {\n StyleSheet,\n mainSheet,\n};\n", "/* Import singletons */\nimport { SC_ATTR, SC_VERSION } from './constants';\nimport createGlobalStyle from './constructors/createGlobalStyle';\nimport css from './constructors/css';\nimport keyframes from './constructors/keyframes';\n/* Import Higher Order Components */\nimport withTheme from './hoc/withTheme';\n/* Import hooks */\nimport ServerStyleSheet from './models/ServerStyleSheet';\nimport {\n IStyleSheetContext,\n IStyleSheetManager,\n IStylisContext,\n StyleSheetConsumer,\n StyleSheetContext,\n StyleSheetManager,\n} from './models/StyleSheetManager';\n/* Import components */\nimport ThemeProvider, { ThemeConsumer, ThemeContext, useTheme } from './models/ThemeProvider';\nimport isStyledComponent from './utils/isStyledComponent';\n\n/* Warning if you've imported this file on React Native */\nif (\n process.env.NODE_ENV !== 'production' &&\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative'\n) {\n console.warn(\n `It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native`\n );\n}\n\nconst windowGlobalKey = `__sc-${SC_ATTR}__`;\n\n/* Warning if there are several instances of styled-components */\nif (\n process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n typeof window !== 'undefined'\n) {\n // @ts-expect-error dynamic key not in window object\n window[windowGlobalKey] ||= 0;\n\n // @ts-expect-error dynamic key not in window object\n if (window[windowGlobalKey] === 1) {\n console.warn(\n `It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\\n\\nSee https://styled-components.com/docs/faqs#why-am-i-getting-a-warning-about-several-instances-of-module-on-the-page for more info.`\n );\n }\n\n // @ts-expect-error dynamic key not in window object\n window[windowGlobalKey] += 1;\n}\n\n/* Export everything */\nexport * from './secretInternals';\nexport { Attrs, DefaultTheme, ShouldForwardProp } from './types';\nexport {\n IStyleSheetContext,\n IStyleSheetManager,\n IStylisContext,\n ServerStyleSheet,\n StyleSheetConsumer,\n StyleSheetContext,\n StyleSheetManager,\n ThemeConsumer,\n ThemeContext,\n ThemeProvider,\n createGlobalStyle,\n css,\n isStyledComponent,\n keyframes,\n useTheme,\n SC_VERSION as version,\n withTheme,\n};\n", "import React from 'react'\n\nimport { createIconComponent } from './createIconComponent'\n\nexport const ChevronDownIcon = createIconComponent({\n content: (\n <path d=\"M435.658 228.913L251.656 404.907C243.922 412.313 233.953 416 224 416S204.078 412.313 196.344 404.907L12.342 228.913C-3.611 213.633 -4.174 188.321 11.092 172.353C26.373 156.354 51.686 155.854 67.655 171.103L224 320.66L380.345 171.103C396.314 155.822 421.627 156.385 436.908 172.353C452.174 188.321 451.611 213.633 435.658 228.913Z\" />\n ),\n viewBox: '0 0 448 512',\n})\n", "import type { IconComponent } from 'icons/createIconComponent'\nimport type { ButtonHeightToken } from 'lib/theming'\nimport React, { ReactNode } from 'react'\nimport { Spinner } from 'components/Spinner'\nimport { ButtonBaseProps } from 'components/ButtonBase'\n\nimport * as S from './styles'\n\nexport type ButtonProps = ButtonBaseProps & {\n children?: never\n label?: ReactNode\n prefix?: ReactNode\n suffix?: ReactNode\n fillWidth?: boolean\n icon?: IconComponent\n size?: ButtonHeightToken\n}\n\nexport const Button = ({\n size = 'medium',\n suffix,\n prefix,\n fillWidth,\n ...props\n}: ButtonProps) => {\n return (\n <S.Wrapper $size={size} $fillWidth={fillWidth} {...props}>\n {prefix}\n <S.Label>\n {props.icon && <props.icon />}\n {props.label}\n </S.Label>\n {props.loading && <Spinner size=\"extra-small\" />}\n {suffix}\n </S.Wrapper>\n )\n}\n", "import React from 'react'\n\nimport type { HTMLStyleAttributes } from 'types'\n\nimport * as S from './styles'\n\nexport type SpinnerSize =\n | 'extra-small'\n | 'small'\n | 'default'\n | 'large'\n | 'extra-large'\n\nexport type SpinnerProps = {\n size?: SpinnerSize\n color?: 'primary' | 'white'\n} & HTMLStyleAttributes\n\nconst sizes: Record<SpinnerSize, number> = {\n 'extra-small': 16,\n small: 32,\n default: 48,\n large: 72,\n 'extra-large': 108,\n}\n\nexport const Spinner = ({\n size = 'default',\n className,\n color = 'primary',\n style,\n}: SpinnerProps) => {\n const sizeWidth = sizes[size]\n const strokeWidth = sizeWidth / 10\n\n return (\n <svg\n className={className}\n height={sizeWidth}\n style={style}\n viewBox={`0 0 ${sizeWidth} ${sizeWidth}`}\n width={sizeWidth}\n x={0}\n y={0}\n >\n <S.Circle\n $size={sizeWidth}\n $strokeWidth={strokeWidth}\n cx={sizeWidth / 2}\n cy={sizeWidth / 2}\n r={(sizeWidth - strokeWidth) / 2}\n stroke={color}\n />\n </svg>\n )\n}\n", "import { styled, keyframes } from 'styled-components'\n\nconst spinner = (size: number) => keyframes`\n 0% {\n stroke-dashoffset: ${size * 0.66};\n transform: rotate(0deg);\n } 50% {\n stroke-dashoffset: ${size * 3.14};\n transform: rotate(720deg);\n } 100% {\n stroke-dashoffset: ${size * 0.66};\n transform: rotate(1080deg);\n }\n`\n\nexport const Circle = styled.circle<{\n $size: number\n $strokeWidth: number\n}>`\n transform-origin: ${props =>\n `${props.$size * 0.5}px ${props.$size * 0.5}px 0px`};\n animation: ${props => spinner(props.$size)} 3s linear infinite;\n fill: transparent;\n stroke: currentColor;\n stroke-width: ${props => props.$strokeWidth};\n stroke-linecap: round;\n stroke-dasharray: ${props => 3.14 * props.$size};\n`\n", "import NextLink from 'next/link'\nimport React from 'react'\n\nimport type { MouseEvent, MutableRefObject, ReactNode } from 'react'\nimport type {\n ButtonConfigTokenShape,\n ThemeLayerIndex,\n ThemeColorsPalette,\n} from 'lib/theming'\n\nimport { HTMLStyleAttributes } from 'types'\n\nimport * as S from './styles'\n\nexport type ButtonVariant = 'filled' | 'outlined' | 'layerBased'\n\nexport type ButtonColors = string | keyof ThemeColorsPalette\n\nexport type ButtonBaseCommonProps = {\n [key: string]: unknown\n} & {\n children?: ReactNode\n setRef?: MutableRefObject<HTMLElement | null>\n type?: 'button' | 'submit'\n disabled?: boolean\n form?: string\n onClick?: (e: MouseEvent<HTMLButtonElement>) => void\n isExternal?: boolean\n href?: string\n shape?: ButtonConfigTokenShape\n loading?: boolean\n color?: ButtonColors\n} & HTMLStyleAttributes\n\nexport type ButtonBaseLayerBasedVariant = ButtonBaseCommonProps & {\n variant: 'layerBased'\n layer?: ThemeLayerIndex\n borderLess?: boolean\n transparent?: boolean\n active?: boolean\n}\n\nexport type ButtonBaseEitherVariantsProps = ButtonBaseCommonProps & {\n variant?: ButtonVariant\n layer?: never\n borderLess?: never\n transparent?: never\n active?: never\n}\n\nexport type ButtonBaseProps =\n | ButtonBaseEitherVariantsProps\n | ButtonBaseLayerBasedVariant\n\nexport const ButtonBase = ({\n children,\n isExternal,\n layer = 1,\n type = 'button',\n variant = 'filled',\n color = 'primary',\n shape,\n setRef,\n borderLess = false,\n transparent = false,\n active = false,\n loading = false,\n ...props\n}: ButtonBaseProps) => {\n return (\n <S.Wrapper\n as={props.href ? (NextLink as unknown as 'a') || 'a' : 'button'}\n // @ts-expect-error\n ref={setRef}\n rel={props.href && isExternal ? 'noopener noreferrer' : undefined}\n target={props.href && isExternal ? '_blank' : '_self'}\n type={type}\n {...props}\n $active={active}\n $borderLess={borderLess}\n $color={color}\n $layer={layer}\n $shape={shape}\n $transparent={transparent}\n $variant={variant}\n >\n {children}\n </S.Wrapper>\n )\n}\n", "import React from 'react'\n\n/** Stub for next/link \u2013 plain anchor for embed (no Next.js). */\nexport default function Link({\n href,\n children,\n ...props\n}: {\n href: string\n children: React.ReactNode\n [key: string]: unknown\n}) {\n return (\n <a href={href} {...props}>\n {children}\n </a>\n )\n}\n", "function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };", "function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };", "function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };", "import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };", "function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };", "function _isNativeFunction(t) {\n try {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n } catch (n) {\n return \"function\" == typeof t;\n }\n}\nexport { _isNativeFunction as default };", "function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };", "import isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nexport { _construct as default };", "import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nfunction _wrapNativeSuper(t) {\n var r = \"function\" == typeof Map ? new Map() : void 0;\n return _wrapNativeSuper = function _wrapNativeSuper(t) {\n if (null === t || !isNativeFunction(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== r) {\n if (r.has(t)) return r.get(t);\n r.set(t, Wrapper);\n }\n function Wrapper() {\n return construct(t, arguments, getPrototypeOf(this).constructor);\n }\n return Wrapper.prototype = Object.create(t.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), setPrototypeOf(Wrapper, t);\n }, _wrapNativeSuper(t);\n}\nexport { _wrapNativeSuper as default };", "import _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _wrapNativeSuper from '@babel/runtime/helpers/esm/wrapNativeSuper';\nimport _taggedTemplateLiteralLoose from '@babel/runtime/helpers/esm/taggedTemplateLiteralLoose';\n\nfunction last() {\n var _ref;\n return _ref = arguments.length - 1, _ref < 0 || arguments.length <= _ref ? undefined : arguments[_ref];\n}\nfunction negation(a) {\n return -a;\n}\nfunction addition(a, b) {\n return a + b;\n}\nfunction subtraction(a, b) {\n return a - b;\n}\nfunction multiplication(a, b) {\n return a * b;\n}\nfunction division(a, b) {\n return a / b;\n}\nfunction max() {\n return Math.max.apply(Math, arguments);\n}\nfunction min() {\n return Math.min.apply(Math, arguments);\n}\nfunction comma() {\n return Array.of.apply(Array, arguments);\n}\nvar defaultSymbols = {\n symbols: {\n '*': {\n infix: {\n symbol: '*',\n f: multiplication,\n notation: 'infix',\n precedence: 4,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: '*',\n regSymbol: '\\\\*'\n },\n '/': {\n infix: {\n symbol: '/',\n f: division,\n notation: 'infix',\n precedence: 4,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: '/',\n regSymbol: '/'\n },\n '+': {\n infix: {\n symbol: '+',\n f: addition,\n notation: 'infix',\n precedence: 2,\n rightToLeft: 0,\n argCount: 2\n },\n prefix: {\n symbol: '+',\n f: last,\n notation: 'prefix',\n precedence: 3,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '+',\n regSymbol: '\\\\+'\n },\n '-': {\n infix: {\n symbol: '-',\n f: subtraction,\n notation: 'infix',\n precedence: 2,\n rightToLeft: 0,\n argCount: 2\n },\n prefix: {\n symbol: '-',\n f: negation,\n notation: 'prefix',\n precedence: 3,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '-',\n regSymbol: '-'\n },\n ',': {\n infix: {\n symbol: ',',\n f: comma,\n notation: 'infix',\n precedence: 1,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: ',',\n regSymbol: ','\n },\n '(': {\n prefix: {\n symbol: '(',\n f: last,\n notation: 'prefix',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '(',\n regSymbol: '\\\\('\n },\n ')': {\n postfix: {\n symbol: ')',\n f: undefined,\n notation: 'postfix',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: ')',\n regSymbol: '\\\\)'\n },\n min: {\n func: {\n symbol: 'min',\n f: min,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'min',\n regSymbol: 'min\\\\b'\n },\n max: {\n func: {\n symbol: 'max',\n f: max,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'max',\n regSymbol: 'max\\\\b'\n }\n }\n};\nvar defaultSymbolMap = defaultSymbols;\n\n// based on https://github.com/styled-components/styled-components/blob/fcf6f3804c57a14dd7984dfab7bc06ee2edca044/src/utils/error.js\n/**\n * Parse errors.md and turn it into a simple hash of code: message\n * @private\n */\nvar ERRORS = {\n \"1\": \"Passed invalid arguments to hsl, please pass multiple numbers e.g. hsl(360, 0.75, 0.4) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75 }).\\n\\n\",\n \"2\": \"Passed invalid arguments to hsla, please pass multiple numbers e.g. hsla(360, 0.75, 0.4, 0.7) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75, alpha: 0.7 }).\\n\\n\",\n \"3\": \"Passed an incorrect argument to a color function, please pass a string representation of a color.\\n\\n\",\n \"4\": \"Couldn't generate valid rgb string from %s, it returned %s.\\n\\n\",\n \"5\": \"Couldn't parse the color string. Please provide the color as a string in hex, rgb, rgba, hsl or hsla notation.\\n\\n\",\n \"6\": \"Passed invalid arguments to rgb, please pass multiple numbers e.g. rgb(255, 205, 100) or an object e.g. rgb({ red: 255, green: 205, blue: 100 }).\\n\\n\",\n \"7\": \"Passed invalid arguments to rgba, please pass multiple numbers e.g. rgb(255, 205, 100, 0.75) or an object e.g. rgb({ red: 255, green: 205, blue: 100, alpha: 0.75 }).\\n\\n\",\n \"8\": \"Passed invalid argument to toColorString, please pass a RgbColor, RgbaColor, HslColor or HslaColor object.\\n\\n\",\n \"9\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"10\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"11\": \"Invalid value passed as base to modularScale, expected number or em string but got \\\"%s\\\"\\n\\n\",\n \"12\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"13\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"14\": \"Passed invalid pixel value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"15\": \"Passed invalid base value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"16\": \"You must provide a template to this method.\\n\\n\",\n \"17\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"18\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"19\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"20\": \"expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"21\": \"expects the objects in the first argument array to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"22\": \"expects the first argument object to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"23\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"24\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"25\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"26\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"27\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"28\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"29\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"30\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"31\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"32\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s')\\n\\n\",\n \"33\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"34\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"35\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"36\": \"Property must be a string value.\\n\\n\",\n \"37\": \"Syntax Error at %s.\\n\\n\",\n \"38\": \"Formula contains a function that needs parentheses at %s.\\n\\n\",\n \"39\": \"Formula is missing closing parenthesis at %s.\\n\\n\",\n \"40\": \"Formula has too many closing parentheses at %s.\\n\\n\",\n \"41\": \"All values in a formula must have the same unit or be unitless.\\n\\n\",\n \"42\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"43\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"44\": \"Invalid value passed as base to modularScale, expected number or em/rem string but got %s.\\n\\n\",\n \"45\": \"Passed invalid argument to hslToColorString, please pass a HslColor or HslaColor object.\\n\\n\",\n \"46\": \"Passed invalid argument to rgbToColorString, please pass a RgbColor or RgbaColor object.\\n\\n\",\n \"47\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"48\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"49\": \"Expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"50\": \"Expects the objects in the first argument array to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"51\": \"Expects the first argument object to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"52\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"53\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"54\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"55\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"56\": \"linearGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"57\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"58\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"59\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"60\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"61\": \"Property must be a string value.\\n\\n\",\n \"62\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"63\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"64\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"65\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s').\\n\\n\",\n \"66\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"67\": \"You must provide a template to this method.\\n\\n\",\n \"68\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"69\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got %s instead.\\n\\n\",\n \"70\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got %s instead.\\n\\n\",\n \"71\": \"Passed invalid pixel value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"72\": \"Passed invalid base value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"73\": \"Please provide a valid CSS variable.\\n\\n\",\n \"74\": \"CSS variable not found and no default was provided.\\n\\n\",\n \"75\": \"important requires a valid style object, got a %s instead.\\n\\n\",\n \"76\": \"fromSize and toSize must be provided as stringified numbers with the same units as minScreen and maxScreen.\\n\\n\",\n \"77\": \"remToPx expects a value in \\\"rem\\\" but you provided it in \\\"%s\\\".\\n\\n\",\n \"78\": \"base must be set in \\\"px\\\" or \\\"%\\\" but you set it in \\\"%s\\\".\\n\"\n};\n\n/**\n * super basic version of sprintf\n * @private\n */\nfunction format() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var a = args[0];\n var b = [];\n var c;\n for (c = 1; c < args.length; c += 1) {\n b.push(args[c]);\n }\n b.forEach(function (d) {\n a = a.replace(/%[a-z]/, d);\n });\n return a;\n}\n\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n * @private\n */\nvar PolishedError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(PolishedError, _Error);\n function PolishedError(code) {\n var _this;\n if (process.env.NODE_ENV === 'production') {\n _this = _Error.call(this, \"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#\" + code + \" for more information.\") || this;\n } else {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this = _Error.call(this, format.apply(void 0, [ERRORS[code]].concat(args))) || this;\n }\n return _assertThisInitialized(_this);\n }\n return PolishedError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nvar unitRegExp = /((?!\\w)a|na|hc|mc|dg|me[r]?|xe|ni(?![a-zA-Z])|mm|cp|tp|xp|q(?!s)|hv|xamv|nimv|wv|sm|s(?!\\D|$)|ged|darg?|nrut)/g;\n\n// Merges additional math functionality into the defaults.\nfunction mergeSymbolMaps(additionalSymbols) {\n var symbolMap = {};\n symbolMap.symbols = additionalSymbols ? _extends({}, defaultSymbolMap.symbols, additionalSymbols.symbols) : _extends({}, defaultSymbolMap.symbols);\n return symbolMap;\n}\nfunction exec(operators, values) {\n var _ref;\n var op = operators.pop();\n values.push(op.f.apply(op, (_ref = []).concat.apply(_ref, values.splice(-op.argCount))));\n return op.precedence;\n}\nfunction calculate(expression, additionalSymbols) {\n var symbolMap = mergeSymbolMaps(additionalSymbols);\n var match;\n var operators = [symbolMap.symbols['('].prefix];\n var values = [];\n var pattern = new RegExp( // Pattern for numbers\n \"\\\\d+(?:\\\\.\\\\d+)?|\" +\n // ...and patterns for individual operators/function names\n Object.keys(symbolMap.symbols).map(function (key) {\n return symbolMap.symbols[key];\n })\n // longer symbols should be listed first\n // $FlowFixMe\n .sort(function (a, b) {\n return b.symbol.length - a.symbol.length;\n })\n // $FlowFixMe\n .map(function (val) {\n return val.regSymbol;\n }).join('|') + \"|(\\\\S)\", 'g');\n pattern.lastIndex = 0; // Reset regular expression object\n\n var afterValue = false;\n do {\n match = pattern.exec(expression);\n var _ref2 = match || [')', undefined],\n token = _ref2[0],\n bad = _ref2[1];\n var notNumber = symbolMap.symbols[token];\n var notNewValue = notNumber && !notNumber.prefix && !notNumber.func;\n var notAfterValue = !notNumber || !notNumber.postfix && !notNumber.infix;\n\n // Check for syntax errors:\n if (bad || (afterValue ? notAfterValue : notNewValue)) {\n throw new PolishedError(37, match ? match.index : expression.length, expression);\n }\n if (afterValue) {\n // We either have an infix or postfix operator (they should be mutually exclusive)\n var curr = notNumber.postfix || notNumber.infix;\n do {\n var prev = operators[operators.length - 1];\n if ((curr.precedence - prev.precedence || prev.rightToLeft) > 0) break;\n // Apply previous operator, since it has precedence over current one\n } while (exec(operators, values)); // Exit loop after executing an opening parenthesis or function\n afterValue = curr.notation === 'postfix';\n if (curr.symbol !== ')') {\n operators.push(curr);\n // Postfix always has precedence over any operator that follows after it\n if (afterValue) exec(operators, values);\n }\n } else if (notNumber) {\n // prefix operator or function\n operators.push(notNumber.prefix || notNumber.func);\n if (notNumber.func) {\n // Require an opening parenthesis\n match = pattern.exec(expression);\n if (!match || match[0] !== '(') {\n throw new PolishedError(38, match ? match.index : expression.length, expression);\n }\n }\n } else {\n // number\n values.push(+token);\n afterValue = true;\n }\n } while (match && operators.length);\n if (operators.length) {\n throw new PolishedError(39, match ? match.index : expression.length, expression);\n } else if (match) {\n throw new PolishedError(40, match ? match.index : expression.length, expression);\n } else {\n return values.pop();\n }\n}\nfunction reverseString(str) {\n return str.split('').reverse().join('');\n}\n\n/**\n * Helper for doing math with CSS Units. Accepts a formula as a string. All values in the formula must have the same unit (or be unitless). Supports complex formulas utliziing addition, subtraction, multiplication, division, square root, powers, factorial, min, max, as well as parentheses for order of operation.\n *\n *In cases where you need to do calculations with mixed units where one unit is a [relative length unit](https://developer.mozilla.org/en-US/docs/Web/CSS/length#Relative_length_units), you will want to use [CSS Calc](https://developer.mozilla.org/en-US/docs/Web/CSS/calc).\n *\n * *warning* While we've done everything possible to ensure math safely evalutes formulas expressed as strings, you should always use extreme caution when passing `math` user provided values.\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: math('12rem + 8rem'),\n * fontSize: math('(12px + 2px) * 3'),\n * fontSize: math('3px^2 + sqrt(4)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${math('12rem + 8rem')};\n * fontSize: ${math('(12px + 2px) * 3')};\n * fontSize: ${math('3px^2 + sqrt(4)')};\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * fontSize: '20rem',\n * fontSize: '42px',\n * fontSize: '11px',\n * }\n */\nfunction math(formula, additionalSymbols) {\n var reversedFormula = reverseString(formula);\n var formulaMatch = reversedFormula.match(unitRegExp);\n\n // Check that all units are the same\n if (formulaMatch && !formulaMatch.every(function (unit) {\n return unit === formulaMatch[0];\n })) {\n throw new PolishedError(41);\n }\n var cleanFormula = reverseString(reversedFormula.replace(unitRegExp, ''));\n return \"\" + calculate(cleanFormula, additionalSymbols) + (formulaMatch ? reverseString(formulaMatch[0]) : '');\n}\n\nvar cssVariableRegex = /--[\\S]*/g;\n\n/**\n * Fetches the value of a passed CSS Variable in the :root scope, or otherwise returns a defaultValue if provided.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'background': cssVar('--background-color'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${cssVar('--background-color')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'background': 'red'\n * }\n */\nfunction cssVar(cssVariable, defaultValue) {\n if (!cssVariable || !cssVariable.match(cssVariableRegex)) {\n throw new PolishedError(73);\n }\n var variableValue;\n\n /* eslint-disable */\n /* istanbul ignore next */\n if (typeof document !== 'undefined' && document.documentElement !== null) {\n variableValue = getComputedStyle(document.documentElement).getPropertyValue(cssVariable);\n }\n /* eslint-enable */\n\n if (variableValue) {\n return variableValue.trim();\n } else if (defaultValue) {\n return defaultValue;\n }\n throw new PolishedError(74);\n}\n\n// @private\nfunction capitalizeString(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar positionMap$1 = ['Top', 'Right', 'Bottom', 'Left'];\nfunction generateProperty(property, position) {\n if (!property) return position.toLowerCase();\n var splitProperty = property.split('-');\n if (splitProperty.length > 1) {\n splitProperty.splice(1, 0, position);\n return splitProperty.reduce(function (acc, val) {\n return \"\" + acc + capitalizeString(val);\n });\n }\n var joinedProperty = property.replace(/([a-z])([A-Z])/g, \"$1\" + position + \"$2\");\n return property === joinedProperty ? \"\" + property + position : joinedProperty;\n}\nfunction generateStyles(property, valuesWithDefaults) {\n var styles = {};\n for (var i = 0; i < valuesWithDefaults.length; i += 1) {\n if (valuesWithDefaults[i] || valuesWithDefaults[i] === 0) {\n styles[generateProperty(property, positionMap$1[i])] = valuesWithDefaults[i];\n }\n }\n return styles;\n}\n\n/**\n * Enables shorthand for direction-based properties. It accepts a property (hyphenated or camelCased) and up to four values that map to top, right, bottom, and left, respectively. You can optionally pass an empty string to get only the directional values as properties. You can also optionally pass a null argument for a directional value to ignore it.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...directionalProperty('padding', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${directionalProperty('padding', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\nfunction directionalProperty(property) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n // prettier-ignore\n var firstValue = values[0],\n _values$ = values[1],\n secondValue = _values$ === void 0 ? firstValue : _values$,\n _values$2 = values[2],\n thirdValue = _values$2 === void 0 ? firstValue : _values$2,\n _values$3 = values[3],\n fourthValue = _values$3 === void 0 ? secondValue : _values$3;\n var valuesWithDefaults = [firstValue, secondValue, thirdValue, fourthValue];\n return generateStyles(property, valuesWithDefaults);\n}\n\n/**\n * Check if a string ends with something\n * @private\n */\nfunction endsWith(string, suffix) {\n return string.substr(-suffix.length) === suffix;\n}\n\nvar cssRegex$1 = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n\n/**\n * Returns a given CSS value minus its unit of measure.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': stripUnit('100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${stripUnit('100px')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100\n * }\n */\nfunction stripUnit(value) {\n if (typeof value !== 'string') return value;\n var matchedValue = value.match(cssRegex$1);\n return matchedValue ? parseFloat(value) : value;\n}\n\n/**\n * Factory function that creates pixel-to-x converters\n * @private\n */\nvar pxtoFactory = function pxtoFactory(to) {\n return function (pxval, base) {\n if (base === void 0) {\n base = '16px';\n }\n var newPxval = pxval;\n var newBase = base;\n if (typeof pxval === 'string') {\n if (!endsWith(pxval, 'px')) {\n throw new PolishedError(69, to, pxval);\n }\n newPxval = stripUnit(pxval);\n }\n if (typeof base === 'string') {\n if (!endsWith(base, 'px')) {\n throw new PolishedError(70, to, base);\n }\n newBase = stripUnit(base);\n }\n if (typeof newPxval === 'string') {\n throw new PolishedError(71, pxval, to);\n }\n if (typeof newBase === 'string') {\n throw new PolishedError(72, base, to);\n }\n return \"\" + newPxval / newBase + to;\n };\n};\nvar pixelsto = pxtoFactory;\n\n/**\n * Convert pixel value to ems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': em('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${em('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1em'\n * }\n */\nvar em = pixelsto('em');\nvar em$1 = em;\n\nvar cssRegex = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n\n/**\n * Returns a given CSS value and its unit as elements of an array.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': getValueAndUnit('100px')[0],\n * '--unit': getValueAndUnit('100px')[1],\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${getValueAndUnit('100px')[0]};\n * --unit: ${getValueAndUnit('100px')[1]};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100,\n * '--unit': 'px',\n * }\n */\nfunction getValueAndUnit(value) {\n if (typeof value !== 'string') return [value, ''];\n var matchedValue = value.match(cssRegex);\n if (matchedValue) return [parseFloat(value), matchedValue[2]];\n return [value, undefined];\n}\n\n/**\n * Helper for targeting rules in a style block generated by polished modules that need !important-level specificity. Can optionally specify a rule (or rules) to target specific rules.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...important(cover())\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${important(cover())}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'position': 'absolute !important',\n * 'top': '0 !important',\n * 'right: '0 !important',\n * 'bottom': '0 !important',\n * 'left: '0 !important'\n * }\n */\nfunction important(styleBlock, rules) {\n if (typeof styleBlock !== 'object' || styleBlock === null) {\n throw new PolishedError(75, typeof styleBlock);\n }\n var newStyleBlock = {};\n Object.keys(styleBlock).forEach(function (key) {\n if (typeof styleBlock[key] === 'object' && styleBlock[key] !== null) {\n newStyleBlock[key] = important(styleBlock[key], rules);\n } else if (!rules || rules && (rules === key || rules.indexOf(key) >= 0)) {\n newStyleBlock[key] = styleBlock[key] + \" !important\";\n } else {\n newStyleBlock[key] = styleBlock[key];\n }\n });\n return newStyleBlock;\n}\n\nvar ratioNames = {\n minorSecond: 1.067,\n majorSecond: 1.125,\n minorThird: 1.2,\n majorThird: 1.25,\n perfectFourth: 1.333,\n augFourth: 1.414,\n perfectFifth: 1.5,\n minorSixth: 1.6,\n goldenSection: 1.618,\n majorSixth: 1.667,\n minorSeventh: 1.778,\n majorSeventh: 1.875,\n octave: 2,\n majorTenth: 2.5,\n majorEleventh: 2.667,\n majorTwelfth: 3,\n doubleOctave: 4\n};\nfunction getRatio(ratioName) {\n return ratioNames[ratioName];\n}\n\n/**\n * Establish consistent measurements and spacial relationships throughout your projects by incrementing an em or rem value up or down a defined scale. We provide a list of commonly used scales as pre-defined variables.\n * @example\n * // Styles as object usage\n * const styles = {\n * // Increment two steps up the default scale\n * 'fontSize': modularScale(2)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * // Increment two steps up the default scale\n * fontSize: ${modularScale(2)}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'fontSize': '1.77689em'\n * }\n */\nfunction modularScale(steps, base, ratio) {\n if (base === void 0) {\n base = '1em';\n }\n if (ratio === void 0) {\n ratio = 1.333;\n }\n if (typeof steps !== 'number') {\n throw new PolishedError(42);\n }\n if (typeof ratio === 'string' && !ratioNames[ratio]) {\n throw new PolishedError(43);\n }\n var _ref = typeof base === 'string' ? getValueAndUnit(base) : [base, ''],\n realBase = _ref[0],\n unit = _ref[1];\n var realRatio = typeof ratio === 'string' ? getRatio(ratio) : ratio;\n if (typeof realBase === 'string') {\n throw new PolishedError(44, base);\n }\n return \"\" + realBase * Math.pow(realRatio, steps) + (unit || '');\n}\n\n/**\n * Convert pixel value to rems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': rem('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${rem('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1rem'\n * }\n */\nvar rem = pixelsto('rem');\nvar rem$1 = rem;\n\nvar defaultFontSize = 16;\nfunction convertBase(base) {\n var deconstructedValue = getValueAndUnit(base);\n if (deconstructedValue[1] === 'px') {\n return parseFloat(base);\n }\n if (deconstructedValue[1] === '%') {\n return parseFloat(base) / 100 * defaultFontSize;\n }\n throw new PolishedError(78, deconstructedValue[1]);\n}\nfunction getBaseFromDoc() {\n /* eslint-disable */\n /* istanbul ignore next */\n if (typeof document !== 'undefined' && document.documentElement !== null) {\n var rootFontSize = getComputedStyle(document.documentElement).fontSize;\n return rootFontSize ? convertBase(rootFontSize) : defaultFontSize;\n }\n /* eslint-enable */\n /* istanbul ignore next */\n return defaultFontSize;\n}\n\n/**\n * Convert rem values to px. By default, the base value is pulled from the font-size property on the root element (if it is set in % or px). It defaults to 16px if not found on the root. You can also override the base value by providing your own base in % or px.\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': remToPx('1.6rem')\n * 'height': remToPx('1.6rem', '10px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${remToPx('1.6rem')}\n * height: ${remToPx('1.6rem', '10px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '25.6px',\n * 'height': '16px',\n * }\n */\nfunction remToPx(value, base) {\n var deconstructedValue = getValueAndUnit(value);\n if (deconstructedValue[1] !== 'rem' && deconstructedValue[1] !== '') {\n throw new PolishedError(77, deconstructedValue[1]);\n }\n var newBase = base ? convertBase(base) : getBaseFromDoc();\n return deconstructedValue[0] * newBase + \"px\";\n}\n\nvar functionsMap$3 = {\n back: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n circ: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)',\n cubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)',\n expo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)',\n quad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n quart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)',\n quint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)',\n sine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)'\n};\n\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeIn('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeIn('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n * }\n */\nfunction easeIn(functionName) {\n return functionsMap$3[functionName.toLowerCase().trim()];\n}\n\nvar functionsMap$2 = {\n back: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n circ: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)',\n cubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)',\n expo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)',\n quad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n quart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)',\n quint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)',\n sine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'\n};\n\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeInOut('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeInOut('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n * }\n */\nfunction easeInOut(functionName) {\n return functionsMap$2[functionName.toLowerCase().trim()];\n}\n\nvar functionsMap$1 = {\n back: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)',\n cubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)',\n circ: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n expo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)',\n quad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n quart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n quint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)',\n sine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)'\n};\n\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeOut('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeOut('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n * }\n */\nfunction easeOut(functionName) {\n return functionsMap$1[functionName.toLowerCase().trim()];\n}\n\n/**\n * Returns a CSS calc formula for linear interpolation of a property between two values. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px').\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: between('20px', '100px', '400px', '1000px'),\n * fontSize: between('20px', '100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${between('20px', '100px', '400px', '1000px')};\n * fontSize: ${between('20px', '100px')}\n * `\n *\n * // CSS as JS Output\n *\n * h1: {\n * 'fontSize': 'calc(-33.33333333333334px + 13.333333333333334vw)',\n * 'fontSize': 'calc(-9.090909090909093px + 9.090909090909092vw)'\n * }\n */\nfunction between(fromSize, toSize, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n var _getValueAndUnit = getValueAndUnit(fromSize),\n unitlessFromSize = _getValueAndUnit[0],\n fromSizeUnit = _getValueAndUnit[1];\n var _getValueAndUnit2 = getValueAndUnit(toSize),\n unitlessToSize = _getValueAndUnit2[0],\n toSizeUnit = _getValueAndUnit2[1];\n var _getValueAndUnit3 = getValueAndUnit(minScreen),\n unitlessMinScreen = _getValueAndUnit3[0],\n minScreenUnit = _getValueAndUnit3[1];\n var _getValueAndUnit4 = getValueAndUnit(maxScreen),\n unitlessMaxScreen = _getValueAndUnit4[0],\n maxScreenUnit = _getValueAndUnit4[1];\n if (typeof unitlessMinScreen !== 'number' || typeof unitlessMaxScreen !== 'number' || !minScreenUnit || !maxScreenUnit || minScreenUnit !== maxScreenUnit) {\n throw new PolishedError(47);\n }\n if (typeof unitlessFromSize !== 'number' || typeof unitlessToSize !== 'number' || fromSizeUnit !== toSizeUnit) {\n throw new PolishedError(48);\n }\n if (fromSizeUnit !== minScreenUnit || toSizeUnit !== maxScreenUnit) {\n throw new PolishedError(76);\n }\n var slope = (unitlessFromSize - unitlessToSize) / (unitlessMinScreen - unitlessMaxScreen);\n var base = unitlessToSize - slope * unitlessMaxScreen;\n return \"calc(\" + base.toFixed(2) + (fromSizeUnit || '') + \" + \" + (100 * slope).toFixed(2) + \"vw)\";\n}\n\n/**\n * CSS to contain a float (credit to CSSMojo).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...clearFix(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${clearFix()}\n * `\n *\n * // CSS as JS Output\n *\n * '&::after': {\n * 'clear': 'both',\n * 'content': '\"\"',\n * 'display': 'table'\n * }\n */\nfunction clearFix(parent) {\n var _ref;\n if (parent === void 0) {\n parent = '&';\n }\n var pseudoSelector = parent + \"::after\";\n return _ref = {}, _ref[pseudoSelector] = {\n clear: 'both',\n content: '\"\"',\n display: 'table'\n }, _ref;\n}\n\n/**\n * CSS to fully cover an area. Can optionally be passed an offset to act as a \"padding\".\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...cover()\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${cover()}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'position': 'absolute',\n * 'top': '0',\n * 'right: '0',\n * 'bottom': '0',\n * 'left: '0'\n * }\n */\nfunction cover(offset) {\n if (offset === void 0) {\n offset = 0;\n }\n return {\n position: 'absolute',\n top: offset,\n right: offset,\n bottom: offset,\n left: offset\n };\n}\n\n/**\n * CSS to represent truncated text with an ellipsis. You can optionally pass a max-width and number of lines before truncating.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...ellipsis('250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${ellipsis('250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'display': 'inline-block',\n * 'maxWidth': '250px',\n * 'overflow': 'hidden',\n * 'textOverflow': 'ellipsis',\n * 'whiteSpace': 'nowrap',\n * 'wordWrap': 'normal'\n * }\n */\nfunction ellipsis(width, lines) {\n if (lines === void 0) {\n lines = 1;\n }\n var styles = {\n display: 'inline-block',\n maxWidth: width || '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n wordWrap: 'normal'\n };\n return lines > 1 ? _extends({}, styles, {\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: lines,\n display: '-webkit-box',\n whiteSpace: 'normal'\n }) : styles;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n/**\n * Returns a set of media queries that resizes a property (or set of properties) between a provided fromSize and toSize. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px') to constrain the interpolation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...fluidRange(\n * {\n * prop: 'padding',\n * fromSize: '20px',\n * toSize: '100px',\n * },\n * '400px',\n * '1000px',\n * )\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${fluidRange(\n * {\n * prop: 'padding',\n * fromSize: '20px',\n * toSize: '100px',\n * },\n * '400px',\n * '1000px',\n * )}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * \"@media (min-width: 1000px)\": Object {\n * \"padding\": \"100px\",\n * },\n * \"@media (min-width: 400px)\": Object {\n * \"padding\": \"calc(-33.33333333333334px + 13.333333333333334vw)\",\n * },\n * \"padding\": \"20px\",\n * }\n */\nfunction fluidRange(cssProp, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n if (!Array.isArray(cssProp) && typeof cssProp !== 'object' || cssProp === null) {\n throw new PolishedError(49);\n }\n if (Array.isArray(cssProp)) {\n var mediaQueries = {};\n var fallbacks = {};\n for (var _iterator = _createForOfIteratorHelperLoose(cssProp), _step; !(_step = _iterator()).done;) {\n var _extends2, _extends3;\n var obj = _step.value;\n if (!obj.prop || !obj.fromSize || !obj.toSize) {\n throw new PolishedError(50);\n }\n fallbacks[obj.prop] = obj.fromSize;\n mediaQueries[\"@media (min-width: \" + minScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + minScreen + \")\"], (_extends2 = {}, _extends2[obj.prop] = between(obj.fromSize, obj.toSize, minScreen, maxScreen), _extends2));\n mediaQueries[\"@media (min-width: \" + maxScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + maxScreen + \")\"], (_extends3 = {}, _extends3[obj.prop] = obj.toSize, _extends3));\n }\n return _extends({}, fallbacks, mediaQueries);\n } else {\n var _ref, _ref2, _ref3;\n if (!cssProp.prop || !cssProp.fromSize || !cssProp.toSize) {\n throw new PolishedError(51);\n }\n return _ref3 = {}, _ref3[cssProp.prop] = cssProp.fromSize, _ref3[\"@media (min-width: \" + minScreen + \")\"] = (_ref = {}, _ref[cssProp.prop] = between(cssProp.fromSize, cssProp.toSize, minScreen, maxScreen), _ref), _ref3[\"@media (min-width: \" + maxScreen + \")\"] = (_ref2 = {}, _ref2[cssProp.prop] = cssProp.toSize, _ref2), _ref3;\n }\n}\n\nvar dataURIRegex = /^\\s*data:([a-z]+\\/[a-z-]+(;[a-z-]+=[a-z-]+)?)?(;charset=[a-z0-9-]+)?(;base64)?,[a-z0-9!$&',()*+,;=\\-._~:@/?%\\s]*\\s*$/i;\nvar formatHintMap = {\n woff: 'woff',\n woff2: 'woff2',\n ttf: 'truetype',\n otf: 'opentype',\n eot: 'embedded-opentype',\n svg: 'svg',\n svgz: 'svg'\n};\nfunction generateFormatHint(format, formatHint) {\n if (!formatHint) return '';\n return \" format(\\\"\" + formatHintMap[format] + \"\\\")\";\n}\nfunction isDataURI(fontFilePath) {\n return !!fontFilePath.replace(/\\s+/g, ' ').match(dataURIRegex);\n}\nfunction generateFileReferences(fontFilePath, fileFormats, formatHint) {\n if (isDataURI(fontFilePath)) {\n return \"url(\\\"\" + fontFilePath + \"\\\")\" + generateFormatHint(fileFormats[0], formatHint);\n }\n var fileFontReferences = fileFormats.map(function (format) {\n return \"url(\\\"\" + fontFilePath + \".\" + format + \"\\\")\" + generateFormatHint(format, formatHint);\n });\n return fileFontReferences.join(', ');\n}\nfunction generateLocalReferences(localFonts) {\n var localFontReferences = localFonts.map(function (font) {\n return \"local(\\\"\" + font + \"\\\")\";\n });\n return localFontReferences.join(', ');\n}\nfunction generateSources(fontFilePath, localFonts, fileFormats, formatHint) {\n var fontReferences = [];\n if (localFonts) fontReferences.push(generateLocalReferences(localFonts));\n if (fontFilePath) {\n fontReferences.push(generateFileReferences(fontFilePath, fileFormats, formatHint));\n }\n return fontReferences.join(', ');\n}\n\n/**\n * CSS for a @font-face declaration. Defaults to check for local copies of the font on the user's machine. You can disable this by passing `null` to localFonts.\n *\n * @example\n * // Styles as object basic usage\n * const styles = {\n * ...fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * })\n * }\n *\n * // styled-components basic usage\n * const GlobalStyle = createGlobalStyle`${\n * fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * }\n * )}`\n *\n * // CSS as JS Output\n *\n * '@font-face': {\n * 'fontFamily': 'Sans-Pro',\n * 'src': 'url(\"path/to/file.eot\"), url(\"path/to/file.woff2\"), url(\"path/to/file.woff\"), url(\"path/to/file.ttf\"), url(\"path/to/file.svg\")',\n * }\n */\n\nfunction fontFace(_ref) {\n var fontFamily = _ref.fontFamily,\n fontFilePath = _ref.fontFilePath,\n fontStretch = _ref.fontStretch,\n fontStyle = _ref.fontStyle,\n fontVariant = _ref.fontVariant,\n fontWeight = _ref.fontWeight,\n _ref$fileFormats = _ref.fileFormats,\n fileFormats = _ref$fileFormats === void 0 ? ['eot', 'woff2', 'woff', 'ttf', 'svg'] : _ref$fileFormats,\n _ref$formatHint = _ref.formatHint,\n formatHint = _ref$formatHint === void 0 ? false : _ref$formatHint,\n _ref$localFonts = _ref.localFonts,\n localFonts = _ref$localFonts === void 0 ? [fontFamily] : _ref$localFonts,\n unicodeRange = _ref.unicodeRange,\n fontDisplay = _ref.fontDisplay,\n fontVariationSettings = _ref.fontVariationSettings,\n fontFeatureSettings = _ref.fontFeatureSettings;\n // Error Handling\n if (!fontFamily) throw new PolishedError(55);\n if (!fontFilePath && !localFonts) {\n throw new PolishedError(52);\n }\n if (localFonts && !Array.isArray(localFonts)) {\n throw new PolishedError(53);\n }\n if (!Array.isArray(fileFormats)) {\n throw new PolishedError(54);\n }\n var fontFaceDeclaration = {\n '@font-face': {\n fontFamily: fontFamily,\n src: generateSources(fontFilePath, localFonts, fileFormats, formatHint),\n unicodeRange: unicodeRange,\n fontStretch: fontStretch,\n fontStyle: fontStyle,\n fontVariant: fontVariant,\n fontWeight: fontWeight,\n fontDisplay: fontDisplay,\n fontVariationSettings: fontVariationSettings,\n fontFeatureSettings: fontFeatureSettings\n }\n };\n\n // Removes undefined fields for cleaner css object.\n return JSON.parse(JSON.stringify(fontFaceDeclaration));\n}\n\n/**\n * CSS to hide text to show a background image in a SEO-friendly way.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'backgroundImage': 'url(logo.png)',\n * ...hideText(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * backgroundImage: url(logo.png);\n * ${hideText()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'backgroundImage': 'url(logo.png)',\n * 'textIndent': '101%',\n * 'overflow': 'hidden',\n * 'whiteSpace': 'nowrap',\n * }\n */\nfunction hideText() {\n return {\n textIndent: '101%',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n };\n}\n\n/**\n * CSS to hide content visually but remain accessible to screen readers.\n * from [HTML5 Boilerplate](https://github.com/h5bp/html5-boilerplate/blob/9a176f57af1cfe8ec70300da4621fb9b07e5fa31/src/css/main.css#L121)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...hideVisually(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hideVisually()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'border': '0',\n * 'clip': 'rect(0 0 0 0)',\n * 'height': '1px',\n * 'margin': '-1px',\n * 'overflow': 'hidden',\n * 'padding': '0',\n * 'position': 'absolute',\n * 'whiteSpace': 'nowrap',\n * 'width': '1px',\n * }\n */\nfunction hideVisually() {\n return {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n whiteSpace: 'nowrap',\n width: '1px'\n };\n}\n\n/**\n * Generates a media query to target HiDPI devices.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * [hiDPI(1.5)]: {\n * width: 200px;\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hiDPI(1.5)} {\n * width: 200px;\n * }\n * `\n *\n * // CSS as JS Output\n *\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n * only screen and (min--moz-device-pixel-ratio: 1.5),\n * only screen and (-o-min-device-pixel-ratio: 1.5/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * 'width': '200px',\n * }\n */\nfunction hiDPI(ratio) {\n if (ratio === void 0) {\n ratio = 1.3;\n }\n return \"\\n @media only screen and (-webkit-min-device-pixel-ratio: \" + ratio + \"),\\n only screen and (min--moz-device-pixel-ratio: \" + ratio + \"),\\n only screen and (-o-min-device-pixel-ratio: \" + ratio + \"/1),\\n only screen and (min-resolution: \" + Math.round(ratio * 96) + \"dpi),\\n only screen and (min-resolution: \" + ratio + \"dppx)\\n \";\n}\n\nfunction constructGradientValue(literals) {\n var template = '';\n for (var _len = arguments.length, substitutions = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n substitutions[_key - 1] = arguments[_key];\n }\n for (var i = 0; i < literals.length; i += 1) {\n template += literals[i];\n if (i === substitutions.length - 1 && substitutions[i]) {\n var definedValues = substitutions.filter(function (substitute) {\n return !!substitute;\n });\n // Adds leading coma if properties preceed color-stops\n if (definedValues.length > 1) {\n template = template.slice(0, -1);\n template += \", \" + substitutions[i];\n // No trailing space if color-stops is the only param provided\n } else if (definedValues.length === 1) {\n template += \"\" + substitutions[i];\n }\n } else if (substitutions[i]) {\n template += substitutions[i] + \" \";\n }\n }\n return template.trim();\n}\n\nvar _templateObject$1;\n/**\n * CSS for declaring a linear gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...linearGradient({\n colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n toDirection: 'to top right',\n fallback: '#FFF',\n })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${linearGradient({\n colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n toDirection: 'to top right',\n fallback: '#FFF',\n })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n * 'backgroundColor': '#FFF',\n * 'backgroundImage': 'linear-gradient(to top right, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\nfunction linearGradient(_ref) {\n var colorStops = _ref.colorStops,\n fallback = _ref.fallback,\n _ref$toDirection = _ref.toDirection,\n toDirection = _ref$toDirection === void 0 ? '' : _ref$toDirection;\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(56);\n }\n return {\n backgroundColor: fallback || colorStops[0].replace(/,\\s+/g, ',').split(' ')[0].replace(/,(?=\\S)/g, ', '),\n backgroundImage: constructGradientValue(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteralLoose([\"linear-gradient(\", \"\", \")\"])), toDirection, colorStops.join(', ').replace(/,(?=\\S)/g, ', '))\n };\n}\n\n/**\n * CSS to normalize abnormalities across browsers (normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...normalize(),\n * }\n *\n * // styled-components usage\n * const GlobalStyle = createGlobalStyle`${normalize()}`\n *\n * // CSS as JS Output\n *\n * html {\n * lineHeight: 1.15,\n * textSizeAdjust: 100%,\n * } ...\n */\nfunction normalize() {\n var _ref;\n return [(_ref = {\n html: {\n lineHeight: '1.15',\n textSizeAdjust: '100%'\n },\n body: {\n margin: '0'\n },\n main: {\n display: 'block'\n },\n h1: {\n fontSize: '2em',\n margin: '0.67em 0'\n },\n hr: {\n boxSizing: 'content-box',\n height: '0',\n overflow: 'visible'\n },\n pre: {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n },\n a: {\n backgroundColor: 'transparent'\n },\n 'abbr[title]': {\n borderBottom: 'none',\n textDecoration: 'underline'\n }\n }, _ref[\"b,\\n strong\"] = {\n fontWeight: 'bolder'\n }, _ref[\"code,\\n kbd,\\n samp\"] = {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n }, _ref.small = {\n fontSize: '80%'\n }, _ref[\"sub,\\n sup\"] = {\n fontSize: '75%',\n lineHeight: '0',\n position: 'relative',\n verticalAlign: 'baseline'\n }, _ref.sub = {\n bottom: '-0.25em'\n }, _ref.sup = {\n top: '-0.5em'\n }, _ref.img = {\n borderStyle: 'none'\n }, _ref[\"button,\\n input,\\n optgroup,\\n select,\\n textarea\"] = {\n fontFamily: 'inherit',\n fontSize: '100%',\n lineHeight: '1.15',\n margin: '0'\n }, _ref[\"button,\\n input\"] = {\n overflow: 'visible'\n }, _ref[\"button,\\n select\"] = {\n textTransform: 'none'\n }, _ref[\"button,\\n html [type=\\\"button\\\"],\\n [type=\\\"reset\\\"],\\n [type=\\\"submit\\\"]\"] = {\n WebkitAppearance: 'button'\n }, _ref[\"button::-moz-focus-inner,\\n [type=\\\"button\\\"]::-moz-focus-inner,\\n [type=\\\"reset\\\"]::-moz-focus-inner,\\n [type=\\\"submit\\\"]::-moz-focus-inner\"] = {\n borderStyle: 'none',\n padding: '0'\n }, _ref[\"button:-moz-focusring,\\n [type=\\\"button\\\"]:-moz-focusring,\\n [type=\\\"reset\\\"]:-moz-focusring,\\n [type=\\\"submit\\\"]:-moz-focusring\"] = {\n outline: '1px dotted ButtonText'\n }, _ref.fieldset = {\n padding: '0.35em 0.625em 0.75em'\n }, _ref.legend = {\n boxSizing: 'border-box',\n color: 'inherit',\n display: 'table',\n maxWidth: '100%',\n padding: '0',\n whiteSpace: 'normal'\n }, _ref.progress = {\n verticalAlign: 'baseline'\n }, _ref.textarea = {\n overflow: 'auto'\n }, _ref[\"[type=\\\"checkbox\\\"],\\n [type=\\\"radio\\\"]\"] = {\n boxSizing: 'border-box',\n padding: '0'\n }, _ref[\"[type=\\\"number\\\"]::-webkit-inner-spin-button,\\n [type=\\\"number\\\"]::-webkit-outer-spin-button\"] = {\n height: 'auto'\n }, _ref['[type=\"search\"]'] = {\n WebkitAppearance: 'textfield',\n outlineOffset: '-2px'\n }, _ref['[type=\"search\"]::-webkit-search-decoration'] = {\n WebkitAppearance: 'none'\n }, _ref['::-webkit-file-upload-button'] = {\n WebkitAppearance: 'button',\n font: 'inherit'\n }, _ref.details = {\n display: 'block'\n }, _ref.summary = {\n display: 'list-item'\n }, _ref.template = {\n display: 'none'\n }, _ref['[hidden]'] = {\n display: 'none'\n }, _ref), {\n 'abbr[title]': {\n textDecoration: 'underline dotted'\n }\n }];\n}\n\nvar _templateObject;\n/**\n * CSS for declaring a radial gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...radialGradient({\n * colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n * extent: 'farthest-corner at 45px 45px',\n * position: 'center',\n * shape: 'ellipse',\n * })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${radialGradient({\n * colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n * extent: 'farthest-corner at 45px 45px',\n * position: 'center',\n * shape: 'ellipse',\n * })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n * 'backgroundColor': '#00FFFF',\n * 'backgroundImage': 'radial-gradient(center ellipse farthest-corner at 45px 45px, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\nfunction radialGradient(_ref) {\n var colorStops = _ref.colorStops,\n _ref$extent = _ref.extent,\n extent = _ref$extent === void 0 ? '' : _ref$extent,\n fallback = _ref.fallback,\n _ref$position = _ref.position,\n position = _ref$position === void 0 ? '' : _ref$position,\n _ref$shape = _ref.shape,\n shape = _ref$shape === void 0 ? '' : _ref$shape;\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(57);\n }\n return {\n backgroundColor: fallback || colorStops[0].split(' ')[0],\n backgroundImage: constructGradientValue(_templateObject || (_templateObject = _taggedTemplateLiteralLoose([\"radial-gradient(\", \"\", \"\", \"\", \")\"])), position, shape, extent, colorStops.join(', '))\n };\n}\n\n/**\n * A helper to generate a retina background image and non-retina\n * background image. The retina background image will output to a HiDPI media query. The mixin uses\n * a _2x.png filename suffix by default.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...retinaImage('my-img')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${retinaImage('my-img')}\n * `\n *\n * // CSS as JS Output\n * div {\n * backgroundImage: 'url(my-img.png)',\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.3),\n * only screen and (min--moz-device-pixel-ratio: 1.3),\n * only screen and (-o-min-device-pixel-ratio: 1.3/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * backgroundImage: 'url(my-img_2x.png)',\n * }\n * }\n */\nfunction retinaImage(filename, backgroundSize, extension, retinaFilename, retinaSuffix) {\n var _ref;\n if (extension === void 0) {\n extension = 'png';\n }\n if (retinaSuffix === void 0) {\n retinaSuffix = '_2x';\n }\n if (!filename) {\n throw new PolishedError(58);\n }\n // Replace the dot at the beginning of the passed extension if one exists\n var ext = extension.replace(/^\\./, '');\n var rFilename = retinaFilename ? retinaFilename + \".\" + ext : \"\" + filename + retinaSuffix + \".\" + ext;\n return _ref = {\n backgroundImage: \"url(\" + filename + \".\" + ext + \")\"\n }, _ref[hiDPI()] = _extends({\n backgroundImage: \"url(\" + rFilename + \")\"\n }, backgroundSize ? {\n backgroundSize: backgroundSize\n } : {}), _ref;\n}\n\n/* eslint-disable key-spacing */\nvar functionsMap = {\n easeInBack: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n easeInCirc: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)',\n easeInCubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)',\n easeInExpo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)',\n easeInQuad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n easeInQuart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)',\n easeInQuint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)',\n easeInSine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)',\n easeOutBack: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)',\n easeOutCubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)',\n easeOutCirc: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n easeOutExpo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)',\n easeOutQuad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n easeOutQuart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n easeOutQuint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)',\n easeOutSine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)',\n easeInOutBack: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n easeInOutCirc: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)',\n easeInOutCubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)',\n easeInOutExpo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)',\n easeInOutQuad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n easeInOutQuart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)',\n easeInOutQuint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)',\n easeInOutSine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'\n};\n/* eslint-enable key-spacing */\n\nfunction getTimingFunction(functionName) {\n return functionsMap[functionName];\n}\n\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @deprecated - This will be deprecated in v5 in favor of `easeIn`, `easeOut`, `easeInOut`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': timingFunctions('easeInQuad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${timingFunctions('easeInQuad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n * }\n */\n\nfunction timingFunctions(timingFunction) {\n return getTimingFunction(timingFunction);\n}\n\nvar getBorderWidth = function getBorderWidth(pointingDirection, height, width) {\n var fullWidth = \"\" + width[0] + (width[1] || '');\n var halfWidth = \"\" + width[0] / 2 + (width[1] || '');\n var fullHeight = \"\" + height[0] + (height[1] || '');\n var halfHeight = \"\" + height[0] / 2 + (height[1] || '');\n switch (pointingDirection) {\n case 'top':\n return \"0 \" + halfWidth + \" \" + fullHeight + \" \" + halfWidth;\n case 'topLeft':\n return fullWidth + \" \" + fullHeight + \" 0 0\";\n case 'left':\n return halfHeight + \" \" + fullWidth + \" \" + halfHeight + \" 0\";\n case 'bottomLeft':\n return fullWidth + \" 0 0 \" + fullHeight;\n case 'bottom':\n return fullHeight + \" \" + halfWidth + \" 0 \" + halfWidth;\n case 'bottomRight':\n return \"0 0 \" + fullWidth + \" \" + fullHeight;\n case 'right':\n return halfHeight + \" 0 \" + halfHeight + \" \" + fullWidth;\n case 'topRight':\n default:\n return \"0 \" + fullWidth + \" \" + fullHeight + \" 0\";\n }\n};\nvar getBorderColor = function getBorderColor(pointingDirection, foregroundColor) {\n switch (pointingDirection) {\n case 'top':\n case 'bottomRight':\n return {\n borderBottomColor: foregroundColor\n };\n case 'right':\n case 'bottomLeft':\n return {\n borderLeftColor: foregroundColor\n };\n case 'bottom':\n case 'topLeft':\n return {\n borderTopColor: foregroundColor\n };\n case 'left':\n case 'topRight':\n return {\n borderRightColor: foregroundColor\n };\n default:\n throw new PolishedError(59);\n }\n};\n\n/**\n * CSS to represent triangle with any pointing direction with an optional background color.\n *\n * @example\n * // Styles as object usage\n *\n * const styles = {\n * ...triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })\n * }\n *\n *\n * // styled-components usage\n * const div = styled.div`\n * ${triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })}\n *\n *\n * // CSS as JS Output\n *\n * div: {\n * 'borderColor': 'transparent transparent transparent red',\n * 'borderStyle': 'solid',\n * 'borderWidth': '50px 0 50px 100px',\n * 'height': '0',\n * 'width': '0',\n * }\n */\nfunction triangle(_ref) {\n var pointingDirection = _ref.pointingDirection,\n height = _ref.height,\n width = _ref.width,\n foregroundColor = _ref.foregroundColor,\n _ref$backgroundColor = _ref.backgroundColor,\n backgroundColor = _ref$backgroundColor === void 0 ? 'transparent' : _ref$backgroundColor;\n var widthAndUnit = getValueAndUnit(width);\n var heightAndUnit = getValueAndUnit(height);\n if (isNaN(heightAndUnit[0]) || isNaN(widthAndUnit[0])) {\n throw new PolishedError(60);\n }\n return _extends({\n width: '0',\n height: '0',\n borderColor: backgroundColor\n }, getBorderColor(pointingDirection, foregroundColor), {\n borderStyle: 'solid',\n borderWidth: getBorderWidth(pointingDirection, heightAndUnit, widthAndUnit)\n });\n}\n\n/**\n * Provides an easy way to change the `wordWrap` property.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...wordWrap('break-word')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${wordWrap('break-word')}\n * `\n *\n * // CSS as JS Output\n *\n * const styles = {\n * overflowWrap: 'break-word',\n * wordWrap: 'break-word',\n * wordBreak: 'break-all',\n * }\n */\nfunction wordWrap(wrap) {\n if (wrap === void 0) {\n wrap = 'break-word';\n }\n var wordBreak = wrap === 'break-word' ? 'break-all' : wrap;\n return {\n overflowWrap: wrap,\n wordWrap: wrap,\n wordBreak: wordBreak\n };\n}\n\nfunction colorToInt(color) {\n return Math.round(color * 255);\n}\nfunction convertToInt(red, green, blue) {\n return colorToInt(red) + \",\" + colorToInt(green) + \",\" + colorToInt(blue);\n}\nfunction hslToRgb(hue, saturation, lightness, convert) {\n if (convert === void 0) {\n convert = convertToInt;\n }\n if (saturation === 0) {\n // achromatic\n return convert(lightness, lightness, lightness);\n }\n\n // formulae from https://en.wikipedia.org/wiki/HSL_and_HSV\n var huePrime = (hue % 360 + 360) % 360 / 60;\n var chroma = (1 - Math.abs(2 * lightness - 1)) * saturation;\n var secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n var red = 0;\n var green = 0;\n var blue = 0;\n if (huePrime >= 0 && huePrime < 1) {\n red = chroma;\n green = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n red = secondComponent;\n green = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n green = chroma;\n blue = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n green = secondComponent;\n blue = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n red = secondComponent;\n blue = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n red = chroma;\n blue = secondComponent;\n }\n var lightnessModification = lightness - chroma / 2;\n var finalRed = red + lightnessModification;\n var finalGreen = green + lightnessModification;\n var finalBlue = blue + lightnessModification;\n return convert(finalRed, finalGreen, finalBlue);\n}\n\nvar namedColorMap = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkgrey: 'a9a9a9',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkslategrey: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dimgrey: '696969',\n dodgerblue: '1e90ff',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n grey: '808080',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred: 'cd5c5c',\n indigo: '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgray: 'd3d3d3',\n lightgreen: '90ee90',\n lightgrey: 'd3d3d3',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslategray: '789',\n lightslategrey: '789',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '0f0',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'f0f',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370db',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'db7093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '639',\n red: 'f00',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n slategrey: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n wheat: 'f5deb3',\n white: 'fff',\n whitesmoke: 'f5f5f5',\n yellow: 'ff0',\n yellowgreen: '9acd32'\n};\n\n/**\n * Checks if a string is a CSS named color and returns its equivalent hex value, otherwise returns the original color.\n * @private\n */\nfunction nameToHex(color) {\n if (typeof color !== 'string') return color;\n var normalizedColorName = color.toLowerCase();\n return namedColorMap[normalizedColorName] ? \"#\" + namedColorMap[normalizedColorName] : color;\n}\n\nvar hexRegex = /^#[a-fA-F0-9]{6}$/;\nvar hexRgbaRegex = /^#[a-fA-F0-9]{8}$/;\nvar reducedHexRegex = /^#[a-fA-F0-9]{3}$/;\nvar reducedRgbaHexRegex = /^#[a-fA-F0-9]{4}$/;\nvar rgbRegex = /^rgb\\(\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*\\)$/i;\nvar rgbaRegex = /^rgb(?:a)?\\(\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,|\\/)\\s*([-+]?\\d*[.]?\\d+[%]?)\\s*\\)$/i;\nvar hslRegex = /^hsl\\(\\s*(\\d{0,3}[.]?[0-9]+(?:deg)?)\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*\\)$/i;\nvar hslaRegex = /^hsl(?:a)?\\(\\s*(\\d{0,3}[.]?[0-9]+(?:deg)?)\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,|\\/)\\s*([-+]?\\d*[.]?\\d+[%]?)\\s*\\)$/i;\n\n/**\n * Returns an RgbColor or RgbaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a RgbColor or RgbaColor object back to a string.\n *\n * @example\n * // Assigns `{ red: 255, green: 0, blue: 0 }` to color1\n * const color1 = parseToRgb('rgb(255, 0, 0)');\n * // Assigns `{ red: 92, green: 102, blue: 112, alpha: 0.75 }` to color2\n * const color2 = parseToRgb('hsla(210, 10%, 40%, 0.75)');\n */\nfunction parseToRgb(color) {\n if (typeof color !== 'string') {\n throw new PolishedError(3);\n }\n var normalizedColor = nameToHex(color);\n if (normalizedColor.match(hexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16)\n };\n }\n if (normalizedColor.match(hexRgbaRegex)) {\n var alpha = parseFloat((parseInt(\"\" + normalizedColor[7] + normalizedColor[8], 16) / 255).toFixed(2));\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16),\n alpha: alpha\n };\n }\n if (normalizedColor.match(reducedHexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16)\n };\n }\n if (normalizedColor.match(reducedRgbaHexRegex)) {\n var _alpha = parseFloat((parseInt(\"\" + normalizedColor[4] + normalizedColor[4], 16) / 255).toFixed(2));\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16),\n alpha: _alpha\n };\n }\n var rgbMatched = rgbRegex.exec(normalizedColor);\n if (rgbMatched) {\n return {\n red: parseInt(\"\" + rgbMatched[1], 10),\n green: parseInt(\"\" + rgbMatched[2], 10),\n blue: parseInt(\"\" + rgbMatched[3], 10)\n };\n }\n var rgbaMatched = rgbaRegex.exec(normalizedColor.substring(0, 50));\n if (rgbaMatched) {\n return {\n red: parseInt(\"\" + rgbaMatched[1], 10),\n green: parseInt(\"\" + rgbaMatched[2], 10),\n blue: parseInt(\"\" + rgbaMatched[3], 10),\n alpha: parseFloat(\"\" + rgbaMatched[4]) > 1 ? parseFloat(\"\" + rgbaMatched[4]) / 100 : parseFloat(\"\" + rgbaMatched[4])\n };\n }\n var hslMatched = hslRegex.exec(normalizedColor);\n if (hslMatched) {\n var hue = parseInt(\"\" + hslMatched[1], 10);\n var saturation = parseInt(\"\" + hslMatched[2], 10) / 100;\n var lightness = parseInt(\"\" + hslMatched[3], 10) / 100;\n var rgbColorString = \"rgb(\" + hslToRgb(hue, saturation, lightness) + \")\";\n var hslRgbMatched = rgbRegex.exec(rgbColorString);\n if (!hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, rgbColorString);\n }\n return {\n red: parseInt(\"\" + hslRgbMatched[1], 10),\n green: parseInt(\"\" + hslRgbMatched[2], 10),\n blue: parseInt(\"\" + hslRgbMatched[3], 10)\n };\n }\n var hslaMatched = hslaRegex.exec(normalizedColor.substring(0, 50));\n if (hslaMatched) {\n var _hue = parseInt(\"\" + hslaMatched[1], 10);\n var _saturation = parseInt(\"\" + hslaMatched[2], 10) / 100;\n var _lightness = parseInt(\"\" + hslaMatched[3], 10) / 100;\n var _rgbColorString = \"rgb(\" + hslToRgb(_hue, _saturation, _lightness) + \")\";\n var _hslRgbMatched = rgbRegex.exec(_rgbColorString);\n if (!_hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, _rgbColorString);\n }\n return {\n red: parseInt(\"\" + _hslRgbMatched[1], 10),\n green: parseInt(\"\" + _hslRgbMatched[2], 10),\n blue: parseInt(\"\" + _hslRgbMatched[3], 10),\n alpha: parseFloat(\"\" + hslaMatched[4]) > 1 ? parseFloat(\"\" + hslaMatched[4]) / 100 : parseFloat(\"\" + hslaMatched[4])\n };\n }\n throw new PolishedError(5);\n}\n\nfunction rgbToHsl(color) {\n // make sure rgb are contained in a set of [0, 255]\n var red = color.red / 255;\n var green = color.green / 255;\n var blue = color.blue / 255;\n var max = Math.max(red, green, blue);\n var min = Math.min(red, green, blue);\n var lightness = (max + min) / 2;\n if (max === min) {\n // achromatic\n if (color.alpha !== undefined) {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness,\n alpha: color.alpha\n };\n } else {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness\n };\n }\n }\n var hue;\n var delta = max - min;\n var saturation = lightness > 0.5 ? delta / (2 - max - min) : delta / (max + min);\n switch (max) {\n case red:\n hue = (green - blue) / delta + (green < blue ? 6 : 0);\n break;\n case green:\n hue = (blue - red) / delta + 2;\n break;\n default:\n // blue case\n hue = (red - green) / delta + 4;\n break;\n }\n hue *= 60;\n if (color.alpha !== undefined) {\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness,\n alpha: color.alpha\n };\n }\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness\n };\n}\n\n/**\n * Returns an HslColor or HslaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a HslColor or HslaColor object back to a string.\n *\n * @example\n * // Assigns `{ hue: 0, saturation: 1, lightness: 0.5 }` to color1\n * const color1 = parseToHsl('rgb(255, 0, 0)');\n * // Assigns `{ hue: 128, saturation: 1, lightness: 0.5, alpha: 0.75 }` to color2\n * const color2 = parseToHsl('hsla(128, 100%, 50%, 0.75)');\n */\nfunction parseToHsl(color) {\n // Note: At a later stage we can optimize this function as right now a hsl\n // color would be parsed converted to rgb values and converted back to hsl.\n return rgbToHsl(parseToRgb(color));\n}\n\n/**\n * Reduces hex values if possible e.g. #ff8866 to #f86\n * @private\n */\nvar reduceHexValue = function reduceHexValue(value) {\n if (value.length === 7 && value[1] === value[2] && value[3] === value[4] && value[5] === value[6]) {\n return \"#\" + value[1] + value[3] + value[5];\n }\n return value;\n};\nvar reduceHexValue$1 = reduceHexValue;\n\nfunction numberToHex(value) {\n var hex = value.toString(16);\n return hex.length === 1 ? \"0\" + hex : hex;\n}\n\nfunction colorToHex(color) {\n return numberToHex(Math.round(color * 255));\n}\nfunction convertToHex(red, green, blue) {\n return reduceHexValue$1(\"#\" + colorToHex(red) + colorToHex(green) + colorToHex(blue));\n}\nfunction hslToHex(hue, saturation, lightness) {\n return hslToRgb(hue, saturation, lightness, convertToHex);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsl(359, 0.75, 0.4),\n * background: hsl({ hue: 360, saturation: 0.75, lightness: 0.4 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsl(359, 0.75, 0.4)};\n * background: ${hsl({ hue: 360, saturation: 0.75, lightness: 0.4 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#b3191c\";\n * background: \"#b3191c\";\n * }\n */\nfunction hsl(value, saturation, lightness) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number') {\n return hslToHex(value, saturation, lightness);\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined) {\n return hslToHex(value.hue, value.saturation, value.lightness);\n }\n throw new PolishedError(1);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsla(359, 0.75, 0.4, 0.7),\n * background: hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 }),\n * background: hsla(359, 0.75, 0.4, 1),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsla(359, 0.75, 0.4, 0.7)};\n * background: ${hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 })};\n * background: ${hsla(359, 0.75, 0.4, 1)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"#b3191c\";\n * }\n */\nfunction hsla(value, saturation, lightness, alpha) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number' && typeof alpha === 'number') {\n return alpha >= 1 ? hslToHex(value, saturation, lightness) : \"rgba(\" + hslToRgb(value, saturation, lightness) + \",\" + alpha + \")\";\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined && alpha === undefined) {\n return value.alpha >= 1 ? hslToHex(value.hue, value.saturation, value.lightness) : \"rgba(\" + hslToRgb(value.hue, value.saturation, value.lightness) + \",\" + value.alpha + \")\";\n }\n throw new PolishedError(2);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgb(255, 205, 100),\n * background: rgb({ red: 255, green: 205, blue: 100 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgb(255, 205, 100)};\n * background: ${rgb({ red: 255, green: 205, blue: 100 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffcd64\";\n * background: \"#ffcd64\";\n * }\n */\nfunction rgb(value, green, blue) {\n if (typeof value === 'number' && typeof green === 'number' && typeof blue === 'number') {\n return reduceHexValue$1(\"#\" + numberToHex(value) + numberToHex(green) + numberToHex(blue));\n } else if (typeof value === 'object' && green === undefined && blue === undefined) {\n return reduceHexValue$1(\"#\" + numberToHex(value.red) + numberToHex(value.green) + numberToHex(value.blue));\n }\n throw new PolishedError(6);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * Can also be used to fade a color by passing a hex value or named CSS color along with an alpha value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgba(255, 205, 100, 0.7),\n * background: rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 }),\n * background: rgba(255, 205, 100, 1),\n * background: rgba('#ffffff', 0.4),\n * background: rgba('black', 0.7),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgba(255, 205, 100, 0.7)};\n * background: ${rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 })};\n * background: ${rgba(255, 205, 100, 1)};\n * background: ${rgba('#ffffff', 0.4)};\n * background: ${rgba('black', 0.7)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"#ffcd64\";\n * background: \"rgba(255,255,255,0.4)\";\n * background: \"rgba(0,0,0,0.7)\";\n * }\n */\nfunction rgba(firstValue, secondValue, thirdValue, fourthValue) {\n if (typeof firstValue === 'string' && typeof secondValue === 'number') {\n var rgbValue = parseToRgb(firstValue);\n return \"rgba(\" + rgbValue.red + \",\" + rgbValue.green + \",\" + rgbValue.blue + \",\" + secondValue + \")\";\n } else if (typeof firstValue === 'number' && typeof secondValue === 'number' && typeof thirdValue === 'number' && typeof fourthValue === 'number') {\n return fourthValue >= 1 ? rgb(firstValue, secondValue, thirdValue) : \"rgba(\" + firstValue + \",\" + secondValue + \",\" + thirdValue + \",\" + fourthValue + \")\";\n } else if (typeof firstValue === 'object' && secondValue === undefined && thirdValue === undefined && fourthValue === undefined) {\n return firstValue.alpha >= 1 ? rgb(firstValue.red, firstValue.green, firstValue.blue) : \"rgba(\" + firstValue.red + \",\" + firstValue.green + \",\" + firstValue.blue + \",\" + firstValue.alpha + \")\";\n }\n throw new PolishedError(7);\n}\n\nvar isRgb = function isRgb(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\nvar isRgba = function isRgba(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && typeof color.alpha === 'number';\n};\nvar isHsl = function isHsl(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\nvar isHsla = function isHsla(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && typeof color.alpha === 'number';\n};\n\n/**\n * Converts a RgbColor, RgbaColor, HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb`, `rgba`, `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: toColorString({ red: 255, green: 205, blue: 100 }),\n * background: toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * background: toColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${toColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * background: ${toColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\n\nfunction toColorString(color) {\n if (typeof color !== 'object') throw new PolishedError(8);\n if (isRgba(color)) return rgba(color);\n if (isRgb(color)) return rgb(color);\n if (isHsla(color)) return hsla(color);\n if (isHsl(color)) return hsl(color);\n throw new PolishedError(8);\n}\n\n// Type definitions taken from https://github.com/gcanti/flow-static-land/blob/master/src/Fun.js\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-redeclare\nfunction curried(f, length, acc) {\n return function fn() {\n // eslint-disable-next-line prefer-rest-params\n var combined = acc.concat(Array.prototype.slice.call(arguments));\n return combined.length >= length ? f.apply(this, combined) : curried(f, length, combined);\n };\n}\n\n// eslint-disable-next-line no-redeclare\nfunction curry(f) {\n // eslint-disable-line no-redeclare\n return curried(f, f.length, []);\n}\n\n/**\n * Changes the hue of the color. Hue is a number between 0 to 360. The first\n * argument for adjustHue is the amount of degrees the color is rotated around\n * the color wheel, always producing a positive hue value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: adjustHue(180, '#448'),\n * background: adjustHue('180', 'rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${adjustHue(180, '#448')};\n * background: ${adjustHue('180', 'rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#888844\";\n * background: \"rgba(136,136,68,0.7)\";\n * }\n */\nfunction adjustHue(degree, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: hslColor.hue + parseFloat(degree)\n }));\n}\n\n// prettier-ignore\nvar curriedAdjustHue = curry /* ::<number | string, string, string> */(adjustHue);\nvar curriedAdjustHue$1 = curriedAdjustHue;\n\n/**\n * Returns the complement of the provided color. This is identical to adjustHue(180, <color>).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: complement('#448'),\n * background: complement('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${complement('#448')};\n * background: ${complement('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#884\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\nfunction complement(color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: (hslColor.hue + 180) % 360\n }));\n}\n\nfunction guard(lowerBoundary, upperBoundary, value) {\n return Math.max(lowerBoundary, Math.min(upperBoundary, value));\n}\n\n/**\n * Returns a string value for the darkened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: darken(0.2, '#FFCD64'),\n * background: darken('0.2', 'rgba(255,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${darken(0.2, '#FFCD64')};\n * background: ${darken('0.2', 'rgba(255,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffbd31\";\n * background: \"rgba(255,189,49,0.7)\";\n * }\n */\nfunction darken(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness - parseFloat(amount))\n }));\n}\n\n// prettier-ignore\nvar curriedDarken = curry /* ::<number | string, string, string> */(darken);\nvar curriedDarken$1 = curriedDarken;\n\n/**\n * Decreases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the desaturate function is the amount by how much the color\n * intensity should be decreased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: desaturate(0.2, '#CCCD64'),\n * background: desaturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${desaturate(0.2, '#CCCD64')};\n * background: ${desaturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#b8b979\";\n * background: \"rgba(184,185,121,0.7)\";\n * }\n */\nfunction desaturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation - parseFloat(amount))\n }));\n}\n\n// prettier-ignore\nvar curriedDesaturate = curry /* ::<number | string, string, string> */(desaturate);\nvar curriedDesaturate$1 = curriedDesaturate;\n\n/**\n * Returns a number (float) representing the luminance of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff',\n * background: getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)',\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff'};\n * background: ${getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)'};\n *\n * // CSS in JS Output\n *\n * div {\n * background: \"#CCCD64\";\n * background: \"rgba(58, 133, 255, 1)\";\n * }\n */\nfunction getLuminance(color) {\n if (color === 'transparent') return 0;\n var rgbColor = parseToRgb(color);\n var _Object$keys$map = Object.keys(rgbColor).map(function (key) {\n var channel = rgbColor[key] / 255;\n return channel <= 0.03928 ? channel / 12.92 : Math.pow((channel + 0.055) / 1.055, 2.4);\n }),\n r = _Object$keys$map[0],\n g = _Object$keys$map[1],\n b = _Object$keys$map[2];\n return parseFloat((0.2126 * r + 0.7152 * g + 0.0722 * b).toFixed(3));\n}\n\n/**\n * Returns the contrast ratio between two colors based on\n * [W3's recommended equation for calculating contrast](http://www.w3.org/TR/WCAG20/#contrast-ratiodef).\n *\n * @example\n * const contrastRatio = getContrast('#444', '#fff');\n */\nfunction getContrast(color1, color2) {\n var luminance1 = getLuminance(color1);\n var luminance2 = getLuminance(color2);\n return parseFloat((luminance1 > luminance2 ? (luminance1 + 0.05) / (luminance2 + 0.05) : (luminance2 + 0.05) / (luminance1 + 0.05)).toFixed(2));\n}\n\n/**\n * Converts the color to a grayscale, by reducing its saturation to 0.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: grayscale('#CCCD64'),\n * background: grayscale('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${grayscale('#CCCD64')};\n * background: ${grayscale('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#999\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\nfunction grayscale(color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: 0\n }));\n}\n\n/**\n * Converts a HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\nfunction hslToColorString(color) {\n if (typeof color === 'object' && typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number') {\n if (color.alpha && typeof color.alpha === 'number') {\n return hsla({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness,\n alpha: color.alpha\n });\n }\n return hsl({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness\n });\n }\n throw new PolishedError(45);\n}\n\n/**\n * Inverts the red, green and blue values of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: invert('#CCCD64'),\n * background: invert('rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${invert('#CCCD64')};\n * background: ${invert('rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#33329b\";\n * background: \"rgba(154,155,50,0.7)\";\n * }\n */\nfunction invert(color) {\n if (color === 'transparent') return color;\n // parse color string to rgb\n var value = parseToRgb(color);\n return toColorString(_extends({}, value, {\n red: 255 - value.red,\n green: 255 - value.green,\n blue: 255 - value.blue\n }));\n}\n\n/**\n * Returns a string value for the lightened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: lighten(0.2, '#CCCD64'),\n * background: lighten('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${lighten(0.2, '#FFCD64')};\n * background: ${lighten('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e5e6b1\";\n * background: \"rgba(229,230,177,0.7)\";\n * }\n */\nfunction lighten(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness + parseFloat(amount))\n }));\n}\n\n// prettier-ignore\nvar curriedLighten = curry /* ::<number | string, string, string> */(lighten);\nvar curriedLighten$1 = curriedLighten;\n\n/**\n * Determines which contrast guidelines have been met for two colors.\n * Based on the [contrast calculations recommended by W3](https://www.w3.org/WAI/WCAG21/Understanding/contrast-enhanced.html).\n *\n * @example\n * const scores = meetsContrastGuidelines('#444', '#fff');\n */\nfunction meetsContrastGuidelines(color1, color2) {\n var contrastRatio = getContrast(color1, color2);\n return {\n AA: contrastRatio >= 4.5,\n AALarge: contrastRatio >= 3,\n AAA: contrastRatio >= 7,\n AAALarge: contrastRatio >= 4.5\n };\n}\n\n/**\n * Mixes the two provided colors together by calculating the average of each of the RGB components weighted to the first color by the provided weight.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: mix(0.5, '#f00', '#00f')\n * background: mix(0.25, '#f00', '#00f')\n * background: mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${mix(0.5, '#f00', '#00f')};\n * background: ${mix(0.25, '#f00', '#00f')};\n * background: ${mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#7f007f\";\n * background: \"#3f00bf\";\n * background: \"rgba(63, 0, 191, 0.75)\";\n * }\n */\nfunction mix(weight, color, otherColor) {\n if (color === 'transparent') return otherColor;\n if (otherColor === 'transparent') return color;\n if (weight === 0) return otherColor;\n var parsedColor1 = parseToRgb(color);\n var color1 = _extends({}, parsedColor1, {\n alpha: typeof parsedColor1.alpha === 'number' ? parsedColor1.alpha : 1\n });\n var parsedColor2 = parseToRgb(otherColor);\n var color2 = _extends({}, parsedColor2, {\n alpha: typeof parsedColor2.alpha === 'number' ? parsedColor2.alpha : 1\n });\n\n // The formula is copied from the original Sass implementation:\n // http://sass-lang.com/documentation/Sass/Script/Functions.html#mix-instance_method\n var alphaDelta = color1.alpha - color2.alpha;\n var x = parseFloat(weight) * 2 - 1;\n var y = x * alphaDelta === -1 ? x : x + alphaDelta;\n var z = 1 + x * alphaDelta;\n var weight1 = (y / z + 1) / 2.0;\n var weight2 = 1 - weight1;\n var mixedColor = {\n red: Math.floor(color1.red * weight1 + color2.red * weight2),\n green: Math.floor(color1.green * weight1 + color2.green * weight2),\n blue: Math.floor(color1.blue * weight1 + color2.blue * weight2),\n alpha: color1.alpha * parseFloat(weight) + color2.alpha * (1 - parseFloat(weight))\n };\n return rgba(mixedColor);\n}\n\n// prettier-ignore\nvar curriedMix = curry /* ::<number | string, string, string, string> */(mix);\nvar mix$1 = curriedMix;\n\n/**\n * Increases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: opacify(0.1, 'rgba(255, 255, 255, 0.9)');\n * background: opacify(0.2, 'hsla(0, 0%, 100%, 0.5)'),\n * background: opacify('0.5', 'rgba(255, 0, 0, 0.2)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${opacify(0.1, 'rgba(255, 255, 255, 0.9)')};\n * background: ${opacify(0.2, 'hsla(0, 0%, 100%, 0.5)')},\n * background: ${opacify('0.5', 'rgba(255, 0, 0, 0.2)')},\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#fff\";\n * background: \"rgba(255,255,255,0.7)\";\n * background: \"rgba(255,0,0,0.7)\";\n * }\n */\nfunction opacify(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, (alpha * 100 + parseFloat(amount) * 100) / 100)\n });\n return rgba(colorWithAlpha);\n}\n\n// prettier-ignore\nvar curriedOpacify = curry /* ::<number | string, string, string> */(opacify);\nvar curriedOpacify$1 = curriedOpacify;\n\nvar defaultReturnIfLightColor = '#000';\nvar defaultReturnIfDarkColor = '#fff';\n\n/**\n * Returns black or white (or optional passed colors) for best\n * contrast depending on the luminosity of the given color.\n * When passing custom return colors, strict mode ensures that the\n * return color always meets or exceeds WCAG level AA or greater. If this test\n * fails, the default return color (black or white) is returned in place of the\n * custom return color. You can optionally turn off strict mode.\n *\n * Follows [W3C specs for readability](https://www.w3.org/TR/WCAG20-TECHS/G18.html).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * color: readableColor('#000'),\n * color: readableColor('black', '#001', '#ff8'),\n * color: readableColor('white', '#001', '#ff8'),\n * color: readableColor('red', '#333', '#ddd', true)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * color: ${readableColor('#000')};\n * color: ${readableColor('black', '#001', '#ff8')};\n * color: ${readableColor('white', '#001', '#ff8')};\n * color: ${readableColor('red', '#333', '#ddd', true)};\n * `\n *\n * // CSS in JS Output\n * element {\n * color: \"#fff\";\n * color: \"#ff8\";\n * color: \"#001\";\n * color: \"#000\";\n * }\n */\nfunction readableColor(color, returnIfLightColor, returnIfDarkColor, strict) {\n if (returnIfLightColor === void 0) {\n returnIfLightColor = defaultReturnIfLightColor;\n }\n if (returnIfDarkColor === void 0) {\n returnIfDarkColor = defaultReturnIfDarkColor;\n }\n if (strict === void 0) {\n strict = true;\n }\n var isColorLight = getLuminance(color) > 0.179;\n var preferredReturnColor = isColorLight ? returnIfLightColor : returnIfDarkColor;\n if (!strict || getContrast(color, preferredReturnColor) >= 4.5) {\n return preferredReturnColor;\n }\n return isColorLight ? defaultReturnIfLightColor : defaultReturnIfDarkColor;\n}\n\n/**\n * Converts a RgbColor or RgbaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb` or `rgba`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgbToColorString({ red: 255, green: 205, blue: 100 }),\n * background: rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgbToColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * }\n */\nfunction rgbToColorString(color) {\n if (typeof color === 'object' && typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number') {\n if (typeof color.alpha === 'number') {\n return rgba({\n red: color.red,\n green: color.green,\n blue: color.blue,\n alpha: color.alpha\n });\n }\n return rgb({\n red: color.red,\n green: color.green,\n blue: color.blue\n });\n }\n throw new PolishedError(46);\n}\n\n/**\n * Increases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the saturate function is the amount by how much the color\n * intensity should be increased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: saturate(0.2, '#CCCD64'),\n * background: saturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${saturate(0.2, '#FFCD64')};\n * background: ${saturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e0e250\";\n * background: \"rgba(224,226,80,0.7)\";\n * }\n */\nfunction saturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation + parseFloat(amount))\n }));\n}\n\n// prettier-ignore\nvar curriedSaturate = curry /* ::<number | string, string, string> */(saturate);\nvar curriedSaturate$1 = curriedSaturate;\n\n/**\n * Sets the hue of a color to the provided value. The hue range can be\n * from 0 and 359.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setHue(42, '#CCCD64'),\n * background: setHue('244', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setHue(42, '#CCCD64')};\n * background: ${setHue('244', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#cdae64\";\n * background: \"rgba(107,100,205,0.7)\";\n * }\n */\nfunction setHue(hue, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n hue: parseFloat(hue)\n }));\n}\n\n// prettier-ignore\nvar curriedSetHue = curry /* ::<number | string, string, string> */(setHue);\nvar curriedSetHue$1 = curriedSetHue;\n\n/**\n * Sets the lightness of a color to the provided value. The lightness range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setLightness(0.2, '#CCCD64'),\n * background: setLightness('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setLightness(0.2, '#CCCD64')};\n * background: ${setLightness('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#4d4d19\";\n * background: \"rgba(223,224,159,0.7)\";\n * }\n */\nfunction setLightness(lightness, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n lightness: parseFloat(lightness)\n }));\n}\n\n// prettier-ignore\nvar curriedSetLightness = curry /* ::<number | string, string, string> */(setLightness);\nvar curriedSetLightness$1 = curriedSetLightness;\n\n/**\n * Sets the saturation of a color to the provided value. The saturation range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setSaturation(0.2, '#CCCD64'),\n * background: setSaturation('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setSaturation(0.2, '#CCCD64')};\n * background: ${setSaturation('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#adad84\";\n * background: \"rgba(228,229,76,0.7)\";\n * }\n */\nfunction setSaturation(saturation, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: parseFloat(saturation)\n }));\n}\n\n// prettier-ignore\nvar curriedSetSaturation = curry /* ::<number | string, string, string> */(setSaturation);\nvar curriedSetSaturation$1 = curriedSetSaturation;\n\n/**\n * Shades a color by mixing it with black. `shade` can produce\n * hue shifts, where as `darken` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: shade(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${shade(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#00003f\";\n * }\n */\n\nfunction shade(percentage, color) {\n if (color === 'transparent') return color;\n return mix$1(parseFloat(percentage), 'rgb(0, 0, 0)', color);\n}\n\n// prettier-ignore\nvar curriedShade = curry /* ::<number | string, string, string> */(shade);\nvar curriedShade$1 = curriedShade;\n\n/**\n * Tints a color by mixing it with white. `tint` can produce\n * hue shifts, where as `lighten` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: tint(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${tint(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#bfbfff\";\n * }\n */\n\nfunction tint(percentage, color) {\n if (color === 'transparent') return color;\n return mix$1(parseFloat(percentage), 'rgb(255, 255, 255)', color);\n}\n\n// prettier-ignore\nvar curriedTint = curry /* ::<number | string, string, string> */(tint);\nvar curriedTint$1 = curriedTint;\n\n/**\n * Decreases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: transparentize(0.1, '#fff'),\n * background: transparentize(0.2, 'hsl(0, 0%, 100%)'),\n * background: transparentize('0.5', 'rgba(255, 0, 0, 0.8)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${transparentize(0.1, '#fff')};\n * background: ${transparentize(0.2, 'hsl(0, 0%, 100%)')};\n * background: ${transparentize('0.5', 'rgba(255, 0, 0, 0.8)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,255,255,0.9)\";\n * background: \"rgba(255,255,255,0.8)\";\n * background: \"rgba(255,0,0,0.3)\";\n * }\n */\nfunction transparentize(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, +(alpha * 100 - parseFloat(amount) * 100).toFixed(2) / 100)\n });\n return rgba(colorWithAlpha);\n}\n\n// prettier-ignore\nvar curriedTransparentize = curry /* ::<number | string, string, string> */(transparentize);\nvar curriedTransparentize$1 = curriedTransparentize;\n\n/**\n * Shorthand for easily setting the animation property. Allows either multiple arrays with animations\n * or a single animation spread over the arguments.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'animation': 'rotate 1s ease-in-out, colorchange 2s'\n * }\n * @example\n * // Styles as object usage\n * const styles = {\n * ...animation('rotate', '1s', 'ease-in-out')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${animation('rotate', '1s', 'ease-in-out')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'animation': 'rotate 1s ease-in-out'\n * }\n */\nfunction animation() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n // Allow single or multiple animations passed\n var multiMode = Array.isArray(args[0]);\n if (!multiMode && args.length > 8) {\n throw new PolishedError(64);\n }\n var code = args.map(function (arg) {\n if (multiMode && !Array.isArray(arg) || !multiMode && Array.isArray(arg)) {\n throw new PolishedError(65);\n }\n if (Array.isArray(arg) && arg.length > 8) {\n throw new PolishedError(66);\n }\n return Array.isArray(arg) ? arg.join(' ') : arg;\n }).join(', ');\n return {\n animation: code\n };\n}\n\n/**\n * Shorthand that accepts any number of backgroundImage values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'backgroundImage': 'url(\"/image/background.jpg\"), linear-gradient(red, green)'\n * }\n */\nfunction backgroundImages() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n return {\n backgroundImage: properties.join(', ')\n };\n}\n\n/**\n * Shorthand that accepts any number of background values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'background': 'url(\"/image/background.jpg\"), linear-gradient(red, green), center no-repeat'\n * }\n */\nfunction backgrounds() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n return {\n background: properties.join(', ')\n };\n}\n\nvar sideMap = ['top', 'right', 'bottom', 'left'];\n\n/**\n * Shorthand for the border property that splits out individual properties for use with tools like Fela and Styletron. A side keyword can optionally be passed to target only one side's border properties.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...border('1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderColor': 'red',\n * 'borderStyle': 'solid',\n * 'borderWidth': `1px`,\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...border('top', '1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('top', '1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderTopStyle': 'solid',\n * 'borderTopWidth': `1px`,\n * }\n */\n\nfunction border(sideKeyword) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n if (typeof sideKeyword === 'string' && sideMap.indexOf(sideKeyword) >= 0) {\n var _ref;\n return _ref = {}, _ref[\"border\" + capitalizeString(sideKeyword) + \"Width\"] = values[0], _ref[\"border\" + capitalizeString(sideKeyword) + \"Style\"] = values[1], _ref[\"border\" + capitalizeString(sideKeyword) + \"Color\"] = values[2], _ref;\n } else {\n values.unshift(sideKeyword);\n return {\n borderWidth: values[0],\n borderStyle: values[1],\n borderColor: values[2]\n };\n }\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderColor('red', 'green', 'blue', 'yellow')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderColor('red', 'green', 'blue', 'yellow')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderRightColor': 'green',\n * 'borderBottomColor': 'blue',\n * 'borderLeftColor': 'yellow'\n * }\n */\nfunction borderColor() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n return directionalProperty.apply(void 0, ['borderColor'].concat(values));\n}\n\n/**\n * Shorthand that accepts a value for side and a value for radius and applies the radius value to both corners of the side.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderRadius('top', '5px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderRadius('top', '5px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopRightRadius': '5px',\n * 'borderTopLeftRadius': '5px',\n * }\n */\nfunction borderRadius(side, radius) {\n var uppercaseSide = capitalizeString(side);\n if (!radius && radius !== 0) {\n throw new PolishedError(62);\n }\n if (uppercaseSide === 'Top' || uppercaseSide === 'Bottom') {\n var _ref;\n return _ref = {}, _ref[\"border\" + uppercaseSide + \"RightRadius\"] = radius, _ref[\"border\" + uppercaseSide + \"LeftRadius\"] = radius, _ref;\n }\n if (uppercaseSide === 'Left' || uppercaseSide === 'Right') {\n var _ref2;\n return _ref2 = {}, _ref2[\"borderTop\" + uppercaseSide + \"Radius\"] = radius, _ref2[\"borderBottom\" + uppercaseSide + \"Radius\"] = radius, _ref2;\n }\n throw new PolishedError(63);\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderStyle('solid', 'dashed', 'dotted', 'double')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderStyle('solid', 'dashed', 'dotted', 'double')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopStyle': 'solid',\n * 'borderRightStyle': 'dashed',\n * 'borderBottomStyle': 'dotted',\n * 'borderLeftStyle': 'double'\n * }\n */\nfunction borderStyle() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n return directionalProperty.apply(void 0, ['borderStyle'].concat(values));\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderWidth('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderWidth('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopWidth': '12px',\n * 'borderRightWidth': '24px',\n * 'borderBottomWidth': '36px',\n * 'borderLeftWidth': '48px'\n * }\n */\nfunction borderWidth() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n return directionalProperty.apply(void 0, ['borderWidth'].concat(values));\n}\n\nfunction generateSelectors(template, state) {\n var stateSuffix = state ? \":\" + state : '';\n return template(stateSuffix);\n}\n\n/**\n * Function helper that adds an array of states to a template of selectors. Used in textInputs and buttons.\n * @private\n */\nfunction statefulSelectors(states, template, stateMap) {\n if (!template) throw new PolishedError(67);\n if (states.length === 0) return generateSelectors(template, null);\n var selectors = [];\n for (var i = 0; i < states.length; i += 1) {\n if (stateMap && stateMap.indexOf(states[i]) < 0) {\n throw new PolishedError(68);\n }\n selectors.push(generateSelectors(template, states[i]));\n }\n selectors = selectors.join(',');\n return selectors;\n}\n\nvar stateMap$1 = [undefined, null, 'active', 'focus', 'hover'];\nfunction template$1(state) {\n return \"button\" + state + \",\\n input[type=\\\"button\\\"]\" + state + \",\\n input[type=\\\"reset\\\"]\" + state + \",\\n input[type=\\\"submit\\\"]\" + state;\n}\n\n/**\n * Populates selectors that target all buttons. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [buttons('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${buttons('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'button:active,\n * 'input[type=\"button\"]:active,\n * 'input[type=\\\"reset\\\"]:active,\n * 'input[type=\\\"submit\\\"]:active: {\n * 'border': 'none'\n * }\n */\nfunction buttons() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n return statefulSelectors(states, template$1, stateMap$1);\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...margin('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${margin('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'marginTop': '12px',\n * 'marginRight': '24px',\n * 'marginBottom': '36px',\n * 'marginLeft': '48px'\n * }\n */\nfunction margin() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n return directionalProperty.apply(void 0, ['margin'].concat(values));\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...padding('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${padding('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\nfunction padding() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n return directionalProperty.apply(void 0, ['padding'].concat(values));\n}\n\nvar positionMap = ['absolute', 'fixed', 'relative', 'static', 'sticky'];\n\n/**\n * Shorthand accepts up to five values, including null to skip a value, and maps them to their respective directions. The first value can optionally be a position keyword.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...position('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...position('absolute', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('absolute', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'position': 'absolute',\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n */\nfunction position(firstValue) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n if (positionMap.indexOf(firstValue) >= 0 && firstValue) {\n return _extends({}, directionalProperty.apply(void 0, [''].concat(values)), {\n position: firstValue\n });\n } else {\n return directionalProperty.apply(void 0, ['', firstValue].concat(values));\n }\n}\n\n/**\n * Shorthand to set the height and width properties in a single statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...size('300px', '250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${size('300px', '250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'height': '300px',\n * 'width': '250px',\n * }\n */\nfunction size(height, width) {\n if (width === void 0) {\n width = height;\n }\n return {\n height: height,\n width: width\n };\n}\n\nvar stateMap = [undefined, null, 'active', 'focus', 'hover'];\nfunction template(state) {\n return \"input[type=\\\"color\\\"]\" + state + \",\\n input[type=\\\"date\\\"]\" + state + \",\\n input[type=\\\"datetime\\\"]\" + state + \",\\n input[type=\\\"datetime-local\\\"]\" + state + \",\\n input[type=\\\"email\\\"]\" + state + \",\\n input[type=\\\"month\\\"]\" + state + \",\\n input[type=\\\"number\\\"]\" + state + \",\\n input[type=\\\"password\\\"]\" + state + \",\\n input[type=\\\"search\\\"]\" + state + \",\\n input[type=\\\"tel\\\"]\" + state + \",\\n input[type=\\\"text\\\"]\" + state + \",\\n input[type=\\\"time\\\"]\" + state + \",\\n input[type=\\\"url\\\"]\" + state + \",\\n input[type=\\\"week\\\"]\" + state + \",\\n input:not([type])\" + state + \",\\n textarea\" + state;\n}\n\n/**\n * Populates selectors that target all text inputs. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [textInputs('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${textInputs('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'input[type=\"color\"]:active,\n * input[type=\"date\"]:active,\n * input[type=\"datetime\"]:active,\n * input[type=\"datetime-local\"]:active,\n * input[type=\"email\"]:active,\n * input[type=\"month\"]:active,\n * input[type=\"number\"]:active,\n * input[type=\"password\"]:active,\n * input[type=\"search\"]:active,\n * input[type=\"tel\"]:active,\n * input[type=\"text\"]:active,\n * input[type=\"time\"]:active,\n * input[type=\"url\"]:active,\n * input[type=\"week\"]:active,\n * input:not([type]):active,\n * textarea:active': {\n * 'border': 'none'\n * }\n */\nfunction textInputs() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n return statefulSelectors(states, template, stateMap);\n}\n\n/**\n * Accepts any number of transition values as parameters for creating a single transition statement. You may also pass an array of properties as the first parameter that you would like to apply the same transition values to (second parameter).\n * @example\n * // Styles as object usage\n * const styles = {\n * ...transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s'),\n * ...transitions(['color', 'background-color'], '2.0s ease-in 2s')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s')};\n * ${transitions(['color', 'background-color'], '2.0s ease-in 2s'),};\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'transition': 'opacity 1.0s ease-in 0s, width 2.0s ease-in 2s'\n * 'transition': 'color 2.0s ease-in 2s, background-color 2.0s ease-in 2s',\n * }\n */\nfunction transitions() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n if (Array.isArray(properties[0]) && properties.length === 2) {\n var value = properties[1];\n if (typeof value !== 'string') {\n throw new PolishedError(61);\n }\n var transitionsString = properties[0].map(function (property) {\n return property + \" \" + value;\n }).join(', ');\n return {\n transition: transitionsString\n };\n } else {\n return {\n transition: properties.join(', ')\n };\n }\n}\n\nexport { curriedAdjustHue$1 as adjustHue, animation, backgroundImages, backgrounds, between, border, borderColor, borderRadius, borderStyle, borderWidth, buttons, clearFix, complement, cover, cssVar, curriedDarken$1 as darken, curriedDesaturate$1 as desaturate, directionalProperty, easeIn, easeInOut, easeOut, ellipsis, em$1 as em, fluidRange, fontFace, getContrast, getLuminance, getValueAndUnit, grayscale, hiDPI, hideText, hideVisually, hsl, hslToColorString, hsla, important, invert, curriedLighten$1 as lighten, linearGradient, margin, math, meetsContrastGuidelines, mix$1 as mix, modularScale, normalize, curriedOpacify$1 as opacify, padding, parseToHsl, parseToRgb, position, radialGradient, readableColor, rem$1 as rem, remToPx, retinaImage, rgb, rgbToColorString, rgba, curriedSaturate$1 as saturate, curriedSetHue$1 as setHue, curriedSetLightness$1 as setLightness, curriedSetSaturation$1 as setSaturation, curriedShade$1 as shade, size, stripUnit, textInputs, timingFunctions, curriedTint$1 as tint, toColorString, transitions, curriedTransparentize$1 as transparentize, triangle, wordWrap };\n", "// src/areArraysEquals.ts\nvar arraysAreEquals = (firstArray, secondArray) => {\n if (firstArray.length !== secondArray.length) {\n return false;\n }\n const sortedFirstArray = firstArray.slice().sort();\n const sortedSecondArray = secondArray.slice().sort();\n for (let i = 0; i < sortedFirstArray.length; i++) {\n if (sortedFirstArray[i] !== sortedSecondArray[i]) {\n return false;\n }\n }\n return true;\n};\n\n// src/calculateAverage.ts\nvar calculateAverage = (list) => {\n const sum = list.reduce((acc, curr) => acc + curr, 0);\n const average = sum / list.length;\n return average;\n};\n\n// src/chars.ts\nvar specialChars = \"!@#$%^&*()_+{}[]:;<>,.?~-\";\nvar uppercaseLetters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\nvar lowecaseLetters = uppercaseLetters.toLowerCase();\nvar numbers = \"0123456789\";\nvar chars = {\n all: specialChars + uppercaseLetters + lowecaseLetters + numbers,\n numbers,\n special: specialChars,\n lowecaseLetters,\n uppercaseLetters\n};\n\n// src/commonInputMasks.ts\nvar commonInputMasks = {\n phoneNumber: {\n mask: \"(__) _____-____\",\n replacement: { _: /\\d/ }\n },\n postcode: {\n mask: \"_____-___\",\n replacement: { _: /\\d/ }\n },\n cpf: {\n mask: \"___.___.___-__\",\n replacement: { _: /\\d/ }\n },\n date: {\n mask: \"__/__/____\",\n replacement: { _: /\\d/ }\n },\n creditCard: {\n mask: \"____-____-____-____\",\n replacement: { _: /\\d/ }\n },\n expirationDate: {\n mask: \"__/____\",\n replacement: { _: /\\d/ }\n },\n creditCardCVV: {\n mask: \"___\",\n replacement: { _: /\\d/ }\n },\n socialSecurityNumber: {\n mask: \"___-__-____\",\n replacement: { _: /\\d/ }\n },\n zipCode: {\n mask: \"_____-___\",\n replacement: { _: /\\d/ }\n },\n time: {\n mask: \"__:__\",\n replacement: { _: /\\d/ }\n }\n};\n\n// src/createNumbersArray.ts\nvar createNumbersArray = ({\n size,\n startNumber = 1\n}) => {\n const numbers2 = [];\n for (let i = 0; i < size; i++) {\n numbers2.push(startNumber + i);\n }\n return numbers2;\n};\n\n// src/getRandomChar.ts\nvar getRandomChar = (characters) => {\n const randomIndex = Math.floor(Math.random() * characters.length);\n return characters.charAt(randomIndex);\n};\n\n// src/ensureTextContainsAtLeastOne.ts\nvar ensureTextContainsAtLeastOne = (text, characterSet) => text.includes(characterSet) ? text : text + getRandomChar(characterSet);\n\n// src/errorMessages.ts\nvar getErrorMessage = (errorCode, locale = \"en\") => {\n const translations = {\n en: {\n BAD_REQUEST: \"Request failed.\",\n UNKNOWN_ERROR: \"Something went wrong.\",\n UNAUTHORIZED: \"Unauthorized request.\",\n FORBIDDEN_ACCESS: \"Forbidden access.\",\n INVALID_CREDENTIALS: \"Invalid credentials.\",\n INVALID_USER: \"Invalid user.\",\n INCORRECT_PASSWORD: \"Incorrect password.\",\n NOT_FOUND: \"Requested content not found.\",\n INTERNAL_SERVER_ERROR: \"Internal server error.\",\n CMS_COMUNICATION_FAILED: \"CMS communication error.\",\n BAG_PRODUCT_IS_OUT_OF_STOCK: \"Some products in the cart are out of stock.\",\n NETWORK_ERROR: \"Network communication error.\",\n TIMEOUT_ERROR: \"Request timeout exceeded.\",\n INVALID_INPUT: \"Invalid input.\",\n DUPLICATE_ENTRY: \"Duplicate entry.\",\n OPERATION_NOT_PERMITTED: \"Operation not permitted.\",\n RESOURCE_CONFLICT: \"Resource conflict.\",\n SERVICE_UNAVAILABLE: \"Service temporarily unavailable.\",\n INVALID_FILE_FORMAT: \"Invalid file format.\"\n },\n pt: {\n BAD_REQUEST: \"Falha na requisi\\xE7\\xE3o.\",\n UNKNOWN_ERROR: \"Algo deu errado.\",\n UNAUTHORIZED: \"Requisi\\xE7\\xE3o n\\xE3o autorizada.\",\n FORBIDDEN_ACCESS: \"Acesso proibido.\",\n INVALID_CREDENTIALS: \"Credenciais inv\\xE1lidas.\",\n INVALID_USER: \"Usu\\xE1rio inv\\xE1lido.\",\n INCORRECT_PASSWORD: \"Senha incorreta.\",\n NOT_FOUND: \"Conte\\xFAdo solicitado n\\xE3o encontrado.\",\n INTERNAL_SERVER_ERROR: \"Erro interno do servidor.\",\n CMS_COMUNICATION_FAILED: \"Erro de comunica\\xE7\\xE3o com o CMS.\",\n BAG_PRODUCT_IS_OUT_OF_STOCK: \"Alguns dos produtos no carrinho est\\xE3o fora de estoque.\",\n NETWORK_ERROR: \"Erro de comunica\\xE7\\xE3o de rede.\",\n TIMEOUT_ERROR: \"Tempo limite de requisi\\xE7\\xE3o atingido.\",\n INVALID_INPUT: \"Entrada inv\\xE1lida.\",\n DUPLICATE_ENTRY: \"Entrada duplicada.\",\n OPERATION_NOT_PERMITTED: \"Opera\\xE7\\xE3o n\\xE3o permitida.\",\n RESOURCE_CONFLICT: \"Conflito de recurso.\",\n SERVICE_UNAVAILABLE: \"Servi\\xE7o temporariamente indispon\\xEDvel.\",\n INVALID_FILE_FORMAT: \"Formato de arquivo inv\\xE1lido.\"\n }\n };\n return translations[locale][errorCode];\n};\n\n// src/generateColorFromString.ts\nvar generateColorFromString = (str) => {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n hash = str.charCodeAt(i) + ((hash << 5) - hash);\n }\n const c = (hash & 16777215).toString(16).toUpperCase();\n return \"#\" + \"00000\".substring(0, 6 - c.length) + c;\n};\n\n// src/shuffleString.ts\nvar shuffleString = (text) => {\n const splittedText = text.split(\"\");\n for (let i = splittedText.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [splittedText[i], splittedText[j]] = [splittedText[j], splittedText[i]];\n }\n return splittedText.join(\"\");\n};\n\n// src/generatePassword.ts\nvar generatePassword = (size = 12) => {\n let password = \"\";\n password = ensureTextContainsAtLeastOne(password, chars.special);\n password = ensureTextContainsAtLeastOne(password, chars.uppercaseLetters);\n password = ensureTextContainsAtLeastOne(password, chars.numbers);\n while (password.length < size) {\n password += getRandomChar(chars.all);\n }\n return shuffleString(password);\n};\n\n// src/generatePropsFromKeyValueArray.ts\nvar generatePropsFromKeyValueArray = (data) => {\n const props = {};\n data.map(({ key, value }) => {\n props[key] = value;\n });\n return props;\n};\n\n// src/generateRandomString.ts\nvar generateRandomString = (length) => {\n let result = \"\";\n const characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n const charactersLength = characters.length;\n let counter = 0;\n while (counter < length) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n counter += 1;\n }\n return result;\n};\n\n// src/getFirstAndLastNameFromFullName.ts\nvar getFirstAndLastNameFromFullName = (fullName) => {\n if (!fullName)\n return null;\n const splittedName = fullName.split(\" \");\n if (splittedName.length > 1)\n return `${splittedName[0]} ${splittedName[splittedName.length - 1]}`;\n return splittedName[0];\n};\n\n// src/getInitialsFromName.ts\nvar getInitialsFromName = (name) => {\n const names = name.split(\" \").slice(0, 2);\n const initials = names.map((n) => n[0]);\n return initials.join(\"\").toUpperCase();\n};\n\n// src/getUserDisplayName.ts\nvar getUserDisplayName = (fullName) => {\n const names = fullName.split(\" \");\n if (names.length > 1) {\n const initials = names.slice(0, -1).map((name) => name.charAt(0)).join(\" \");\n return `${initials} ${names[names.length - 1]}`;\n } else {\n return fullName;\n }\n};\n\n// src/missingItemsOnSecondArray.ts\nvar missingItemsOnSecondArray = (mainArray, comparisonArray) => {\n if (!Array.isArray(mainArray) || !Array.isArray(comparisonArray)) {\n throw new Error(\"Both arguments must be arrays.\");\n }\n const missingItems = [];\n mainArray.forEach((item) => {\n if (!comparisonArray.includes(item)) {\n missingItems.push(item);\n }\n });\n return missingItems;\n};\n\n// src/objectConstructor.ts\nvar objectKeys = (obj) => Object.keys(obj);\n\n// src/regexPatterns.ts\nvar regexPatterns = {\n colorHexadecimal: /^#(?:[0-9A-Fa-f]{3}){1,2}(?:[0-9A-Fa-f]{2})?$/i,\n onlyNumbers: /^[0-9]+$/,\n onlyLettersWithSpace: /^[a-zA-Z\u00C0-\u00FF\\s-]*$/,\n email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,}))$/,\n handlebarVariable: /{{\\s*(.*?)\\s*}}/g,\n passwordWithSpecialCharactersLowerAndUpperLetter: /^(?=.*[!@#$%^&*()_+{}\\[\\]:;<>,.?~\\\\-]).*(?=.*[A-Z]).*(?=.*[0-9]).*$/,\n brazilianPostcode: /^\\d{5}-\\d{3}$/,\n brazilianCPF: /^([0-9]{3}\\.?[0-9]{3}\\.?[0-9]{3}-?[0-9]{2}|[0-9]{11})$/,\n brazilianPhone: /^\\(\\d{2}\\) \\d{5}-\\d{4}$/,\n percentNumber: /^\\d+(\\.\\d+)?%$/\n};\n\n// src/handlebarVariables.ts\nvar getHandlebarVariablesListFromText = (texto) => {\n const foundedVariables = texto.match(regexPatterns.handlebarVariable) || [];\n if (!foundedVariables)\n throw new Error(\"The entered text has no handlebar variables.\");\n return foundedVariables.map(\n (handleBarVariable) => handleBarVariable.match(/\\w+/)[0]\n );\n};\nvar applyVariablesOnTextWithHandlebarVariables = (text, variables) => {\n const enteredVariablesList = objectKeys(variables);\n const variablesList = getHandlebarVariablesListFromText(text);\n const missingVariables = missingItemsOnSecondArray(\n variablesList,\n enteredVariablesList\n );\n let finalText = text.slice();\n if (missingVariables.length > 0)\n throw new Error(\n `The following variables are missing: ${missingVariables.join(\", \")}.`\n );\n variablesList.forEach(\n (variable) => finalText = finalText.replace(\n `{{${variable}}}`,\n variables[variable] + \"\"\n )\n );\n return finalText;\n};\n\n// src/isNumberOrStringifiedNumber.ts\nvar isNumberOrStringifiedNumber = (entry) => Number.isNaN(Number(entry));\n\n// src/isPathMatchingUrl.ts\nvar isPathMatchingUrl = (path, asPath, options = {}) => {\n const { includeParents = false, considerQueryString = false } = options;\n const fullPath = considerQueryString ? asPath : asPath.split(\"?\")[0];\n const isRootPath = path === \"/\";\n const pathMatchesAsPath = includeParents ? fullPath.includes(path) : fullPath.endsWith(`/${path}`);\n return isRootPath ? path === fullPath : pathMatchesAsPath;\n};\n\n// src/isValueAssociatedWithKeyInQueryString.ts\nvar isValueAssociatedWithKeyInQueryString = (key, value, url) => {\n const urlSearchParams = new URLSearchParams(url);\n if (urlSearchParams.has(key)) {\n const queryValue = urlSearchParams.get(key);\n const targetValue = String(value);\n return queryValue === targetValue;\n }\n return false;\n};\n\n// src/mergeObjects.ts\nvar mergeObjects = (obj1, obj2) => {\n if (!obj2)\n return { ...obj1 };\n const merged = { ...obj1 };\n for (const key in obj2) {\n if (Object.prototype.hasOwnProperty.call(obj2, key)) {\n if (typeof obj2[key] === \"object\" && obj2[key] !== null && !Array.isArray(obj2[key]) && typeof merged[key] === \"object\" && merged[key] !== null && !Array.isArray(merged[key])) {\n merged[key] = mergeObjects(merged[key], obj2[key]);\n } else {\n const value = obj2[key];\n merged[key] = value;\n }\n }\n }\n return merged;\n};\n\n// src/objectToQueryString.ts\nvar objectToQuerystring = (obj) => {\n const queryParams = [];\n for (const key in obj) {\n if (obj.hasOwnProperty(key)) {\n const value = obj[key];\n if (value !== void 0) {\n queryParams.push(\n `${encodeURIComponent(key)}=${encodeURIComponent(value)}`\n );\n }\n }\n }\n return queryParams.join(\"&\");\n};\n\n// src/react/useIsomorphicLayoutEffect.tsx\nimport * as React from \"react\";\nvar useIsomorphicLayoutEffect = typeof window !== \"undefined\" ? React.useLayoutEffect : () => {\n};\n\n// src/react/usePrevious.tsx\nimport * as React2 from \"react\";\nfunction usePrevious(value) {\n const ref = React2.useRef(value);\n React2.useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\n// src/react/useScreen.tsx\nimport { useEffect as useEffect2, useState } from \"react\";\nvar useScreen = () => {\n const [currentScreen, setCurrentScreen] = useState({\n height: 720,\n width: 1250\n });\n useEffect2(() => {\n setCurrentScreen({\n width: window.innerWidth,\n height: window.innerHeight\n });\n window.addEventListener(\"resize\", () => {\n const size = {\n width: window.innerWidth,\n height: window.innerHeight\n };\n setCurrentScreen(size);\n });\n }, []);\n return currentScreen;\n};\n\n// src/react/useElementSize.tsx\nimport { useEffect as useEffect3, useState as useState2 } from \"react\";\nvar useElementSize = ({\n elementRef,\n initialSize,\n extendDeps\n}) => {\n const [height, setHeight] = useState2((initialSize == null ? void 0 : initialSize.height) || 0);\n const [width, setWidth] = useState2((initialSize == null ? void 0 : initialSize.width) || 0);\n useEffect3(() => {\n if (!elementRef.current)\n return;\n const resizeObserver = new ResizeObserver((entries) => {\n setHeight(entries[0].borderBoxSize[0].blockSize);\n setWidth(entries[0].contentRect.width);\n });\n resizeObserver.observe(elementRef.current);\n return () => resizeObserver.disconnect();\n }, [elementRef, extendDeps]);\n return { height, width };\n};\n\n// src/removeUndefinedPropsFromObject.ts\nvar removeUndefinedPropsFromObject = (object, removeEmptyStrings = false) => {\n const modifiedObject = {};\n for (const key in object) {\n if (object.hasOwnProperty(key)) {\n const value = object[key];\n if (typeof value === \"object\") {\n const modifiedValue = removeUndefinedPropsFromObject(\n value,\n removeEmptyStrings\n );\n if (Object.keys(modifiedValue).length > 0) {\n modifiedObject[key] = modifiedValue;\n }\n } else if (typeof value !== \"undefined\" && !(removeEmptyStrings && value === \"\")) {\n modifiedObject[key] = value;\n }\n }\n }\n return modifiedObject;\n};\n\n// src/reorderArray.ts\nvar reorderArray = (array, sourceIndex, targetIndex) => {\n if (sourceIndex < 0 || sourceIndex >= array.length || targetIndex < 0 || targetIndex >= array.length) {\n throw new Error(\"Source or target indices are out of the array's range.\");\n }\n const newArray = [...array];\n const [removedItem] = newArray.splice(sourceIndex, 1);\n newArray.splice(targetIndex, 0, removedItem);\n return newArray;\n};\n\n// src/throwEnvError.ts\nvar throwEnvError = (envName) => {\n throw new Error(`You must define a value for: ${envName}`);\n};\n\n// src/toSlug.ts\nfunction toSlug(str) {\n let s = str;\n if (!s) {\n return \"\";\n }\n s = s.toLowerCase().trim();\n s = s.replace(/ & /g, \" and \");\n s = s.replace(/[ ]+/g, \"-\");\n s = s.replace(/[-]+/g, \"-\");\n s = s.replace(/[^a-z0-9-]+/g, \"\");\n return s;\n}\n\n// src/truncateText.ts\nvar truncateText = (text, limit) => {\n if (limit === 0 || text.length < limit)\n return text;\n return text.substring(0, limit) + \"...\";\n};\n\n// src/uppercaseText.ts\nvar uppercaseWord = (text) => text.charAt(0).toUpperCase() + text.slice(1);\nvar uppercaseWholeText = (text) => {\n const splitedText = text.split(\" \");\n const uppercasedWords = splitedText.map(uppercaseWord);\n return uppercasedWords.join(\" \");\n};\nexport {\n applyVariablesOnTextWithHandlebarVariables,\n arraysAreEquals,\n calculateAverage,\n chars,\n commonInputMasks,\n createNumbersArray,\n ensureTextContainsAtLeastOne,\n generateColorFromString,\n generatePassword,\n generatePropsFromKeyValueArray,\n generateRandomString,\n getErrorMessage,\n getFirstAndLastNameFromFullName,\n getHandlebarVariablesListFromText,\n getInitialsFromName,\n getRandomChar,\n getUserDisplayName,\n isNumberOrStringifiedNumber,\n isPathMatchingUrl,\n isValueAssociatedWithKeyInQueryString,\n mergeObjects,\n missingItemsOnSecondArray,\n objectKeys,\n objectToQuerystring,\n regexPatterns,\n removeUndefinedPropsFromObject,\n reorderArray,\n shuffleString,\n throwEnvError,\n toSlug,\n truncateText,\n uppercaseWholeText,\n uppercaseWord,\n useElementSize,\n useIsomorphicLayoutEffect,\n usePrevious,\n useScreen\n};\n", "import { lighten } from 'polished'\n\nexport type ThemeColorsContent = {\n title: string\n text: string\n detail: string\n}\n\nexport type ConstructThemeColorsContentParams = {\n baseColor: string\n increment: {\n text: number\n detail: number\n }\n}\n\nexport const constructThemeColorsContent = ({\n baseColor,\n increment,\n}: ConstructThemeColorsContentParams): ThemeColorsContent => {\n return {\n title: baseColor,\n text: lighten(increment.text, baseColor) as string,\n detail: lighten(increment.detail, baseColor) as string,\n }\n}\n", "// src/blur-radius.ts\nvar blurRadius = {\n normal: \".25rem\"\n};\n\n// src/border-radius.ts\nvar borderRadius = {\n small: \".25rem\",\n medium: \".5rem\",\n large: \".75rem\",\n pill: \"9999px\",\n circle: \"50%\"\n};\n\n// src/box-shadow.ts\nvar boxShadow = {\n normal: \"0 0 0 1px rgba(0, 0, 0, 0.05), 0 1px 2px rgba(0, 0, 0, 0.15)\",\n medium: \"0 0 0 1px rgba(0, 0, 0, 0.05), 0 4px 8px rgba(0, 0, 0, 0.15)\",\n large: \"0 0 0 1px rgba(0, 0, 0, 0.05), 0 8px 16px rgba(0, 0, 0, 0.15)\"\n};\n\n// src/colors.ts\nvar colors = {\n primary: {\n dark: \"#D15933\",\n normal: \"#F47C46\",\n light: \"#F8A573\"\n },\n error: {\n light: \"#fca5a5\",\n normal: \"#ef4444\",\n dark: \"#b91c1c\"\n },\n success: {\n light: \"#86efac\",\n normal: \"#22c55e\",\n dark: \"#15803d\"\n },\n warning: {\n dark: \"#A08320\",\n normal: \"#bb9e2d\",\n light: \"#D6BF5C\"\n }\n};\n\n// src/field-sizes.ts\nvar fieldSizes = {\n small: \"2.375rem\",\n medium: \"3rem\",\n large: \"3.375rem\"\n};\n\n// src/font.ts\nvar font = {\n sizes: {\n smaller: \".75rem\",\n small: \".875rem\",\n medium: \"1rem\",\n large: \"1.25rem\",\n larger: \"1.5rem\",\n xlarger: \"2rem\",\n xxlarger: \"2.5rem\"\n }\n};\n\n// src/reponsiveness.ts\nvar breakpoints = {\n mobileS: 320,\n mobileM: 375,\n mobileL: 425,\n tabletS: 640,\n tablet: 768,\n laptop: 1024,\n desktop: 1200,\n desktopL: 1536\n};\nvar validBreakpointNames = Object.keys(breakpoints);\nvar breakpointUp = (value) => `@media screen and (min-width: ${value}px)`;\nvar screens = {\n mobileS_Up: breakpointUp(breakpoints.mobileS),\n mobileM_Up: breakpointUp(breakpoints.mobileM),\n mobileL_Up: breakpointUp(breakpoints.mobileL),\n tabletS_Up: breakpointUp(breakpoints.tabletS),\n tablet_Up: breakpointUp(breakpoints.tablet),\n laptop_Up: breakpointUp(breakpoints.laptop),\n desktop_Up: breakpointUp(breakpoints.desktop),\n desktopL_Up: breakpointUp(breakpoints.desktopL)\n};\n\n// src/layout.ts\nvar layout = {\n containerMaxWidth: breakpoints.desktop + \"px\",\n gutter: \"1.5rem\"\n};\n\n// src/spacing.ts\nvar spacing = {\n components: {\n smaller: \".3rem\",\n small: \".5rem\",\n medium: \"1rem\",\n large: \"1.25rem\",\n larger: \"1.5rem\"\n },\n sections: {\n smaller: \"1.5rem\",\n small: \"2rem\",\n medium: \"3rem\",\n large: \"4rem\",\n larger: \"5rem\"\n }\n};\n\n// src/transition.ts\nvar transition = {\n fast: \".15s\",\n default: \".2s\",\n slow: \".3s\"\n};\n\n// src/z-index.ts\nvar zIndex = {\n navbar: 100,\n floatButtons: 105,\n menuMobile: 110,\n menuMobileToggle: 111,\n modals: 120\n};\nexport {\n blurRadius,\n borderRadius,\n boxShadow,\n breakpoints,\n colors,\n fieldSizes,\n font,\n layout,\n screens,\n spacing,\n transition,\n validBreakpointNames,\n zIndex\n};\n", "import { colors } from '@ibti-tech/tokens'\nimport { ThemeColorPalette } from './constructThemeColorPalette'\n\nexport type ThemeColorsPalette = {\n primary: ThemeColorPalette\n error: ThemeColorPalette\n success: ThemeColorPalette\n warning: ThemeColorPalette\n [key: string]: ThemeColorPalette\n}\n\nexport type ConstructThemeColorsPaletteParams = ThemeColorsPalette\n\nexport const constructThemeColorsPalette = (newColors: ThemeColorsPalette) => {\n return {\n ...colors,\n ...newColors,\n }\n}\n", "import { lighten } from 'polished'\n\nexport type ThemeColorLayer = {\n hoveredBackground: string\n background: string\n border: string\n _nextLayerColor: string\n}\n\nexport type ThemeLayerIndex = 0 | 1 | 2\n\nexport type ThemeColorsLayers = Record<ThemeLayerIndex, ThemeColorLayer>\n\nexport type ThemeLayerIncrementation = Record<\n 'border' | 'hoveredBackground' | 'nextLayerColor',\n number\n>\n\nexport type ThemeLayerParams = {\n baseColor: string\n increment: ThemeLayerIncrementation\n}\n\nexport type ConstructThemeColorsLayersParams = ThemeLayerParams & {\n alternate?: boolean\n reverse?: boolean\n}\n\nexport const constructThemeColorsLayer = ({\n baseColor,\n increment,\n}: ConstructThemeColorsLayersParams): ThemeColorLayer => {\n return {\n background: baseColor,\n border: lighten(increment.border, baseColor) + '',\n hoveredBackground: lighten(increment.hoveredBackground, baseColor) + '',\n _nextLayerColor: lighten(increment.nextLayerColor, baseColor) + '',\n }\n}\n\nexport const constructThemeColorsLayers = ({\n baseColor,\n increment,\n alternate,\n reverse,\n}: ConstructThemeColorsLayersParams): ThemeColorsLayers => {\n let currentBaseColor = baseColor + ''\n const layers = []\n\n for (let i = 0; i <= 2; i++) {\n const layerProps = constructThemeColorsLayer({\n baseColor: currentBaseColor,\n increment,\n })\n layers[i] = layerProps\n currentBaseColor = layerProps._nextLayerColor\n }\n\n if (alternate)\n return {\n 0: layers[0],\n 1: layers[1],\n 2: layers[0],\n }\n\n if (reverse)\n return {\n 0: layers[2],\n 1: layers[1],\n 2: layers[0],\n }\n\n return {\n 0: layers[0],\n 1: layers[1],\n 2: layers[2],\n }\n}\n", "export type FontFamilyParams<\n FamilyName extends string,\n Weights extends Record<string, number>,\n> = {\n name: FamilyName\n weights: Weights\n file: {\n prefix: string\n extension: string\n format: string\n }\n}\n\nexport const constructFontFamily = <\n FamilyName extends string,\n Weights extends Record<string, number>,\n>({\n name,\n weights,\n file,\n}: FontFamilyParams<FamilyName, Weights>) => {\n return {\n name,\n weights,\n file,\n }\n}\n", "import { constructFontFamily } from './constructFontFamily'\n\nexport const bankGothicFontFamily = constructFontFamily({\n name: 'Bank Gothic',\n file: {\n prefix: 'bank-gothic-',\n extension: '.ttf',\n format: 'truetype',\n },\n weights: {\n light: 300,\n regular: 400,\n medium: 700,\n },\n})\n\nexport const montserratFontFamily = constructFontFamily({\n name: 'Montserrat',\n file: {\n prefix: 'montserrat-',\n extension: '.woff',\n format: 'woff',\n },\n weights: {\n regular: 500,\n semibold: 600,\n bold: 700,\n },\n})\n\nexport const fontFamily = {\n montserrat: montserratFontFamily,\n bankGothic: bankGothicFontFamily,\n}\n", "import { fontFamily } from '../font'\nimport { ThemeTokens } from './tokens'\n\nexport const fontFamilyToken = {\n montserrat: {\n name: fontFamily.montserrat.name,\n weights: fontFamily.montserrat.weights,\n },\n bankGothic: {\n name: fontFamily.bankGothic.name,\n weights: fontFamily.bankGothic.weights,\n },\n}\n\nexport type FontFamilyToken = typeof fontFamilyToken\n\nexport const defaultThemeTokens: ThemeTokens = {\n blurRadius: { subtle: '4px', normal: '8px', strong: '16px' },\n borderRadius: {\n small: '0.2rem',\n medium: '0.4rem',\n large: '0.6rem',\n pill: '99999999px',\n circle: '50%',\n },\n container: { defaultWidth: '1200px', padding: '1.5rem' },\n field: {\n height: '3rem',\n borderRadius: '0.4rem',\n },\n button: {\n shape: 'pill',\n height: {\n small: '2.375rem',\n medium: '3rem',\n large: '3.375rem',\n },\n borderRadius: '0.4rem',\n },\n fontSizes: {\n xxsmall: '0.4rem',\n xsmall: '0.6rem',\n small: '0.8rem',\n medium: '1rem',\n large: '1.2rem',\n xlarge: '1.5rem',\n xxlarge: '2rem',\n xxxlarge: '2.5rem',\n },\n fontFamily: fontFamilyToken,\n spacing: {\n components: {\n xsmall: '0.25rem',\n small: '0.5rem',\n medium: '1rem',\n large: '1.25rem',\n xlarge: '1.5rem',\n },\n sections: {\n xsmall: '2rem',\n small: '2.5rem',\n medium: '3rem',\n large: '3.5rem',\n xlarge: '4rem',\n },\n },\n transitionDurations: {\n faster: '.1s',\n fast: '.25s',\n default: '.4s',\n slow: '.6s',\n slower: '1s',\n },\n zIndex: {\n navbar: 100,\n floatButtons: 105,\n menuMobile: 110,\n menuMobileToggle: 115,\n modals: 120,\n },\n}\n", "import { mergeObjects } from '@ibti-tech/utils'\nimport { defaultThemeTokens } from './defaultThemeTokens'\nimport { ThemeTokens } from './tokens'\n\nexport const constructThemeTokens = (\n customTokens?: Partial<ThemeTokens>,\n): ThemeTokens => {\n return mergeObjects(defaultThemeTokens, customTokens)\n}\n", "import {\n ConstructThemeColorsContentParams,\n ThemeColorsContent,\n constructThemeColorsContent,\n} from './constructThemeColorsContent'\nimport {\n ConstructThemeColorsPaletteParams,\n ThemeColorsPalette,\n constructThemeColorsPalette,\n} from './constructThemeColorsPalette'\nimport {\n ConstructThemeColorsLayersParams,\n ThemeColorsLayers,\n constructThemeColorsLayers,\n} from './constructThemeColorsLayers'\nimport { ThemeTokens, constructThemeTokens } from './tokens'\n\nexport type ThemeType = 'dark' | 'light'\n\nexport type ConstructThemeParams = {\n type: ThemeType\n name: string\n colors: {\n palette: ConstructThemeColorsPaletteParams\n content: ConstructThemeColorsContentParams\n layers: ConstructThemeColorsLayersParams\n }\n fontFamily?: string\n tokens?: ThemeTokens\n}\n\nexport type Theme = {\n type: ThemeType\n name: string\n colors: {\n palette: ThemeColorsPalette\n content: ThemeColorsContent\n layers: ThemeColorsLayers\n }\n} & ThemeTokens\n\nexport const constructTheme = (args: ConstructThemeParams) => {\n return {\n type: args.type,\n name: args.name,\n colors: {\n palette: constructThemeColorsPalette(args.colors.palette),\n content: constructThemeColorsContent(args.colors.content),\n layers: constructThemeColorsLayers(args.colors.layers),\n },\n ...constructThemeTokens(args.tokens),\n }\n}\n", "import { darken, lighten } from 'polished'\n\nexport type ConstructThemeColorPaletteParams = {\n baseColor: string\n increment?: number\n}\n\nexport type ThemeColorPalette = {\n light: string\n normal: string\n dark: string\n}\n\nexport const constructThemeColorPalette = ({\n baseColor,\n increment = 0.1,\n}: ConstructThemeColorPaletteParams): ThemeColorPalette => {\n const light = lighten(increment, baseColor)\n const dark = darken(increment, baseColor)\n\n return {\n light,\n normal: baseColor,\n dark,\n }\n}\n", "import { colors } from '@ibti-tech/tokens'\nimport { constructTheme } from '..'\n\nexport const defaultDarkTheme = constructTheme({\n type: 'dark',\n name: 'default_dark',\n colors: {\n palette: colors,\n content: {\n baseColor: '#ffffff',\n increment: {\n text: -0.2,\n detail: -0.4,\n },\n },\n layers: {\n baseColor: '#000000',\n increment: {\n border: 0.05,\n hoveredBackground: 0.07,\n nextLayerColor: 0.09,\n },\n },\n },\n})\n\nexport type DefaultComponentsTheme = typeof defaultDarkTheme\n", "import { colors } from '@ibti-tech/tokens'\nimport { constructTheme } from '..'\n\nexport const defaultLightTheme = constructTheme({\n type: 'light',\n name: 'default-light',\n colors: {\n palette: colors,\n content: {\n baseColor: '#000000',\n increment: {\n text: 0.25,\n detail: 0.55,\n },\n },\n layers: {\n baseColor: '#e6e6e6',\n increment: {\n border: -0.025,\n hoveredBackground: -0.03,\n nextLayerColor: 0.03,\n },\n },\n },\n})\n", "import { grayscale, readableColor } from 'polished'\nimport { styled, css } from 'styled-components'\n\nimport { regexPatterns } from '@ibti-tech/utils'\n\nimport {\n ButtonConfigTokenShape,\n ThemeLayerIndex,\n constructThemeColorPalette,\n} from 'lib/theming'\n\nimport { ButtonColors, ButtonVariant } from '.'\n\nexport const Wrapper = styled.button<{\n $variant: ButtonVariant\n $color: ButtonColors\n $layer: ThemeLayerIndex\n $transparent: boolean\n $borderLess: boolean\n $active: boolean\n $shape?: ButtonConfigTokenShape\n}>`\n display: inline-flex;\n flex-shrink: 0;\n line-height: 1em;\n align-items: center;\n justify-content: center;\n font-weight: ${props => props.theme.fontFamily.montserrat.weights.semibold};\n gap: ${props => props.theme.spacing.components.small};\n transition-duration: ${props => props.theme.transitionDurations.fast};\n transition-property: background;\n text-transform: capitalize;\n text-decoration: none;\n\n &:not(:disabled) {\n &:hover {\n cursor: pointer;\n }\n }\n\n ${({ $shape, theme }) => {\n const defaultShape = theme.button.shape\n const shape = $shape || defaultShape\n\n switch (shape) {\n case 'pill':\n return css`\n border-radius: ${theme.borderRadius.pill};\n `\n case 'rounded':\n return css`\n border-radius: ${theme.button.borderRadius};\n `\n }\n }}\n\n ${({ $variant, theme, $color, $layer, $active }) => {\n const palleteColor = (() => {\n const colorObj = theme.colors.palette[$color]\n const isHexColor = regexPatterns.colorHexadecimal.test($color + '')\n\n if (!colorObj) {\n if (!isHexColor)\n throw new Error(`${$color} is not a palette color or hex color.`)\n\n return constructThemeColorPalette({\n baseColor: $color + '',\n })\n } else {\n return colorObj\n }\n })()\n\n switch ($variant) {\n case 'filled':\n return css`\n background: ${palleteColor.normal};\n color: ${() => {\n if ($color === 'primary') return 'white'\n\n return readableColor(palleteColor.normal, '#000000', '#ffffff')\n }};\n\n &:disabled {\n opacity: 0.8;\n background: ${grayscale(palleteColor.light)};\n }\n\n &:not(:disabled) {\n &:hover {\n background: ${palleteColor.light};\n }\n\n &:active {\n background: ${palleteColor.dark};\n }\n }\n `\n case 'layerBased':\n return css`\n color: ${theme.colors.content.text};\n background-color: ${theme.colors.layers[$layer].background};\n border: 1px solid ${theme.colors.layers[$layer].border};\n\n &:disabled {\n background-color: ${theme.colors.layers[$layer].border};\n }\n\n &:not(:disabled) {\n &:hover {\n color: ${palleteColor.normal};\n border-color: ${palleteColor.light}40;\n }\n }\n\n transition-duration: ${props =>\n props.theme.transitionDurations.default};\n transition-property: color, background, border;\n\n ${$active &&\n css`\n color: ${palleteColor.normal};\n border-color: ${palleteColor.light}40;\n background-color: ${theme.colors.layers[$layer].hoveredBackground};\n `}\n `\n case 'outlined':\n return css`\n background: transparent;\n color: ${palleteColor.normal};\n border: 1px solid currentColor;\n\n &:hover {\n background-color: ${palleteColor.normal};\n color: ${readableColor(palleteColor.normal, 'black', 'white')};\n }\n `\n }\n }}\n \n ${({ $transparent }) =>\n $transparent &&\n css`\n background: transparent;\n `};\n\n ${({ $borderLess }) =>\n $borderLess &&\n css`\n border: unset;\n `}\n`\n", "import { styled, css } from 'styled-components'\n\nimport type { ButtonHeightToken } from 'lib/theming'\n\nimport { ButtonBase } from 'components/ButtonBase'\n\nconst horizontalPadding = (size: string) => css`\n padding-left: ${size};\n padding-right: ${size};\n`\n\nexport const Label = styled.span`\n display: flex;\n align-items: center;\n justify-content: center;\n gap: ${props => props.theme.spacing.components.small};\n`\n\nexport const Wrapper = styled(ButtonBase)<{\n $size: ButtonHeightToken\n $fillWidth?: boolean\n}>`\n svg {\n flex-shrink: 0;\n }\n\n ${({ $fillWidth }) =>\n $fillWidth &&\n css`\n width: 100%;\n `}\n\n ${({ $size, theme }) => {\n switch ($size) {\n case 'small':\n return css`\n ${horizontalPadding(theme.spacing.components.large)}\n height: ${theme.button.height.small};\n font-size: ${theme.fontSizes.small};\n gap: ${theme.spacing.components.small};\n `\n default:\n case 'medium':\n return css`\n ${horizontalPadding(theme.spacing.components.large)}\n height: ${theme.button.height.medium};\n gap: ${theme.spacing.components.small};\n font-size: ${theme.fontSizes.small};\n `\n case 'large':\n return css`\n ${horizontalPadding(theme.spacing.components.large)}\n height: ${theme.button.height.large};\n gap: ${theme.spacing.components.medium};\n font-size: ${theme.fontSizes.medium};\n `\n }\n }}\n`\n", "import { objectKeys } from '@ibti-tech/utils'\n\nexport const breakpoints = {\n mobileS: 320,\n mobileM: 375,\n mobileL: 425,\n tabletS: 640,\n tablet: 768,\n laptop: 1024,\n desktop: 1200,\n desktopL: 1536,\n} as const\n\nexport const validBreakpointNames = objectKeys(breakpoints)\n\nconst breakpointUp = (value: number) =>\n `@media screen and (min-width: ${value}px)`\n\nexport const screens = {\n mobileS: breakpointUp(breakpoints.mobileS),\n mobileM: breakpointUp(breakpoints.mobileM),\n mobileL: breakpointUp(breakpoints.mobileL),\n tabletS: breakpointUp(breakpoints.tabletS),\n tablet: breakpointUp(breakpoints.tablet),\n laptop: breakpointUp(breakpoints.laptop),\n desktop: breakpointUp(breakpoints.desktop),\n desktopL: breakpointUp(breakpoints.desktopL),\n} as const\n", "import React, { HTMLAttributes, ReactNode } from 'react'\n\nimport type { ThemeLayerIndex } from 'lib/theming'\n\nimport * as S from './styles'\n\nexport type CardBaseProps = {\n layer?: ThemeLayerIndex\n hoverable?: boolean\n children?: ReactNode\n roundedCorners?: 'small' | 'medium' | 'large' | 'none'\n tag?: keyof HTMLElementTagNameMap\n boxShadow?: boolean\n} & HTMLAttributes<HTMLDivElement>\n\nexport const CardBase = ({\n layer = 1,\n hoverable = false,\n children,\n roundedCorners = 'medium',\n tag,\n boxShadow,\n ...props\n}: CardBaseProps) => {\n return (\n <S.Wrapper\n {...props}\n $boxShadow={boxShadow}\n $hoverable={hoverable}\n $layer={layer}\n $roundedCorners={roundedCorners}\n as={tag}\n >\n {children}\n </S.Wrapper>\n )\n}\n", "import { styled, css } from 'styled-components'\n\nimport { ThemeLayerIndex } from 'lib/theming'\n\nimport { CardBaseProps } from '.'\nimport { opacify } from 'polished'\n\nexport const Wrapper = styled.div<{\n $layer: ThemeLayerIndex\n $hoverable: boolean\n $roundedCorners?: CardBaseProps['roundedCorners']\n $boxShadow?: boolean\n}>`\n background-color: ${props =>\n props.theme.colors.layers[props.$layer].background};\n border: 1px solid ${props => props.theme.colors.layers[props.$layer].border};\n border-radius: ${props => props.theme.borderRadius.medium};\n\n ${({ $hoverable, theme, $layer }) =>\n $hoverable &&\n css`\n transition: ${theme.transitionDurations.default} background;\n &:hover {\n background-color: ${theme.colors.layers[$layer].hoveredBackground};\n }\n `}\n\n border-radius: ${({ $roundedCorners, theme }) => {\n switch ($roundedCorners) {\n case 'none':\n return 'initial'\n default:\n if ($roundedCorners) return theme.borderRadius[$roundedCorners]\n else return theme.borderRadius.medium\n }\n }}\n\n ${({ $boxShadow, theme }) =>\n $boxShadow &&\n css`\n box-shadow: -1px -17px 33px 0px ${opacify(-0.98, theme.colors.content.title)};\n box-shadow: -1px 6px 16px 0px\n ${opacify(-0.95, theme.colors.content.title)};\n `}\n`\n", "import React from 'react'\n\nimport { createIconComponent } from './createIconComponent'\n\nexport const CheckIcon = createIconComponent({\n content: (\n <path d=\"M464.563 144.563L208.563 400.563C200.75 408.375 190.516 412.281 180.281 412.281S159.813 408.375 152 400.563L24 272.563C8.375 256.938 8.375 231.625 24 216S64.938 200.375 80.562 216L180.281 315.719L408 88C423.625 72.375 448.938 72.375 464.562 88S480.188 128.938 464.563 144.563Z\" />\n ),\n viewBox: '0 0 512 512',\n})\n", "import React from 'react'\n\nimport type { HTMLStyleAttributes } from 'types'\n\nimport * as S from './styles'\n\nexport type FormFieldCharsLimitProps = {\n charsCount: number\n limit?: number\n} & HTMLStyleAttributes\n\nexport const FormFieldCharsLimit = ({\n charsCount,\n limit,\n ...props\n}: FormFieldCharsLimitProps) => {\n return (\n <S.Wrapper {...props}>\n <S.Count $limitExceeded={limit ? charsCount > limit : false}>\n {charsCount}\n </S.Count>\n <S.Limit>{limit && ` / ${limit}`}</S.Limit>\n </S.Wrapper>\n )\n}\n", "import { styled, css } from 'styled-components'\n\nexport const Limit = styled.span``\n\nexport const Count = styled.span<{ $limitExceeded: boolean }>`\n ${({ $limitExceeded }) =>\n $limitExceeded &&\n css`\n color: ${props => props.theme.colors.palette.error.normal};\n `}\n`\n\nexport const Wrapper = styled.span`\n font-size: ${props => props.theme.fontSizes.small};\n position: absolute;\n right: ${props => props.theme.spacing.components.small};\n bottom: ${props => props.theme.spacing.components.small};\n`\n", "import React from 'react'\n\nimport * as S from './styles'\n\nexport type FormFieldLabelProps = {\n children?: string\n}\n\nexport const FormFieldLabel = ({ children }: FormFieldLabelProps) => {\n if (!children) return <></>\n\n return <S.Wrapper>{children}</S.Wrapper>\n}\n", "import { styled } from 'styled-components'\n\nexport const Wrapper = styled.span`\n display: block;\n font-size: ${props => props.theme.fontSizes.small};\n font-weight: ${props => props.theme.fontFamily.montserrat.weights.bold};\n`\n", "import React from 'react'\n\nimport type { ReactNode } from 'react'\nimport type { HTMLStyleAttributes } from 'types'\n\nimport * as S from './styles'\n\nexport type FormFieldRootProps = {\n fillWidth?: boolean\n children?: ReactNode\n} & HTMLStyleAttributes\n\nexport const FormFieldRoot = ({\n fillWidth,\n children,\n ...props\n}: FormFieldRootProps) => {\n return (\n <S.Wrapper $fillWidth={fillWidth} {...props}>\n {children}\n </S.Wrapper>\n )\n}\n", "import { styled, css } from 'styled-components'\n\nexport const Wrapper = styled.label<{ $fillWidth?: boolean }>`\n display: inline-flex;\n flex-direction: column;\n gap: ${props => props.theme.spacing.components.small};\n position: relative;\n\n ${({ $fillWidth }) =>\n $fillWidth &&\n css`\n display: flex;\n width: 100%;\n `}\n`\n", "import React from 'react'\n\nimport type { IconComponent } from 'icons/createIconComponent'\n\nimport { CircleExclamationIcon } from 'icons/CircleExclamation'\nimport { CheckIcon } from 'icons/Check'\nimport { InfoCircleIcon } from 'icons/InfoCircle'\n\nimport * as S from './styles'\n\nexport type FormFieldStatusType = 'info' | 'error' | 'success'\n\nexport type FormFieldStatusProps = {\n type?: FormFieldStatusType\n text?: string\n}\n\nconst iconsByType: Record<FormFieldStatusType, IconComponent> = {\n info: InfoCircleIcon,\n error: CircleExclamationIcon,\n success: CheckIcon,\n}\n\nexport const FormFieldStatus = ({\n type = 'info',\n text,\n}: FormFieldStatusProps) => {\n const Icon = iconsByType[type]\n\n if (!text) return <></>\n\n return (\n <S.Wrapper $type={type}>\n {text && <Icon />}\n {text}\n </S.Wrapper>\n )\n}\n", "import React from 'react'\n\nimport { createIconComponent } from './createIconComponent'\n\nexport const CircleExclamationIcon = createIconComponent({\n content: (\n <>\n <path d=\"M256 16C123.451 16 16 123.451 16 256S123.451 496 256 496S496 388.549 496 256S388.549 16 256 16ZM232 152C232 138.75 242.75 128 256 128S280 138.75 280 152V280C280 293.25 269.25 304 256 304S232 293.25 232 280V152ZM256 400C238.637 400 224.562 385.924 224.562 368.561C224.562 351.199 238.637 337.123 256 337.123S287.438 351.199 287.438 368.561C287.438 385.924 273.363 400 256 400Z\" />\n </>\n ),\n viewBox: '0 0 512 512',\n})\n", "import React from 'react'\n\nimport { createIconComponent } from './createIconComponent'\n\nexport const InfoCircleIcon = createIconComponent({\n content: (\n <path d=\"M256 16C123.449 16 16 123.508 16 256C16 388.578 123.449 496 256 496S496 388.578 496 256C496 123.508 388.551 16 256 16ZM256 128C273.674 128 288 142.326 288 160C288 177.672 273.674 192 256 192S224 177.672 224 160C224 142.326 238.326 128 256 128ZM296 384H216C202.75 384 192 373.25 192 360S202.75 336 216 336H232V272H224C210.75 272 200 261.25 200 248S210.75 224 224 224H256C269.25 224 280 234.75 280 248V336H296C309.25 336 320 346.75 320 360S309.25 384 296 384Z\" />\n ),\n viewBox: '0 0 512 512',\n})\n", "import { styled, css } from 'styled-components'\n\nimport { FormFieldStatusType } from '.'\n\nexport const Wrapper = styled.span<{ $type: FormFieldStatusType }>`\n display: flex;\n gap: ${props => props.theme.spacing.components.small};\n align-items: center;\n font-size: ${props => props.theme.fontSizes.small};\n padding-top: ${props => props.theme.spacing.components.xsmall};\n padding-left: ${props => props.theme.spacing.components.small};\n\n ${props => {\n switch (props.$type) {\n case 'error':\n return css`\n color: ${props => props.theme.colors.palette.error.light};\n `\n case 'success':\n return css`\n color: ${props => props.theme.colors.palette.success.normal};\n `\n case 'info':\n css`\n color: ${props => props.theme.colors.content.text};\n `\n }\n }}\n`\n", "import { FormFieldStatusType } from '../partials'\n\nexport type HandleFormFieldStatusParams = {\n error?: string\n success?: string\n info?: string\n}\n\nexport type HandleFormFieldStatusResult = {\n type: FormFieldStatusType\n text: string\n}\n\nexport const handleFormFieldStatus = ({\n error,\n success,\n info,\n}: HandleFormFieldStatusParams) => {\n let type: FormFieldStatusType | undefined\n let text: string | undefined\n\n if (success) {\n type = 'success'\n text = success\n }\n\n if (info) {\n type = 'info'\n text = info\n }\n\n if (error) {\n type = 'error'\n text = error\n }\n\n return {\n type,\n text,\n }\n}\n", "import * as Partials from './partials'\nexport * from './utils'\n\nexport const FormField = {\n Root: Partials.FormFieldRoot,\n Label: Partials.FormFieldLabel,\n Status: Partials.FormFieldStatus,\n CharsLimit: Partials.FormFieldCharsLimit,\n}\n", "import React from 'react'\n\nimport type { ReactNode } from 'react'\nimport type { HTMLStyleAttributes } from 'types'\n\nimport { breakpoints } from 'lib/responsiveness'\n\nimport * as S from './styles'\n\nexport type ContainerProps = {\n children?: ReactNode\n variant?: keyof typeof breakpoints\n} & HTMLStyleAttributes\n\nexport const Container = ({\n children,\n className,\n style,\n variant,\n}: ContainerProps) => {\n return (\n <S.Wrapper $variant={variant} className={className} style={style}>\n {children}\n </S.Wrapper>\n )\n}\n", "import { styled } from 'styled-components'\n\nimport { breakpoints } from 'lib/responsiveness'\n\nimport { ContainerProps } from '.'\n\nexport const Wrapper = styled.div<{ $variant: ContainerProps['variant'] }>`\n max-width: ${props =>\n props.$variant\n ? breakpoints[props.$variant] + 'px'\n : props => props.theme.container.defaultWidth};\n padding: 0 ${props => props.theme.container.padding};\n width: 100%;\n margin: 0 auto;\n`\n", "import { mix } from 'polished'\nimport { styled, css } from 'styled-components'\n\nimport type { ThemeLayerIndex } from 'lib/theming'\nimport { CSSProperties } from 'react'\n\nexport type TextFieldSharedStyleProps = {\n $layer: ThemeLayerIndex\n $focused: boolean\n $hasError: boolean\n $hasSuccess: boolean\n $disabled?: boolean\n $hasCharsCounter?: boolean\n $shape?: 'rounded' | 'pill'\n}\n\nconst textFieldSharedStyle = css`\n width: 100%;\n font-size: ${props => props.theme.fontSizes.medium};\n font-weight: ${props => props.theme.fontFamily.montserrat.weights.regular};\n background: transparent;\n color: ${props => props.theme.colors.content.title};\n\n &::placeholder {\n font-weight: ${props => props.theme.fontFamily.montserrat.weights.regular};\n color: ${props => props.theme.colors.content.detail};\n }\n`\n\nconst TextArea = styled.textarea<{ $resize?: CSSProperties['resize'] }>`\n ${textFieldSharedStyle}\n padding: ${props => props.theme.spacing.components.medium};\n resize: ${props => props.$resize};\n`\n\nconst Input = styled.input`\n ${textFieldSharedStyle}\n height: ${props => props.theme.button.height.medium};\n`\n\nconst Wrapper = styled.span<TextFieldSharedStyleProps>`\n display: flex;\n align-items: center;\n color: ${props => props.theme.colors.content.text};\n background-color: ${props =>\n props.theme.colors.layers[props.$layer].background};\n border: 1px solid ${props => props.theme.colors.layers[props.$layer].border};\n overflow: hidden;\n transition: ${props => props.theme.transitionDurations.fast};\n transition-property: border-color background;\n position: relative;\n\n ${({ $shape }) => {\n switch ($shape) {\n case 'pill':\n return css`\n border-radius: ${props => props.theme.borderRadius.pill};\n `\n case 'rounded':\n default:\n return css`\n border-radius: ${props => props.theme.field.borderRadius};\n `\n }\n }}\n\n ${({ $focused, $disabled, $layer, theme }) =>\n !$disabled &&\n !$focused &&\n css`\n &:hover {\n background-color: ${theme.colors.layers[$layer].hoveredBackground};\n }\n `}\n\n ${({ $focused, $layer, theme }) =>\n $focused &&\n css`\n border-color: ${mix(\n 0.3,\n theme.colors.palette.primary.normal,\n theme.colors.layers[$layer].border,\n )};\n `}\n\n ${({ theme, $hasError }) =>\n $hasError &&\n css`\n border-color: ${theme.colors.palette.error.normal};\n `}\n\n ${({ theme, $hasSuccess }) =>\n $hasSuccess &&\n css`\n border-color: ${theme.colors.palette.success.normal};\n `}\n\n ${({ theme, $disabled, $layer }) =>\n $disabled &&\n css`\n background: ${theme.colors.layers[$layer].border};\n color: ${theme.colors.content.detail};\n `}\n\n ${({ $hasCharsCounter }) =>\n $hasCharsCounter &&\n css`\n padding-bottom: 2rem;\n `}\n`\n\nexport const FormTextField = {\n Wrapper,\n Input,\n TextArea,\n}\n", "import React from 'react'\n\nimport type { ButtonConfigToken, ButtonHeightToken } from 'lib/theming'\nimport type { IconComponent } from 'icons/createIconComponent'\n\nimport { Spinner } from 'components/Spinner'\nimport { ButtonBaseProps } from 'components/ButtonBase'\n\nimport * as S from './styles'\n\nexport type BackgroundImagePositionY = 'top' | 'center' | 'bottom'\nexport type BackgroundImagePositionX = 'left' | 'center' | 'right'\nexport type BackgroundImageFit = 'cover' | 'fill' | 'contain'\n\nexport type IconButtonImagePropertyProps = {\n src: string\n positionY?: BackgroundImagePositionY\n positionX?: BackgroundImagePositionX\n fit?: BackgroundImageFit\n}\n\ntype IconButtonCommonProps = ButtonBaseProps & {\n image?: IconButtonImagePropertyProps\n size?: ButtonHeightToken\n}\n\ntype IconButtonWithIconProps = IconButtonCommonProps & {\n icon: IconComponent | (() => JSX.Element)\n image?: never\n}\n\ntype IconButtonWithImageProps = IconButtonCommonProps & {\n image: IconButtonImagePropertyProps\n icon?: never\n}\n\nexport type IconButtonProps = IconButtonWithIconProps | IconButtonWithImageProps\n\nexport const IconButton = ({\n icon: Icon,\n size = 'medium',\n image,\n ...props\n}: IconButtonProps) => {\n return (\n <S.Wrapper\n $imageFit={image?.fit}\n $imagePositionX={image?.positionX}\n $imagePositionY={image?.positionY}\n $imageSrc={image?.src}\n $size={size}\n {...props}\n >\n {props.loading ? <Spinner size=\"extra-small\" /> : Icon ? <Icon /> : ''}\n </S.Wrapper>\n )\n}\n", "import { styled, css } from 'styled-components'\n\nimport type { ButtonConfigToken, ButtonHeightToken } from 'lib/theming'\n\nimport { ButtonBase } from 'components/ButtonBase'\n\nimport {\n BackgroundImageFit,\n BackgroundImagePositionX,\n BackgroundImagePositionY,\n} from '.'\n\nexport const Wrapper = styled(ButtonBase)<{\n $size: ButtonHeightToken\n $imageSrc?: string\n $imagePositionX?: BackgroundImagePositionX\n $imagePositionY?: BackgroundImagePositionY\n $imageFit?: BackgroundImageFit\n}>`\n ${({ $imageSrc, $imagePositionY, $imagePositionX, $imageFit }) =>\n $imageSrc &&\n css`\n background-image: url(${$imageSrc});\n background-position: ${$imagePositionX || 'center'}\n ${$imagePositionY || 'center'};\n background-size: ${$imageFit || 'contain'};\n `}\n\n ${({ $size, theme }) => {\n switch ($size) {\n case 'small':\n return css`\n height: ${theme.button.height.small};\n width: ${theme.button.height.small};\n font-size: ${theme.fontSizes.medium};\n `\n case 'medium':\n return css`\n height: ${theme.button.height.medium};\n width: ${theme.button.height.medium};\n font-size: ${theme.fontSizes.medium};\n `\n case 'large':\n return css`\n height: ${theme.button.height.large};\n width: ${theme.button.height.large};\n font-size: ${theme.fontSizes.large};\n `\n }\n }}\n`\n", "import React, { useState } from 'react'\n\nimport type { ThemeLayerIndex } from 'lib/theming'\n\nimport { RatingStar } from './RatingStar'\nimport * as S from './styles'\n\nconst rateNumbers = [1, 2, 3, 4, 5]\n\nexport type RatingStarsProps = {\n value?: number | null\n setValue?: (number: number) => void\n readOnly?: boolean\n layer?: ThemeLayerIndex\n}\n\nexport const RatingStars = ({\n value,\n setValue,\n readOnly = false,\n layer,\n}: RatingStarsProps) => {\n const [rateValue, setRateValue] = useState<number>(0)\n const [hoverValue, setHoverValue] = useState<null | number>(null)\n\n return (\n <S.Wrapper>\n {rateNumbers.map(rateNumber => (\n <RatingStar\n filled={\n hoverValue\n ? hoverValue >= rateNumber\n : (value || rateValue) >= rateNumber\n }\n key={rateNumber}\n layer={layer}\n onClick={() => {\n setValue && setValue(rateNumber)\n setRateValue(rateNumber)\n }}\n onMouseLeave={() => {\n !readOnly && setHoverValue(null)\n }}\n onMouseOver={() => {\n !readOnly && setHoverValue(rateNumber)\n }}\n readOnly={readOnly}\n />\n ))}\n </S.Wrapper>\n )\n}\n", "import React from 'react'\n\nimport type { ThemeLayerIndex } from 'lib/theming'\n\nimport * as S from './styles'\n\nexport type RatingStarProps = {\n onMouseOver: VoidFunction\n onMouseLeave: VoidFunction\n onClick: VoidFunction\n filled?: boolean\n readOnly?: boolean\n layer?: ThemeLayerIndex\n}\n\nexport const RatingStar = ({\n filled = false,\n onMouseOver,\n onMouseLeave,\n onClick,\n readOnly,\n layer = 0,\n}: RatingStarProps) => {\n return (\n <S.Wrapper\n $readOnly={readOnly}\n onClick={onClick}\n onMouseLeave={onMouseLeave}\n onMouseOver={onMouseOver}\n >\n <S.Svg\n $filled={filled}\n $layer={layer}\n viewBox=\"0 0 24 24\"\n width=\"2rem\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M11.0137 2.76683C11.379 1.89022 12.6208 1.89022 12.9861 2.76683L14.9102 7.38462C15.0654 7.75726 15.4295 8 15.8332 8H20.893C21.8234 8 22.2893 9.12483 21.6314 9.78268L17.5391 13.875C17.2823 14.1318 17.185 14.5076 17.2847 14.8568L18.9076 20.5369C19.1816 21.496 18.1122 22.2767 17.2822 21.7234L12.5546 18.5716C12.2187 18.3477 11.7811 18.3477 11.4452 18.5717L6.72544 21.7182C5.89284 22.2732 4.81988 21.49 5.09479 20.5279L6.71509 14.8568C6.81486 14.5076 6.71747 14.1318 6.46068 13.875L2.38859 9.8029C1.72328 9.13758 2.19448 8 3.13538 8H8.16658C8.57028 8 8.93438 7.75726 9.08965 7.38462L11.0137 2.76683Z\" />\n </S.Svg>\n </S.Wrapper>\n )\n}\n", "import { styled, css } from 'styled-components'\n\nimport type { ThemeLayerIndex } from 'lib/theming'\n\nexport const Svg = styled.svg<{ $filled: boolean; $layer: ThemeLayerIndex }>`\n ${({ $filled, $layer, theme }) =>\n $filled\n ? css`\n fill: ${theme.colors.palette.primary.normal};\n `\n : css`\n fill: ${theme.colors.layers[$layer].background};\n stroke: ${theme.colors.layers[$layer].border};\n stroke-width: 1px;\n `}\n`\n\nexport const Wrapper = styled.div<{ $readOnly?: boolean }>`\n ${props =>\n !props.$readOnly &&\n css`\n cursor: pointer;\n `}\n\n padding: ${props => props.theme.spacing.components.xsmall};\n`\n", "import { styled } from 'styled-components'\n\nexport const Wrapper = styled.div`\n display: flex;\n align-items: center;\n`\n", "import React, {\n ChangeEventHandler,\n CSSProperties,\n FocusEventHandler,\n MouseEventHandler,\n MutableRefObject,\n useEffect,\n useState,\n} from 'react'\n\nimport type { HTMLStyleAttributes } from 'types'\nimport type { ThemeLayerIndex } from 'lib/theming'\n\nimport {\n FormField,\n HandleFormFieldStatusParams,\n handleFormFieldStatus,\n} from 'components/FormField'\nimport { FormTextField } from 'components/FormTextField'\n\nexport type TextAreaProps = {\n label?: string\n fillWidth?: boolean\n layer?: ThemeLayerIndex\n name?: string\n placeholder?: string\n value?: string\n disabled?: boolean\n onChange?: ChangeEventHandler<HTMLTextAreaElement>\n onFocus?: FocusEventHandler<HTMLTextAreaElement>\n onBlur?: FocusEventHandler<HTMLTextAreaElement>\n setRef?: MutableRefObject<HTMLTextAreaElement | null>\n onFocused?: (isFocused: boolean) => void\n onClick?: MouseEventHandler\n showCharsCount?: boolean\n max?: number\n rows?: number\n resize?: 'none' | 'horizontal' | 'vertical' | 'both'\n} & HTMLStyleAttributes &\n HandleFormFieldStatusParams\n\nexport const TextArea = ({\n label,\n fillWidth,\n layer = 1,\n setRef,\n info,\n error,\n success,\n showCharsCount,\n value,\n max,\n onFocused,\n onBlur,\n onFocus,\n onChange,\n rows = 5,\n resize = 'none',\n ...props\n}: TextAreaProps) => {\n const [focused, setFocused] = useState(false)\n const [internalValue, setInternalValue] = useState('')\n\n useEffect(() => {\n onFocused && onFocused(focused)\n }, [onFocused, focused])\n\n const fieldStatus = handleFormFieldStatus({ error, info, success })\n const handledValue = value || internalValue\n\n return (\n <FormField.Root\n className={props.className}\n fillWidth={fillWidth}\n style={props.style}\n >\n <FormField.Label>{label}</FormField.Label>\n <FormTextField.Wrapper\n $disabled={props.disabled}\n $focused={focused}\n $hasCharsCounter={showCharsCount}\n $hasError={Boolean(error)}\n $hasSuccess={Boolean(success)}\n $layer={layer}\n >\n <FormTextField.TextArea\n as=\"textarea\"\n onBlur={e => {\n setFocused(false)\n onBlur && onBlur(e)\n }}\n onChange={e => {\n setInternalValue(e.target.value)\n\n onChange && onChange(e)\n }}\n onFocus={e => {\n setFocused(true)\n onFocus && onFocus(e)\n }}\n ref={setRef}\n rows={rows}\n value={value}\n maxLength={max}\n $resize={resize}\n {...props}\n />\n {showCharsCount && (\n <FormField.CharsLimit charsCount={handledValue.length} limit={max} />\n )}\n </FormTextField.Wrapper>\n <FormField.Status {...fieldStatus} />\n </FormField.Root>\n )\n}\n", "import React from 'react'\n\nimport { createIconComponent } from './createIconComponent'\n\nexport const ArrowUpIcon = createIconComponent({\n content: (\n <>\n <path d=\"M413 251.562C405.14 259.812 394.578 264 384 264C374.093 264 364.187 260.344 356.453 253L264 165.18V440C264 462.094 246.093 480 224 480S184 462.094 184 440V165.18L91.547 253C75.562 268.188 50.234 267.531 35 251.562C19.781 235.531 20.437 210.219 36.453 195L196.453 43C211.89 28.312 236.109 28.312 251.547 43L411.547 195C427.562 210.219 428.218 235.531 413 251.562Z\" />\n </>\n ),\n viewBox: '0 0 448 512',\n})\n", "import React from 'react'\n\nimport { createIconComponent } from './createIconComponent'\n\nexport const ChevronUpIcon = createIconComponent({\n content: (\n <path d=\"M436.908 339.657C429.049 347.875 418.533 352 408.002 352C398.048 352 388.095 348.313 380.345 340.907L224 191.354L67.655 340.907C51.702 356.156 26.342 355.625 11.092 339.657C-4.174 323.689 -3.611 298.378 12.342 283.098L196.344 107.109C211.812 92.297 236.188 92.297 251.656 107.109L435.658 283.098C451.611 298.378 452.174 323.689 436.908 339.657Z\" />\n ),\n viewBox: '0 0 448 612',\n})\n", "import { defaultDarkTheme, defaultLightTheme } from '@ibti-tech/ui'\nimport type { ChatbotTypes } from 'types'\n\nexport const themes = {\n light: defaultLightTheme,\n dark: defaultDarkTheme,\n}\n\n/** Merges custom colors into the base theme. */\nexport function mergeThemeWithCustomColors(\n baseTheme: typeof defaultLightTheme,\n customColors?: ChatbotTypes.CustomColors,\n): typeof defaultLightTheme {\n const has = (v?: string) => v && v.trim().length > 0\n if (!customColors || !Object.values(customColors).some(has)) {\n return baseTheme\n }\n\n const primary = has(customColors.primaryColor)\n ? customColors.primaryColor!\n : baseTheme.colors.palette.primary.normal\n const headerBg = has(customColors.headerBackground)\n ? customColors.headerBackground!\n : has(customColors.primaryColor)\n ? customColors.primaryColor!\n : baseTheme.colors.palette.primary.normal\n const userBalloon = has(customColors.userBalloonColor)\n ? customColors.userBalloonColor!\n : has(customColors.primaryColor)\n ? customColors.primaryColor!\n : baseTheme.colors.palette.primary.normal\n\n return {\n ...baseTheme,\n colors: {\n ...baseTheme.colors,\n palette: {\n ...baseTheme.colors.palette,\n primary: {\n ...baseTheme.colors.palette.primary,\n normal: primary,\n },\n },\n custom: {\n headerBackground: headerBg,\n userBalloonColor: userBalloon,\n },\n },\n } as typeof baseTheme\n}\n", "/**\n * Origins that skip domain validation (always allowed).\n * Per migration plan: localhost, 127.0.0.1, admin-chatbot.ibti.tech.\n * \"null\" = opaque origin (e.g. iframe with srcdoc) so embed preview works.\n */\nexport const ALLOWED_ORIGINS_WITHOUT_DOMAIN_CHECK = [\n 'localhost',\n '127.0.0.1',\n 'null',\n 'https://admin-chatbot.ibti.tech',\n 'https://admin-chatbot.ibti.tech/',\n 'http://admin-chatbot.ibti.tech',\n 'http://admin-chatbot.ibti.tech/',\n]\n\n/**\n * Normalizes host for comparison (lowercase, without port for localhost).\n */\nfunction normalizeHost(host: string): string {\n const lower = host.toLowerCase().trim()\n // Remove port for localhost/127.0.0.1\n if (lower.startsWith('localhost') || lower.startsWith('127.0.0.1')) {\n return lower.split(':')[0] ?? lower\n }\n return lower\n}\n\n/**\n * Normalizes domain name from API (e.g. \"example.com\") for comparison.\n */\nfunction normalizeDomainName(domainName: string): string {\n return domainName.toLowerCase().trim()\n}\n\n/**\n * Extracts hostname from origin or host string.\n */\nfunction getHostname(value: string): string {\n const trimmed = value.toLowerCase().trim()\n if (trimmed.startsWith('http://') || trimmed.startsWith('https://')) {\n try {\n return new URL(trimmed).hostname\n } catch {\n return trimmed.split(':')[0] ?? trimmed\n }\n }\n return trimmed.split(':')[0] ?? trimmed\n}\n\n/**\n * Checks if the current origin is in the allowed list (no domain check needed).\n */\nexport function isOriginAllowedWithoutCheck(\n originOrHost: string,\n customAllowedOrigins?: string[],\n): boolean {\n const list = customAllowedOrigins ?? ALLOWED_ORIGINS_WITHOUT_DOMAIN_CHECK\n const normalized = originOrHost.toLowerCase().trim().replace(/\\/+$/, '')\n const hostname = getHostname(originOrHost)\n\n return list.some(allowed => {\n const a = allowed.toLowerCase().trim().replace(/\\/+$/, '')\n const aHostname = getHostname(a)\n if (normalized === a || hostname === aHostname) return true\n if (hostname === 'localhost' || hostname === '127.0.0.1') {\n return aHostname === 'localhost' || aHostname === '127.0.0.1'\n }\n return false\n })\n}\n\n/**\n * Validates if the current page origin/host is allowed for the chatbot's domain.\n * @param currentOriginOrHost - window.location.origin or window.location.host\n * @param domainName - domain.name from GET /chatbots/public/:hash\n * @param customAllowedOrigins - optional override for allowed origins without check\n * @returns true if domain is allowed\n */\nexport function isDomainAllowed(\n currentOriginOrHost: string,\n domainName: string,\n customAllowedOrigins?: string[],\n): boolean {\n const origin = currentOriginOrHost ?? ''\n if (!origin || origin === 'null') return true\n if (isOriginAllowedWithoutCheck(origin, customAllowedOrigins)) {\n return true\n }\n\n const current = normalizeHost(\n origin.startsWith('http')\n ? new URL(origin).host\n : origin,\n )\n const allowed = normalizeDomainName(domainName)\n\n // Exact match\n if (current === allowed) return true\n\n // current might include port (e.g. localhost:3000) - compare hostname only\n const currentHostname = current.split(':')[0] ?? current\n if (currentHostname === allowed) return true\n\n // Subdomain: allow \"www.example.com\" when domain is \"example.com\"\n if (currentHostname.endsWith('.' + allowed)) return true\n\n return false\n}\n", "import { v4 as uuidv4 } from 'uuid'\n\nconst STORAGE_PREFIX = 'ibtiChatbot@visitorId'\n\nfunction storageKey(apiURL: string, publicHash: string): string {\n const base = apiURL.replace(/\\/+$/, '')\n return `${STORAGE_PREFIX}:${base}:${publicHash}`\n}\n\n/**\n * Gets or creates a stable visitor ID for the given chatbot (apiURL + publicHash).\n * Persisted in localStorage so the same visitor is recognized across reloads.\n */\nexport function getOrCreateVisitorId(apiURL: string, publicHash: string): string {\n if (typeof window === 'undefined') {\n return uuidv4()\n }\n\n const key = storageKey(apiURL, publicHash)\n const existing = localStorage.getItem(key)\n\n if (existing) {\n return existing\n }\n\n const newId = uuidv4()\n localStorage.setItem(key, newId)\n return newId\n}\n", "import React from 'react'\nimport * as S from './styles'\nimport ChatbotHeader from 'components/ChatbotHeader'\nimport ChatbotBody from 'components/ChatbotBody'\nimport ChatbotFooter from 'components/ChatbotFooter'\nimport ChatbotToggle from 'components/ChatbotToggle'\nimport useChatbot from 'contexts/Chatbot/useChatbot'\nimport { ChatUserFeedbackRating } from 'components/ChatUserFeedbackRating'\nimport { useChatFeedbackBox } from 'contexts/Chatbot/useChatFeedbackBox'\n\nexport type ChatbotDeviceProps = {\n verticalPosition?: 'top' | 'bottom'\n pushContentDown?: boolean\n /**\n * Horizontal position on desktop.\n * Can be a predefined value ('left', 'right', 'center') or a custom value with any unit (e.g., '20px', '10%', '2rem', 'calc(100% - 200px)').\n * When using a custom value, it will be applied as the 'left' property.\n * Default: undefined (uses parent container positioning)\n */\n horizontalPosition?: 'left' | 'right' | 'center' | string\n /** Height in px of the bar when pushContentDown (closed state). Default: 32. */\n pushContentDownBarHeight?: number\n}\n\nconst DEFAULT_PUSH_DOWN_BAR_HEIGHT = 32\n\nexport const ChatbotDevice = ({\n verticalPosition = 'bottom',\n pushContentDown = false,\n horizontalPosition,\n pushContentDownBarHeight = DEFAULT_PUSH_DOWN_BAR_HEIGHT,\n}: ChatbotDeviceProps) => {\n const { opened } = useChatbot()\n const chatFeedbackBox = useChatFeedbackBox()\n const barH = pushContentDownBarHeight\n\n return (\n <S.Wrapper\n $opened={opened}\n $verticalPosition={verticalPosition}\n $pushContentDown={pushContentDown}\n $horizontalPosition={horizontalPosition}\n $pushContentDownBarHeight={barH}\n >\n <ChatUserFeedbackRating chatFeedbackBox={chatFeedbackBox} />\n <ChatbotHeader chatFeedbackBox={chatFeedbackBox} />\n <ChatbotBody />\n <ChatbotFooter />\n <ChatbotToggle\n verticalPosition={verticalPosition}\n opened={opened}\n pushContentDown={pushContentDown}\n pushContentDownBarHeight={barH}\n />\n </S.Wrapper>\n )\n}\n\nexport default ChatbotDevice\n", "import { breakpoints, screens } from '@ibti-tech/ui'\nimport { css, styled } from 'styled-components'\n\nexport const Wrapper = styled.div<{\n $opened: boolean\n $verticalPosition: 'top' | 'bottom'\n $pushContentDown?: boolean\n $horizontalPosition?: 'left' | 'right' | 'center' | string\n $pushContentDownBarHeight?: number\n}>`\n /* Base styles */\n width: 100%;\n background-color: ${props => props.theme.colors.layers[1].background};\n border: 1px solid ${props => props.theme.colors.layers[1].border};\n display: flex;\n flex-direction: column;\n transition: ${props => props.theme.transitionDurations.fast};\n overflow: hidden;\n pointer-events: all;\n box-sizing: border-box;\n position: relative;\n \n /* Default height - will be overridden by specific states */\n ${props => {\n const barH = props.$pushContentDownBarHeight ?? 32\n if (props.$pushContentDown && props.$verticalPosition === 'top') {\n // When pushContentDown, height is controlled by opened/closed state\n if (!props.$opened) {\n return css`\n height: ${barH}px;\n `\n }\n // When opened, height will be set by opened state styles below\n return css`\n height: auto;\n `\n }\n return css`\n height: 100vh;\n max-height: calc(100vh - 45px);\n `\n }}\n \n /* Typography */\n font-family: 'Montserrat', sans-serif !important;\n font-weight: 600 !important;\n\n * {\n font-family: 'Montserrat', sans-serif !important;\n }\n\n *:not(b):not(strong):not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {\n font-weight: 600 !important;\n }\n\n /* Mobile styles */\n @media screen and (max-width: ${breakpoints.tablet}px) {\n ${props => props.$opened && props.$verticalPosition === 'top' && css`\n max-height: 100vh !important;\n height: 100vh !important;\n `}\n \n ${props =>\n props.$opened && props.$verticalPosition === 'bottom'\n ? css`\n max-height: 100vh;\n `\n : ''}\n \n ${props =>\n props.$opened && props.$verticalPosition === 'top'\n ? css`\n max-height: 100vh !important;\n height: 100vh !important;\n width: 100% !important;\n transform: none !important;\n position: relative !important;\n `\n : ''}\n }\n\n /* Border radius based on vertical position */\n ${props =>\n props.$verticalPosition === 'top'\n ? css`\n border-end-end-radius: ${props.theme.borderRadius.medium};\n border-end-start-radius: ${props.theme.borderRadius.medium};\n `\n : css`\n border-start-end-radius: ${props.theme.borderRadius.medium};\n border-start-start-radius: ${props.theme.borderRadius.medium};\n `}\n\n /* Desktop styles */\n ${screens.tablet} {\n /* Height when closed with pushContentDown vs opened */\n ${props => {\n const barH = props.$pushContentDownBarHeight ?? 32\n if (props.$pushContentDown && props.$verticalPosition === 'top') {\n if (!props.$opened) {\n return css`\n height: ${barH}px !important;\n max-height: ${barH}px !important;\n min-height: ${barH}px !important;\n `\n } else {\n return css`\n height: 500px !important;\n max-height: 500px !important;\n `\n }\n }\n return css`\n height: 500px;\n `\n }}\n \n max-width: ${breakpoints.mobileL}px;\n \n /* Horizontal positioning on desktop - same for overlay and pushContentDown */\n ${props => {\n if (!props.$horizontalPosition) return ''\n\n // Predefined values: use margin for alignment\n if (props.$horizontalPosition === 'left') {\n return css`\n margin-left: 0;\n margin-right: auto;\n `\n }\n if (props.$horizontalPosition === 'right') {\n return css`\n margin-left: auto;\n margin-right: 0;\n `\n }\n if (props.$horizontalPosition === 'center') {\n return css`\n margin-left: auto;\n margin-right: auto;\n `\n }\n\n // Custom values: use left property with any unit (px, %, rem, calc, etc.)\n // Maintain fixed width to prevent button from shrinking\n return css`\n left: ${props.$horizontalPosition};\n width: ${breakpoints.mobileL}px;\n min-width: ${breakpoints.mobileL}px;\n `\n }}\n }\n\n /* Closed state styles */\n ${props => {\n const barH = props.$pushContentDownBarHeight ?? 32\n return !props.$opened &&\n (props.$verticalPosition === 'top'\n ? css`\n ${props.$pushContentDown\n ? css`\n /* Push content down mode: show only toggle button - based on commit 8379cc8 */\n height: ${barH}px !important;\n max-height: ${barH}px !important;\n min-height: ${barH}px !important;\n transform: none !important;\n overflow: visible !important;\n ${screens.tablet} {\n height: ${barH}px !important;\n max-height: ${barH}px !important;\n min-height: ${barH}px !important;\n transform: none !important;\n }\n > *:not(:last-child) {\n display: none !important;\n }\n > *:last-child {\n flex-shrink: 0 !important;\n min-height: ${barH}px !important;\n height: ${barH}px !important;\n max-height: ${barH}px !important;\n width: 100% !important;\n min-width: 100% !important;\n max-width: 100% !important;\n pointer-events: all !important;\n cursor: pointer !important;\n }\n `\n : css`\n /* Overlay mode: translate up to show only toggle button - based on commit 8379cc8 */\n transform: translateY(calc(-100% + ${barH}px));\n `}\n `\n : css`\n /* Bottom position: translate down to show only toggle button */\n transform: translateY(calc(100% - ${barH}px));\n width: 100%;\n \n ${screens.tablet} {\n width: ${breakpoints.mobileL}px;\n max-width: ${breakpoints.mobileL}px;\n min-width: ${breakpoints.mobileL}px;\n }\n \n > *:not(:last-child) {\n display: none;\n }\n \n > *:last-child {\n flex-shrink: 0;\n min-height: ${barH}px;\n height: ${barH}px;\n width: 100%;\n }\n `)\n }}\n \n /* Opened state styles when pushContentDown is true - must come after closed state */\n /* Chat overlays (Bar is fixed); same internal layout as overlay \u2014 no display overrides */\n ${props =>\n props.$opened &&\n props.$pushContentDown &&\n props.$verticalPosition === 'top' &&\n css`\n overflow: hidden !important;\n transform: none !important;\n \n ${screens.tablet} {\n height: 500px !important;\n max-height: 500px !important;\n min-height: 500px !important;\n overflow: hidden !important;\n }\n \n @media screen and (max-width: ${breakpoints.tablet}px) {\n height: 100vh !important;\n max-height: 100vh !important;\n min-height: 100vh !important;\n overflow: hidden !important;\n }\n `}\n`\n", "import React from 'react'\nimport * as S from './styles'\nimport { BotIcon } from '../BotIcon'\nimport { useChatbotTexts } from 'hooks/useChatbotTexts'\nimport ChatbotStatusLabel from 'components/ChatbotStatusLabel'\nimport { Button } from '@ibti-tech/ui'\nimport { useChatFeedbackBox } from 'contexts/Chatbot/useChatFeedbackBox'\n\nexport type ChatbotHeaderProps = {\n chatFeedbackBox: ReturnType<typeof useChatFeedbackBox>\n}\n\nexport const ChatbotHeader = ({ chatFeedbackBox }: ChatbotHeaderProps) => {\n const texts = useChatbotTexts()\n\n return (\n <S.Wrapper>\n <S.ProfileImage>\n <BotIcon />\n </S.ProfileImage>\n <S.ProfileInfo>\n <S.Name>{texts.CHATBOT_NAME}</S.Name>\n <ChatbotStatusLabel />\n </S.ProfileInfo>\n <Button\n label={texts.CHAT_FEEDBACK.RATE}\n onClick={chatFeedbackBox.open}\n size=\"small\"\n layer={2}\n variant=\"layerBased\"\n />\n </S.Wrapper>\n )\n}\n\nexport default ChatbotHeader\n", "import { styled } from 'styled-components'\n\nexport const Name = styled.span`\n color: ${props => props.theme.colors.content.title};\n font-weight: 700;\n`\n\nexport const ProfileInfo = styled.div`\n display: flex;\n flex-direction: column;\n margin-right: auto;\n`\n\nexport const ProfileImage = styled.span`\n height: 2.5rem;\n width: 2.5rem;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ${props => props.theme.colors.palette.primary.normal};\n font-size: 1.5rem;\n border-radius: ${props => props.theme.borderRadius.circle};\n\n svg {\n color: white;\n }\n`\n\nexport const Wrapper = styled.div`\n background: ${props =>\n props.theme.colors.custom?.headerBackground ??\n props.theme.colors.layers[2].background};\n border: 1px solid ${props => props.theme.colors.layers[2].border};\n display: flex;\n padding: ${props => props.theme.spacing.components.small};\n gap: ${props => props.theme.spacing.components.small};\n font-family: 'Montserrat', sans-serif !important;\n font-weight: 600 !important;\n\n * {\n font-family: 'Montserrat', sans-serif !important;\n }\n\n *:not(b):not(strong):not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {\n font-weight: 600 !important;\n }\n`\n", "import React from 'react'\nimport useChatbot from 'contexts/Chatbot/useChatbot'\nimport { getEmbedIconComponent } from './embedIcons'\n\nconst DefaultBotSvg = () => (\n <svg viewBox=\"0 0 24 24\" width=\"1em\" height=\"1em\">\n <path\n d=\"M17.7530511,13.999921 C18.9956918,13.999921 20.0030511,15.0072804 20.0030511,16.249921 L20.0030511,17.1550008 C20.0030511,18.2486786 19.5255957,19.2878579 18.6957793,20.0002733 C17.1303315,21.344244 14.8899962,22.0010712 12,22.0010712 C9.11050247,22.0010712 6.87168436,21.3444691 5.30881727,20.0007885 C4.48019625,19.2883988 4.00354153,18.2500002 4.00354153,17.1572408 L4.00354153,16.249921 C4.00354153,15.0072804 5.01090084,13.999921 6.25354153,13.999921 L17.7530511,13.999921 Z M11.8985607,2.00734093 L12.0003312,2.00049432 C12.380027,2.00049432 12.6938222,2.2826482 12.7434846,2.64872376 L12.7503312,2.75049432 L12.7495415,3.49949432 L16.25,3.5 C17.4926407,3.5 18.5,4.50735931 18.5,5.75 L18.5,10.254591 C18.5,11.4972317 17.4926407,12.504591 16.25,12.504591 L7.75,12.504591 C6.50735931,12.504591 5.5,11.4972317 5.5,10.254591 L5.5,5.75 C5.5,4.50735931 6.50735931,3.5 7.75,3.5 L11.2495415,3.49949432 L11.2503312,2.75049432 C11.2503312,2.37079855 11.5324851,2.05700336 11.8985607,2.00734093 L12.0003312,2.00049432 L11.8985607,2.00734093 Z M9.74928905,6.5 C9.05932576,6.5 8.5,7.05932576 8.5,7.74928905 C8.5,8.43925235 9.05932576,8.99857811 9.74928905,8.99857811 C10.4392523,8.99857811 10.9985781,8.43925235 10.9985781,7.74928905 C10.9985781,7.05932576 10.4392523,6.5 9.74928905,6.5 Z M14.2420255,6.5 C13.5520622,6.5 12.9927364,7.05932576 12.9927364,7.74928905 C12.9927364,8.43925235 13.5520622,8.99857811 14.2420255,8.99857811 C14.9319888,8.99857811 15.4913145,8.43925235 15.4913145,7.74928905 C15.4913145,7.05932576 14.9319888,6.5 14.2420255,6.5 Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\nexport const BotIcon = () => {\n const { icon: iconName } = useChatbot()\n const IconComponent = getEmbedIconComponent(iconName)\n\n if (IconComponent) {\n return <IconComponent size={20} strokeWidth={1.8} />\n }\n\n return <DefaultBotSvg />\n}\n", "export default {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n};\n", "import { forwardRef, createElement, ReactSVG, SVGProps, ForwardRefExoticComponent, RefAttributes } from 'react';\nimport defaultAttributes from './defaultAttributes';\n\nexport type IconNode = [elementName: keyof ReactSVG, attrs: Record<string, string>][]\n\nexport type SVGAttributes = Partial<SVGProps<SVGSVGElement>>\ntype ComponentAttributes = RefAttributes<SVGSVGElement> & SVGAttributes\n\nexport interface LucideProps extends ComponentAttributes {\n size?: string | number\n absoluteStrokeWidth?: boolean\n}\n\nexport type LucideIcon = ForwardRefExoticComponent<LucideProps>;\n/**\n * Converts string to KebabCase\n * Copied from scripts/helper. If anyone knows how to properly import it here\n * then please fix it.\n *\n * @param {string} string\n * @returns {string} A kebabized string\n */\nexport const toKebabCase = (string: string) => string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n\nconst createLucideIcon = (iconName: string, iconNode: IconNode): LucideIcon => {\n const Component = forwardRef<SVGSVGElement, LucideProps>(\n ({ color = 'currentColor', size = 24, strokeWidth = 2, absoluteStrokeWidth, children, ...rest }, ref) =>\n createElement(\n 'svg',\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: `lucide lucide-${toKebabCase(iconName)}`,\n ...rest,\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(\n (Array.isArray(children) ? children : [children]) || []\n )\n ],\n ),\n );\n\n Component.displayName = `${iconName}`;\n\n return Component;\n};\n\nexport default createLucideIcon\n", "import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Bot\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTAiIHg9IjMiIHk9IjExIiByeD0iMiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjUiIHI9IjIiIC8+CiAgPHBhdGggZD0iTTEyIDd2NCIgLz4KICA8bGluZSB4MT0iOCIgeDI9IjgiIHkxPSIxNiIgeTI9IjE2IiAvPgogIDxsaW5lIHgxPSIxNiIgeDI9IjE2IiB5MT0iMTYiIHkyPSIxNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/bot\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Bot = createLucideIcon('Bot', [\n [\n 'rect',\n { width: '18', height: '10', x: '3', y: '11', rx: '2', key: '1ofdy3' },\n ],\n ['circle', { cx: '12', cy: '5', r: '2', key: 'f1ur92' }],\n ['path', { d: 'M12 7v4', key: 'xawao1' }],\n ['line', { x1: '8', x2: '8', y1: '16', y2: '16', key: 'h6x27f' }],\n ['line', { x1: '16', x2: '16', y1: '16', y2: '16', key: '5lty7f' }],\n]);\n\nexport default Bot;\n", "import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Copy\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHg9IjgiIHk9IjgiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/copy\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Copy = createLucideIcon('Copy', [\n [\n 'rect',\n {\n width: '14',\n height: '14',\n x: '8',\n y: '8',\n rx: '2',\n ry: '2',\n key: '17jyea',\n },\n ],\n [\n 'path',\n {\n d: 'M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2',\n key: 'zix9uf',\n },\n ],\n]);\n\nexport default Copy;\n", "import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Headphones\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxNGgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtN2E5IDkgMCAwIDEgMTggMHY3YTIgMiAwIDAgMS0yIDJoLTFhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/headphones\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Headphones = createLucideIcon('Headphones', [\n [\n 'path',\n {\n d: 'M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3',\n key: '1xhozi',\n },\n ],\n]);\n\nexport default Headphones;\n", "import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name HelpCircle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNOS4wOSA5YTMgMyAwIDAgMSA1LjgzIDFjMCAyLTMgMy0zIDMiIC8+CiAgPHBhdGggZD0iTTEyIDE3aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/help-circle\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst HelpCircle = createLucideIcon('HelpCircle', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3', key: '1u773s' }],\n ['path', { d: 'M12 17h.01', key: 'p32p05' }],\n]);\n\nexport default HelpCircle;\n", "import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name MessageCircle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyAyMSAxLjktNS43YTguNSA4LjUgMCAxIDEgMy44IDMuOHoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/message-circle\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst MessageCircle = createLucideIcon('MessageCircle', [\n ['path', { d: 'm3 21 1.9-5.7a8.5 8.5 0 1 1 3.8 3.8z', key: 'v2veuj' }],\n]);\n\nexport default MessageCircle;\n", "import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name MessageSquareDashed\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA2VjVjMC0xLjEuOS0yIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik0xMSAzaDMiIC8+CiAgPHBhdGggZD0iTTE4IDNoMWMxLjEgMCAyIC45IDIgMiIgLz4KICA8cGF0aCBkPSJNMjEgOXYyIiAvPgogIDxwYXRoIGQ9Ik0yMSAxNWMwIDEuMS0uOSAyLTIgMmgtMSIgLz4KICA8cGF0aCBkPSJNMTQgMTdoLTMiIC8+CiAgPHBhdGggZD0ibTcgMTctNCA0di01IiAvPgogIDxwYXRoIGQ9Ik0zIDEydi0yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/message-square-dashed\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst MessageSquareDashed = createLucideIcon('MessageSquareDashed', [\n ['path', { d: 'M3 6V5c0-1.1.9-2 2-2h2', key: '9usibi' }],\n ['path', { d: 'M11 3h3', key: '1c3ji7' }],\n ['path', { d: 'M18 3h1c1.1 0 2 .9 2 2', key: '19esxn' }],\n ['path', { d: 'M21 9v2', key: 'p14lih' }],\n ['path', { d: 'M21 15c0 1.1-.9 2-2 2h-1', key: '1fo1j8' }],\n ['path', { d: 'M14 17h-3', key: '1w4p2m' }],\n ['path', { d: 'm7 17-4 4v-5', key: 'ph9x1h' }],\n ['path', { d: 'M3 12v-2', key: '856n1q' }],\n]);\n\nexport default MessageSquareDashed;\n", "import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name MessageSquarePlus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTVhMiAyIDAgMCAxLTIgMkg3bC00IDRWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ6IiAvPgogIDxsaW5lIHgxPSI5IiB4Mj0iMTUiIHkxPSIxMCIgeTI9IjEwIiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iNyIgeTI9IjEzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/message-square-plus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst MessageSquarePlus = createLucideIcon('MessageSquarePlus', [\n [\n 'path',\n {\n d: 'M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z',\n key: '1lielz',\n },\n ],\n ['line', { x1: '9', x2: '15', y1: '10', y2: '10', key: '1lj1wd' }],\n ['line', { x1: '12', x2: '12', y1: '7', y2: '13', key: '1cppfj' }],\n]);\n\nexport default MessageSquarePlus;\n", "import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name MessageSquare\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTVhMiAyIDAgMCAxLTIgMkg3bC00IDRWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/message-square\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst MessageSquare = createLucideIcon('MessageSquare', [\n [\n 'path',\n {\n d: 'M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z',\n key: '1lielz',\n },\n ],\n]);\n\nexport default MessageSquare;\n", "import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name RotateCw\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTJhOSA5IDAgMSAxLTktOWMyLjUyIDAgNC45MyAxIDYuNzQgMi43NEwyMSA4IiAvPgogIDxwYXRoIGQ9Ik0yMSAzdjVoLTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/rotate-cw\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst RotateCw = createLucideIcon('RotateCw', [\n [\n 'path',\n { d: 'M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8', key: '1p45f6' },\n ],\n ['path', { d: 'M21 3v5h-5', key: '1q7to0' }],\n]);\n\nexport default RotateCw;\n", "import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Share2\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjUiIHI9IjMiIC8+CiAgPGNpcmNsZSBjeD0iNiIgY3k9IjEyIiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTkiIHI9IjMiIC8+CiAgPGxpbmUgeDE9IjguNTkiIHgyPSIxNS40MiIgeTE9IjEzLjUxIiB5Mj0iMTcuNDkiIC8+CiAgPGxpbmUgeDE9IjE1LjQxIiB4Mj0iOC41OSIgeTE9IjYuNTEiIHkyPSIxMC40OSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/share-2\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Share2 = createLucideIcon('Share2', [\n ['circle', { cx: '18', cy: '5', r: '3', key: 'gq8acd' }],\n ['circle', { cx: '6', cy: '12', r: '3', key: 'w7nqdw' }],\n ['circle', { cx: '18', cy: '19', r: '3', key: '1xt0gg' }],\n [\n 'line',\n { x1: '8.59', x2: '15.42', y1: '13.51', y2: '17.49', key: '47mynk' },\n ],\n ['line', { x1: '15.41', x2: '8.59', y1: '6.51', y2: '10.49', key: '1n3mei' }],\n]);\n\nexport default Share2;\n", "import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Sparkles\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTIgMy0xLjkxMiA1LjgxM2EyIDIgMCAwIDEtMS4yNzUgMS4yNzVMMyAxMmw1LjgxMyAxLjkxMmEyIDIgMCAwIDEgMS4yNzUgMS4yNzVMMTIgMjFsMS45MTItNS44MTNhMiAyIDAgMCAxIDEuMjc1LTEuMjc1TDIxIDEybC01LjgxMy0xLjkxMmEyIDIgMCAwIDEtMS4yNzUtMS4yNzVMMTIgM1oiIC8+CiAgPHBhdGggZD0iTTUgM3Y0IiAvPgogIDxwYXRoIGQ9Ik0xOSAxN3Y0IiAvPgogIDxwYXRoIGQ9Ik0zIDVoNCIgLz4KICA8cGF0aCBkPSJNMTcgMTloNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/sparkles\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Sparkles = createLucideIcon('Sparkles', [\n [\n 'path',\n {\n d: 'm12 3-1.912 5.813a2 2 0 0 1-1.275 1.275L3 12l5.813 1.912a2 2 0 0 1 1.275 1.275L12 21l1.912-5.813a2 2 0 0 1 1.275-1.275L21 12l-5.813-1.912a2 2 0 0 1-1.275-1.275L12 3Z',\n key: '17u4zn',\n },\n ],\n ['path', { d: 'M5 3v4', key: 'bklmnn' }],\n ['path', { d: 'M19 17v4', key: 'iiml17' }],\n ['path', { d: 'M3 5h4', key: 'nem4j1' }],\n ['path', { d: 'M17 19h4', key: 'lbex7p' }],\n]);\n\nexport default Sparkles;\n", "/**\n * Map of embed icon names to Lucide React components.\n * Must match the icons offered in the admin embed page (EmbedIconName).\n * Only use icons that exist in this package version (lucide-react 0.263.x).\n */\n\nimport {\n Bot,\n MessageCircle,\n MessageSquare,\n MessageSquarePlus,\n MessageSquareDashed,\n Sparkles,\n Headphones,\n HelpCircle,\n type LucideIcon,\n} from 'lucide-react'\n\nexport const EMBED_ICON_MAP: Record<string, LucideIcon> = {\n Bot,\n MessageCircle,\n MessageSquare,\n MessageSquarePlus,\n MessageSquareDashed,\n Sparkles,\n Headphones,\n HelpCircle,\n}\n\nexport function getEmbedIconComponent(name: string | undefined): LucideIcon | null {\n if (!name) return null\n return EMBED_ICON_MAP[name] ?? null\n}\n", "import { useChatbot } from 'contexts/Chatbot/useChatbot'\nimport { i18n } from 'i18n'\nimport { LocaleTerms } from 'i18n/LocaleTerms'\nimport { ChatbotTypes } from 'types'\n\n/**\n * Hook to get chatbot texts, using custom texts if provided, otherwise using default i18n texts\n */\nexport const useChatbotTexts = (): LocaleTerms => {\n const { locale, texts } = useChatbot()\n const defaultTexts = i18n[locale]\n\n // If no custom texts provided, return default texts\n if (!texts || !texts[locale]) {\n return defaultTexts\n }\n\n const customTexts = texts[locale]\n\n // Helper function to get custom text or default, treating empty strings as undefined\n const getText = (custom?: string, defaultValue: string = '') =>\n custom && custom.trim() !== '' ? custom : defaultValue\n\n // Merge custom texts with default texts, giving priority to custom texts\n return {\n CHATBOT_NAME: getText(\n customTexts.CHATBOT_NAME,\n defaultTexts.CHATBOT_NAME,\n ),\n INPUT_PLACEHOLDER: getText(\n customTexts.INPUT_PLACEHOLDER,\n defaultTexts.INPUT_PLACEHOLDER,\n ),\n CHATBOT_BAR: {\n OPEN: getText(\n customTexts.CHATBOT_BAR?.OPEN,\n defaultTexts.CHATBOT_BAR.OPEN,\n ),\n CLOSE: getText(\n customTexts.CHATBOT_BAR?.CLOSE,\n defaultTexts.CHATBOT_BAR.CLOSE,\n ),\n },\n CHAT_FEEDBACK: {\n TITLE: getText(\n customTexts.CHAT_FEEDBACK?.TITLE,\n defaultTexts.CHAT_FEEDBACK.TITLE,\n ),\n DESCRIPTION: getText(\n customTexts.CHAT_FEEDBACK?.DESCRIPTION,\n defaultTexts.CHAT_FEEDBACK.DESCRIPTION,\n ),\n MESSAGE_FIELD: getText(\n customTexts.CHAT_FEEDBACK?.MESSAGE_FIELD,\n defaultTexts.CHAT_FEEDBACK.MESSAGE_FIELD,\n ),\n SUBMIT_BUTTON: getText(\n customTexts.CHAT_FEEDBACK?.SUBMIT_BUTTON,\n defaultTexts.CHAT_FEEDBACK.SUBMIT_BUTTON,\n ),\n CLOSE_BUTTON: getText(\n customTexts.CHAT_FEEDBACK?.CLOSE_BUTTON,\n defaultTexts.CHAT_FEEDBACK.CLOSE_BUTTON,\n ),\n RATE: getText(\n customTexts.CHAT_FEEDBACK?.RATE,\n defaultTexts.CHAT_FEEDBACK.RATE,\n ),\n },\n SUGGESTED_QUESTIONS: {\n TITLE: getText(\n customTexts.SUGGESTED_QUESTIONS?.TITLE,\n defaultTexts.SUGGESTED_QUESTIONS.TITLE,\n ),\n LOADING: getText(\n customTexts.SUGGESTED_QUESTIONS?.LOADING,\n defaultTexts.SUGGESTED_QUESTIONS.LOADING,\n ),\n },\n STATUS: {\n ONLINE: getText(customTexts.STATUS?.ONLINE, defaultTexts.STATUS.ONLINE),\n LOADING: getText(\n customTexts.STATUS?.LOADING,\n defaultTexts.STATUS.LOADING,\n ),\n WRITING: getText(\n customTexts.STATUS?.WRITING,\n defaultTexts.STATUS.WRITING,\n ),\n UNAVAILABLE: getText(\n customTexts.STATUS?.UNAVAILABLE,\n defaultTexts.STATUS.UNAVAILABLE,\n ),\n INACTIVE: getText(\n customTexts.STATUS?.INACTIVE,\n defaultTexts.STATUS.INACTIVE,\n ),\n },\n ERRORS: {\n UNKNOWN: getText(\n customTexts.ERRORS?.UNKNOWN,\n defaultTexts.ERRORS.UNKNOWN,\n ),\n },\n MESSAGE_ACTIONS: {\n COPY: getText(\n customTexts.MESSAGE_ACTIONS?.COPY,\n defaultTexts.MESSAGE_ACTIONS.COPY,\n ),\n SHARE: getText(\n customTexts.MESSAGE_ACTIONS?.SHARE,\n defaultTexts.MESSAGE_ACTIONS.SHARE,\n ),\n RESEND: getText(\n customTexts.MESSAGE_ACTIONS?.RESEND,\n defaultTexts.MESSAGE_ACTIONS.RESEND,\n ),\n },\n USER_LABEL: getText(\n customTexts.USER_LABEL,\n defaultTexts.USER_LABEL,\n ),\n WRITING_MESSAGE: getText(\n customTexts.WRITING_MESSAGE,\n defaultTexts.WRITING_MESSAGE,\n ),\n }\n}\n", "import React from 'react'\nimport * as S from './styles'\nimport { useChatbotTexts } from 'hooks/useChatbotTexts'\nimport useChatbot from 'contexts/Chatbot/useChatbot'\nimport { useTheme } from 'styled-components'\n\nexport type ChatbotStatusLabelProps = {}\n\nexport const ChatbotStatusLabel = ({ }: ChatbotStatusLabelProps) => {\n const { status, apiConnectionError } = useChatbot()\n const texts = useChatbotTexts()\n const theme = useTheme()\n\n const statusLabel = {\n online: texts.STATUS.ONLINE,\n loading: texts.STATUS.LOADING,\n writing: texts.STATUS.WRITING,\n unavailable: apiConnectionError\n ? texts.STATUS.INACTIVE\n : texts.STATUS.UNAVAILABLE,\n } as const\n\n const statusColor = {\n online: theme.colors.palette.success.normal,\n loading: theme.colors.palette.warning.normal,\n writing: theme.colors.palette.warning.normal,\n unavailable: theme.colors.palette.error.normal,\n } as const\n\n return (\n <S.Wrapper $signalColor={statusColor[status]}>\n {statusLabel[status]}\n </S.Wrapper>\n )\n}\n\nexport default ChatbotStatusLabel\n", "import { styled } from 'styled-components'\n\nexport const Wrapper = styled.span<{ $signalColor: string }>`\n color: ${props => props.theme.colors.content.detail};\n font-size: ${props => props.theme.fontSizes.small};\n font-family: 'Montserrat', sans-serif !important;\n font-weight: 600 !important;\n\n * {\n font-family: 'Montserrat', sans-serif !important;\n font-weight: 600 !important;\n }\n\n &::before {\n content: '';\n display: inline-block;\n height: 8px;\n width: 8px;\n border-radius: 4px;\n background: ${props => props.$signalColor};\n margin-right: 4px;\n }\n`\n", "import React, { useEffect, useRef } from 'react'\nimport * as S from './styles'\nimport MessageBalloon from 'components/MessageBalloon'\nimport WritingIndicator from 'components/WritingIndicator'\nimport { useChatbot } from 'contexts/Chatbot/useChatbot'\nimport { useElementScroll } from 'hooks/useElementScroll'\nimport { useUpdatedTime } from 'hooks/useUpdatedTime'\nimport { useI18n } from 'hooks/useI18n'\nimport SuggestedQuestions from 'components/SuggestedQuestions'\nimport { CUSTOM_EVENT_NAMES } from 'events/eventNames'\n\nexport type ChatbotBodyProps = {}\n\nexport const ChatbotBody = ({}) => {\n const {\n chatMessages,\n suggestedQuestions,\n loading,\n initializationStatus,\n domainAllowed,\n } = useChatbot()\n const i18n = useI18n()\n const scrollableElementRef = useRef<HTMLDivElement>(null)\n const { scrollProgress, scrollToEnd } = useElementScroll(scrollableElementRef)\n const { dateUTC } = useUpdatedTime({ intervalInSeconds: 15 })\n\n const showDomainError = !domainAllowed && initializationStatus === 'domain_not_allowed'\n const showInitError = initializationStatus === 'error'\n const showLoading = initializationStatus === 'loading'\n\n useEffect(() => {\n if (scrollProgress > 85) scrollToEnd()\n\n document.addEventListener(\n CUSTOM_EVENT_NAMES.ASSISTANT_ANSWER_FINISHED,\n scrollToEnd,\n )\n\n return () => {\n document.removeEventListener(\n CUSTOM_EVENT_NAMES.ASSISTANT_ANSWER_FINISHED,\n scrollToEnd,\n )\n }\n }, [chatMessages, suggestedQuestions])\n\n useEffect(() => {\n if (loading) {\n scrollToEnd()\n }\n }, [loading, scrollToEnd])\n\n if (showLoading) {\n return (\n <S.Wrapper ref={scrollableElementRef}>\n <S.MessagesList>\n <WritingIndicator />\n </S.MessagesList>\n </S.Wrapper>\n )\n }\n\n if (showDomainError || showInitError) {\n const errorMessage =\n showDomainError\n ? (i18n.ERRORS.DOMAIN_NOT_ALLOWED ?? 'O chatbot n\u00E3o est\u00E1 dispon\u00EDvel neste dom\u00EDnio.')\n : (i18n.ERRORS.CHATBOT_NOT_FOUND ?? 'Chatbot n\u00E3o encontrado. Verifique a configura\u00E7\u00E3o.')\n return (\n <S.Wrapper ref={scrollableElementRef}>\n <S.MessagesList>\n <MessageBalloon\n key=\"init-error\"\n data={{\n id: 'init-error',\n timestamp: new Date().toUTCString(),\n role: 'assistant',\n content: errorMessage,\n error: true,\n }}\n currentDateUTC={dateUTC}\n />\n </S.MessagesList>\n </S.Wrapper>\n )\n }\n\n return (\n <S.Wrapper ref={scrollableElementRef}>\n <S.MessagesList>\n {chatMessages.map(msgData => (\n <MessageBalloon\n key={msgData.id}\n data={msgData}\n currentDateUTC={dateUTC}\n />\n ))}\n {loading && <WritingIndicator />}\n </S.MessagesList>\n <SuggestedQuestions />\n </S.Wrapper>\n )\n}\n\nexport default ChatbotBody\n", "import { styled } from 'styled-components'\n\nexport const ChatbotInput = styled.div``\n\nexport const MessagesList = styled.ul`\n padding: ${props => props.theme.spacing.components.medium}\n ${props => props.theme.spacing.components.large}\n ${props => props.theme.spacing.components.large}\n ${props => props.theme.spacing.components.medium};\n display: flex;\n flex-direction: column;\n gap: 0;\n width: 100%;\n box-sizing: border-box;\n list-style: none;\n margin: 0;\n`\n\nexport const Wrapper = styled.div`\n overflow-x: hidden;\n overflow-y: auto;\n flex: 1;\n min-width: 0;\n height: 100%;\n padding-right: ${props => props.theme.spacing.components.small};\n font-family: 'Montserrat', sans-serif !important;\n font-weight: 600 !important;\n\n * {\n font-family: 'Montserrat', sans-serif !important;\n }\n\n *:not(b):not(strong):not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {\n font-weight: 600 !important;\n }\n\n /* Custom scrollbar styles */\n &::-webkit-scrollbar {\n width: 8px;\n }\n\n &::-webkit-scrollbar-track {\n background: transparent;\n }\n\n &::-webkit-scrollbar-thumb {\n background: ${props => props.theme.colors.palette.primary.normal};\n border-radius: 4px;\n }\n\n &::-webkit-scrollbar-thumb:hover {\n opacity: 0.8;\n }\n\n /* Firefox */\n scrollbar-width: thin;\n scrollbar-color: ${props => props.theme.colors.palette.primary.normal} transparent;\n`\n", "import React, { useState, useRef, useEffect } from 'react'\nimport * as S from './styles'\nimport { ChatbotTypes } from 'types'\nimport { useChatbotTexts } from 'hooks/useChatbotTexts'\nimport { formatMessageTime } from 'utils/formatMessageTime'\nimport useChatbot from 'contexts/Chatbot/useChatbot'\nimport Markdown from 'react-markdown'\nimport { CircleExclamationIcon } from '@ibti-tech/ui'\nimport { Copy, Share2, RotateCw } from 'lucide-react'\n\nexport type MessageBalloonProps = {\n data: ChatbotTypes.ChatMessage\n currentDateUTC: string\n}\n\nconst messageTypes = {\n assistant: 'received',\n user: 'sent',\n} as const\n\nexport const MessageBalloon = ({\n data,\n currentDateUTC,\n}: MessageBalloonProps) => {\n const messageType = messageTypes[data.role]\n const texts = useChatbotTexts()\n const { locale, makeQuestion } = useChatbot()\n const [isHovered, setIsHovered] = useState(false)\n const [showTooltip, setShowTooltip] = useState<string | null>(null)\n const [copied, setCopied] = useState(false)\n const copyTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n\n useEffect(() => {\n return () => {\n if (copyTimeoutRef.current) {\n clearTimeout(copyTimeoutRef.current)\n }\n }\n }, [])\n\n const handleCopy = async () => {\n try {\n await navigator.clipboard.writeText(data.content)\n setCopied(true)\n setShowTooltip('copy')\n\n if (copyTimeoutRef.current) {\n clearTimeout(copyTimeoutRef.current)\n }\n\n copyTimeoutRef.current = setTimeout(() => {\n setCopied(false)\n setShowTooltip(prev => (prev === 'copy' ? null : prev))\n }, 2000)\n } catch (err) {\n console.error('Failed to copy:', err)\n }\n }\n\n const handleShare = async () => {\n if (navigator.share) {\n try {\n await navigator.share({\n title: texts.CHATBOT_NAME,\n text: data.content,\n })\n } catch (err) {\n // User cancelled or error occurred\n console.error('Failed to share:', err)\n }\n } else {\n // Fallback: copy to clipboard\n handleCopy()\n }\n }\n\n const handleResend = () => {\n if (data.role === 'user') {\n makeQuestion(data.content)\n }\n }\n\n return (\n <S.Wrapper $type={messageType}>\n {data.role == 'assistant' && <S.Label>{texts.CHATBOT_NAME}</S.Label>}\n {data.role == 'user' && <S.Label>{texts.USER_LABEL}</S.Label>}\n <S.BalloonAndActionsWrapper\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n $type={messageType}\n >\n <S.BalloonContainer $type={messageType}>\n <S.Balloon $type={messageType} $error={data.error}>\n {data.error && <CircleExclamationIcon />}\n <Markdown>{data.content}</Markdown>\n </S.Balloon>\n </S.BalloonContainer>\n <S.TimestampAndActionsRow $type={messageType}>\n <S.ActionsContainer\n $type={messageType}\n $isVisible={isHovered}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n {data.role === 'user' && (\n <S.ActionButton\n $messageType={messageType}\n onClick={handleResend}\n onMouseEnter={() => setShowTooltip('resend')}\n onMouseLeave={() => setShowTooltip(null)}\n aria-label={texts.MESSAGE_ACTIONS.RESEND}\n >\n <RotateCw size={14} />\n {showTooltip === 'resend' && (\n <S.Tooltip $messageType={messageType}>\n {texts.MESSAGE_ACTIONS.RESEND}\n </S.Tooltip>\n )}\n </S.ActionButton>\n )}\n <S.ActionButton\n $messageType={messageType}\n onClick={handleCopy}\n onMouseEnter={() => {\n if (!copied) {\n setShowTooltip('copy')\n }\n }}\n onMouseLeave={() => {\n if (!copied) {\n setShowTooltip(null)\n }\n }}\n aria-label={texts.MESSAGE_ACTIONS.COPY}\n >\n <Copy size={14} />\n {(showTooltip === 'copy' || copied) && (\n <S.Tooltip $messageType={messageType}>\n {copied\n ? locale === 'pt-BR'\n ? 'Copiado!'\n : 'Copied!'\n : texts.MESSAGE_ACTIONS.COPY}\n </S.Tooltip>\n )}\n </S.ActionButton>\n <S.ActionButton\n $messageType={messageType}\n onClick={handleShare}\n onMouseEnter={() => setShowTooltip('share')}\n onMouseLeave={() => setShowTooltip(null)}\n aria-label={texts.MESSAGE_ACTIONS.SHARE}\n >\n <Share2 size={14} />\n {showTooltip === 'share' && (\n <S.Tooltip $messageType={messageType}>\n {texts.MESSAGE_ACTIONS.SHARE}\n </S.Tooltip>\n )}\n </S.ActionButton>\n </S.ActionsContainer>\n <S.Time $type={messageType}>\n {formatMessageTime(data.timestamp, currentDateUTC, locale)}\n </S.Time>\n </S.TimestampAndActionsRow>\n </S.BalloonAndActionsWrapper>\n </S.Wrapper>\n )\n}\n\nexport default MessageBalloon\n", "import { mix } from 'polished'\nimport { css, styled } from 'styled-components'\n\nexport const Time = styled.span<{ $type: 'received' | 'sent' }>`\n font-size: ${props => props.theme.fontSizes.small};\n color: ${props => props.theme.colors.content.detail};\n white-space: nowrap;\n font-family: 'Montserrat', sans-serif !important;\n font-weight: 600 !important;\n\n ${({ $type }) => {\n switch ($type) {\n case 'received':\n return css`\n text-align: left;\n `\n default:\n case 'sent':\n return css`\n text-align: right;\n `\n }\n }}\n`\n\nexport const Balloon = styled.div<{\n $type: 'received' | 'sent'\n $error?: boolean\n}>`\n padding: ${props => props.theme.spacing.components.small};\n width: max-content;\n max-width: 100%;\n border-radius: ${props => props.theme.borderRadius.medium};\n position: relative;\n line-height: 1.5em;\n display: flex;\n gap: ${props => props.theme.spacing.components.small};\n font-family: 'Montserrat', sans-serif !important;\n font-weight: 600 !important;\n\n * {\n font-family: 'Montserrat', sans-serif !important;\n }\n\n p, li, span, div, code, pre {\n font-weight: 600 !important;\n }\n\n &::after {\n position: absolute;\n content: '';\n width: 0;\n height: 0;\n border-style: solid;\n }\n\n ${({ $type, $error }) => {\n switch ($type) {\n case 'received':\n return css`\n background: ${props => props.theme.colors.layers[2].background};\n color: ${props => props.theme.colors.content.text};\n border-top-left-radius: 0;\n\n ${$error &&\n css`\n color: ${props => props.theme.colors.palette.error.normal};\n `}\n\n &::after {\n border-width: 0px 10px 10px 0;\n border-color: transparent\n ${props => props.theme.colors.layers[2].background} transparent\n transparent;\n top: 0;\n left: -10px;\n }\n `\n case 'sent':\n return css`\n background: ${props =>\n props.theme.colors.custom?.userBalloonColor ??\n props.theme.colors.palette.primary.normal};\n color: white;\n border-top-right-radius: 0;\n text-align: left;\n\n &::after {\n border-width: 0px 0px 10px 10px;\n border-color: transparent transparent transparent\n ${props =>\n props.theme.colors.custom?.userBalloonColor ??\n props.theme.colors.palette.primary.normal};\n top: 0;\n right: -10px;\n }\n `\n }\n }}\n\n display: flex;\n ${({ $error }) =>\n $error\n ? css`\n flex-direction: row;\n align-items: center;\n gap: ${props => props.theme.spacing.components.small};\n\n & > *:first-of-type {\n flex-shrink: 0;\n }\n `\n : css`\n flex-direction: column;\n gap: 1.3em;\n `}\n\n p {\n margin: 0;\n color: inherit;\n }\n\n a {\n color: ${props => props.theme.colors.palette.primary.normal};\n font-weight: 700 !important;\n \n ${({ $type }) =>\n $type === 'sent' &&\n css`\n color: white;\n text-decoration: underline;\n `}\n }\n\n ol,\n ul {\n display: flex;\n flex-direction: column;\n gap: 1.3em;\n margin: 0;\n padding-left: 1.5em;\n color: inherit;\n }\n\n li {\n color: inherit;\n }\n\n code {\n background: ${props =>\n props.$type === 'received'\n ? props.theme.colors.layers[1].background\n : 'rgba(0, 0, 0, 0.2)'};\n color: inherit;\n padding: 0.2em 0.4em;\n border-radius: ${props => props.theme.borderRadius.small};\n font-size: 0.9em;\n }\n\n pre {\n background: ${props =>\n props.$type === 'received'\n ? props.theme.colors.layers[1].background\n : 'rgba(0, 0, 0, 0.2)'};\n color: inherit;\n padding: ${props => props.theme.spacing.components.small};\n border-radius: ${props => props.theme.borderRadius.small};\n overflow-x: auto;\n margin: 0;\n\n /* Custom scrollbar styles */\n &::-webkit-scrollbar {\n height: 8px;\n }\n\n &::-webkit-scrollbar-track {\n background: transparent;\n }\n\n &::-webkit-scrollbar-thumb {\n background: ${props => props.theme.colors.palette.primary.normal};\n border-radius: 4px;\n }\n\n &::-webkit-scrollbar-thumb:hover {\n opacity: 0.8;\n }\n\n /* Firefox */\n scrollbar-width: thin;\n scrollbar-color: ${props => props.theme.colors.palette.primary.normal} transparent;\n }\n\n pre code {\n background: transparent;\n padding: 0;\n }\n\n strong,\n b {\n color: inherit;\n font-weight: 700;\n }\n\n em,\n i {\n color: inherit;\n }\n`\n\nexport const Label = styled.span`\n font-size: ${props => props.theme.fontSizes.small};\n color: ${props => props.theme.colors.content.detail};\n font-family: 'Montserrat', sans-serif !important;\n font-weight: 600 !important;\n`\n\nexport const BalloonAndActionsWrapper = styled.div<{ $type: 'received' | 'sent' }>`\n display: flex;\n flex-direction: column;\n gap: 2px;\n margin-bottom: ${props => props.theme.spacing.components.medium};\n min-width: 0;\n width: 100%;\n\n ${({ $type }) => {\n switch ($type) {\n case 'received':\n return css``\n default:\n case 'sent':\n return css`\n align-items: flex-end;\n `\n }\n }}\n`\n\nexport const BalloonContainer = styled.div<{ $type: 'received' | 'sent' }>`\n position: relative;\n width: max-content;\n max-width: 100%;\n min-width: 0;\n\n ${({ $type }) => {\n switch ($type) {\n case 'received':\n return css`\n display: inline-block;\n `\n default:\n case 'sent':\n return css`\n display: block;\n margin-left: auto;\n `\n }\n }}\n`\n\nexport const TimestampAndActionsRow = styled.div<{ $type: 'received' | 'sent' }>`\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n\n ${({ $type }) => {\n switch ($type) {\n case 'received':\n return css`\n flex-direction: row-reverse;\n justify-content: flex-end;\n `\n default:\n case 'sent':\n return css`\n flex-direction: row;\n justify-content: flex-end;\n `\n }\n }}\n`\n\nexport const ActionsContainer = styled.div<{ $type: 'received' | 'sent'; $isVisible: boolean }>`\n display: flex;\n gap: ${props => props.theme.spacing.components.xsmall};\n align-items: center;\n z-index: 10;\n opacity: ${props => (props.$isVisible ? 1 : 0)};\n visibility: ${props => (props.$isVisible ? 'visible' : 'hidden')};\n transition: opacity 0.2s ease, visibility 0.2s ease;\n pointer-events: ${props => (props.$isVisible ? 'auto' : 'none')};\n margin: 0;\n padding: 0;\n\n @keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(-5px) scale(0.9);\n }\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n }\n\n ${({ $type }) => {\n switch ($type) {\n case 'received':\n return css`\n left: 0;\n `\n default:\n case 'sent':\n return css`\n right: 0;\n `\n }\n }}\n`\n\nexport const ActionButton = styled.button<{ $messageType: 'received' | 'sent' }>`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n padding: 0;\n border: none;\n background: ${props => props.theme.colors.layers[1].background};\n color: ${props => props.theme.colors.content.text};\n border-radius: ${props => props.theme.borderRadius.small};\n cursor: pointer;\n position: relative;\n transition: all 0.2s ease;\n opacity: 0.85;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n\n &:hover {\n opacity: 1;\n background: ${props => props.theme.colors.layers[2].background};\n transform: scale(1.1);\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);\n }\n\n &:active {\n transform: scale(0.95);\n }\n`\n\nexport const Tooltip = styled.span<{ $messageType: 'received' | 'sent' }>`\n position: absolute;\n white-space: nowrap;\n padding: ${props => props.theme.spacing.components.xsmall}\n ${props => props.theme.spacing.components.small};\n background: ${props => mix(0.1, props.theme.colors.content.text, props.theme.colors.layers[2].background)};\n color: ${props => props.theme.colors.content.text};\n border-radius: ${props => props.theme.borderRadius.small};\n font-size: ${props => props.theme.fontSizes.xsmall};\n font-weight: 500;\n pointer-events: none;\n z-index: 30;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);\n bottom: calc(100% + ${props => props.theme.spacing.components.xsmall});\n left: 50%;\n transform: translateX(-50%);\n`\n\nexport const Wrapper = styled.div<{ $type: 'received' | 'sent' }>`\n font-size: ${props => props.theme.fontSizes.small};\n font-weight: 600 !important;\n display: flex;\n flex-direction: column;\n gap: 2px;\n width: 100%;\n min-width: 0;\n box-sizing: border-box;\n\n ${props => {\n switch (props.$type) {\n case 'received':\n return css``\n default:\n case 'sent':\n return css`\n text-align: right;\n `\n }\n }};\n`\n", "/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument) {\n const argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (\n argument instanceof Date ||\n (typeof argument === \"object\" && argStr === \"[object Date]\")\n ) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new argument.constructor(+argument);\n } else if (\n typeof argument === \"number\" ||\n argStr === \"[object Number]\" ||\n typeof argument === \"string\" ||\n argStr === \"[object String]\"\n ) {\n // TODO: Can we get rid of as?\n return new Date(argument);\n } else {\n // TODO: Can we get rid of as?\n return new Date(NaN);\n }\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n", "/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n", "let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n", "import { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n", "import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date) {\n const _date = toDate(date);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n", "import { toDate } from \"../toDate.mjs\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n", "import { millisecondsInDay } from \"./constants.mjs\";\nimport { startOfDay } from \"./startOfDay.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.mjs\";\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(dateLeft, dateRight) {\n const startOfDayLeft = startOfDay(dateLeft);\n const startOfDayRight = startOfDay(dateRight);\n\n const timestampLeft =\n +startOfDayLeft - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n const timestampRight =\n +startOfDayRight - getTimezoneOffsetInMilliseconds(startOfDayRight);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((timestampLeft - timestampRight) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n", "import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of calendar months\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\nexport function differenceInCalendarMonths(dateLeft, dateRight) {\n const _dateLeft = toDate(dateLeft);\n const _dateRight = toDate(dateRight);\n\n const yearDiff = _dateLeft.getFullYear() - _dateRight.getFullYear();\n const monthDiff = _dateLeft.getMonth() - _dateRight.getMonth();\n\n return yearDiff * 12 + monthDiff;\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarMonths;\n", "import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getQuarter\n * @category Quarter Helpers\n * @summary Get the year quarter of the given date.\n *\n * @description\n * Get the year quarter of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The quarter\n *\n * @example\n * // Which quarter is 2 July 2014?\n * const result = getQuarter(new Date(2014, 6, 2))\n * //=> 3\n */\nexport function getQuarter(date) {\n const _date = toDate(date);\n const quarter = Math.trunc(_date.getMonth() / 3) + 1;\n return quarter;\n}\n\n// Fallback for modularized imports:\nexport default getQuarter;\n", "import { getQuarter } from \"./getQuarter.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name differenceInCalendarQuarters\n * @category Quarter Helpers\n * @summary Get the number of calendar quarters between the given dates.\n *\n * @description\n * Get the number of calendar quarters between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n\n * @returns The number of calendar quarters\n *\n * @example\n * // How many calendar quarters are between 31 December 2013 and 2 July 2014?\n * const result = differenceInCalendarQuarters(\n * new Date(2014, 6, 2),\n * new Date(2013, 11, 31)\n * )\n * //=> 3\n */\nexport function differenceInCalendarQuarters(dateLeft, dateRight) {\n const _dateLeft = toDate(dateLeft);\n const _dateRight = toDate(dateRight);\n\n const yearDiff = _dateLeft.getFullYear() - _dateRight.getFullYear();\n const quarterDiff = getQuarter(_dateLeft) - getQuarter(_dateRight);\n\n return yearDiff * 4 + quarterDiff;\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarQuarters;\n", "import { millisecondsInWeek } from \"./constants.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.mjs\";\n\n/**\n * The {@link differenceInCalendarWeeks} function options.\n */\n\n/**\n * @name differenceInCalendarWeeks\n * @category Week Helpers\n * @summary Get the number of calendar weeks between the given dates.\n *\n * @description\n * Get the number of calendar weeks between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n * @param options - An object with options.\n *\n * @returns The number of calendar weeks\n *\n * @example\n * // How many calendar weeks are between 5 July 2014 and 20 July 2014?\n * const result = differenceInCalendarWeeks(\n * new Date(2014, 6, 20),\n * new Date(2014, 6, 5)\n * )\n * //=> 3\n *\n * @example\n * // If the week starts on Monday,\n * // how many calendar weeks are between 5 July 2014 and 20 July 2014?\n * const result = differenceInCalendarWeeks(\n * new Date(2014, 6, 20),\n * new Date(2014, 6, 5),\n * { weekStartsOn: 1 }\n * )\n * //=> 2\n */\nexport function differenceInCalendarWeeks(dateLeft, dateRight, options) {\n const startOfWeekLeft = startOfWeek(dateLeft, options);\n const startOfWeekRight = startOfWeek(dateRight, options);\n\n const timestampLeft =\n +startOfWeekLeft - getTimezoneOffsetInMilliseconds(startOfWeekLeft);\n const timestampRight =\n +startOfWeekRight - getTimezoneOffsetInMilliseconds(startOfWeekRight);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a days is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((timestampLeft - timestampRight) / millisecondsInWeek);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarWeeks;\n", "import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name differenceInCalendarYears\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n\n * @returns The number of calendar years\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * )\n * //=> 2\n */\nexport function differenceInCalendarYears(dateLeft, dateRight) {\n const _dateLeft = toDate(dateLeft);\n const _dateRight = toDate(dateRight);\n\n return _dateLeft.getFullYear() - _dateRight.getFullYear();\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarYears;\n", "export function getRoundingMethod(method) {\n return (number) => {\n const round = method ? Math[method] : Math.trunc;\n const result = round(number);\n // Prevent negative zero\n return result === 0 ? 0 : result;\n };\n}\n", "import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of milliseconds\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * const result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\nexport function differenceInMilliseconds(dateLeft, dateRight) {\n return +toDate(dateLeft) - +toDate(dateRight);\n}\n\n// Fallback for modularized imports:\nexport default differenceInMilliseconds;\n", "import { getRoundingMethod } from \"./_lib/getRoundingMethod.mjs\";\nimport { millisecondsInHour } from \"./constants.mjs\";\nimport { differenceInMilliseconds } from \"./differenceInMilliseconds.mjs\";\n\n/**\n * The {@link differenceInHours} function options.\n */\n\n/**\n * @name differenceInHours\n * @category Hour Helpers\n * @summary Get the number of hours between the given dates.\n *\n * @description\n * Get the number of hours between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n * @param options - An object with options.\n *\n * @returns The number of hours\n *\n * @example\n * // How many hours are between 2 July 2014 06:50:00 and 2 July 2014 19:00:00?\n * const result = differenceInHours(\n * new Date(2014, 6, 2, 19, 0),\n * new Date(2014, 6, 2, 6, 50)\n * )\n * //=> 12\n */\nexport function differenceInHours(dateLeft, dateRight, options) {\n const diff =\n differenceInMilliseconds(dateLeft, dateRight) / millisecondsInHour;\n return getRoundingMethod(options?.roundingMethod)(diff);\n}\n\n// Fallback for modularized imports:\nexport default differenceInHours;\n", "import { getRoundingMethod } from \"./_lib/getRoundingMethod.mjs\";\nimport { millisecondsInMinute } from \"./constants.mjs\";\nimport { differenceInMilliseconds } from \"./differenceInMilliseconds.mjs\";\n\n/**\n * The {@link differenceInMinutes} function options.\n */\n\n/**\n * @name differenceInMinutes\n * @category Minute Helpers\n * @summary Get the number of minutes between the given dates.\n *\n * @description\n * Get the signed number of full (rounded towards 0) minutes between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n * @param options - An object with options.\n *\n * @returns The number of minutes\n *\n * @example\n * // How many minutes are between 2 July 2014 12:07:59 and 2 July 2014 12:20:00?\n * const result = differenceInMinutes(\n * new Date(2014, 6, 2, 12, 20, 0),\n * new Date(2014, 6, 2, 12, 7, 59)\n * )\n * //=> 12\n *\n * @example\n * // How many minutes are between 10:01:59 and 10:00:00\n * const result = differenceInMinutes(\n * new Date(2000, 0, 1, 10, 0, 0),\n * new Date(2000, 0, 1, 10, 1, 59)\n * )\n * //=> -1\n */\nexport function differenceInMinutes(dateLeft, dateRight, options) {\n const diff =\n differenceInMilliseconds(dateLeft, dateRight) / millisecondsInMinute;\n return getRoundingMethod(options?.roundingMethod)(diff);\n}\n\n// Fallback for modularized imports:\nexport default differenceInMinutes;\n", "import { getRoundingMethod } from \"./_lib/getRoundingMethod.mjs\";\nimport { differenceInMilliseconds } from \"./differenceInMilliseconds.mjs\";\n\n/**\n * The {@link differenceInSeconds} function options.\n */\n\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n * @param options - An object with options.\n *\n * @returns The number of seconds\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * const result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\nexport function differenceInSeconds(dateLeft, dateRight, options) {\n const diff = differenceInMilliseconds(dateLeft, dateRight) / 1000;\n return getRoundingMethod(options?.roundingMethod)(diff);\n}\n\n// Fallback for modularized imports:\nexport default differenceInSeconds;\n", "import {\n secondsInDay,\n secondsInHour,\n secondsInMinute,\n secondsInMonth,\n secondsInQuarter,\n secondsInWeek,\n secondsInYear,\n} from \"./constants.mjs\";\nimport { differenceInCalendarDays } from \"./differenceInCalendarDays.mjs\";\nimport { differenceInCalendarMonths } from \"./differenceInCalendarMonths.mjs\";\nimport { differenceInCalendarQuarters } from \"./differenceInCalendarQuarters.mjs\";\nimport { differenceInCalendarWeeks } from \"./differenceInCalendarWeeks.mjs\";\nimport { differenceInCalendarYears } from \"./differenceInCalendarYears.mjs\";\nimport { differenceInHours } from \"./differenceInHours.mjs\";\nimport { differenceInMinutes } from \"./differenceInMinutes.mjs\";\nimport { differenceInSeconds } from \"./differenceInSeconds.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * The {@link intlFormatDistance} function options.\n */\n\n/**\n * The unit used to format the distance in {@link intlFormatDistance}.\n */\n\n/**\n * @name intlFormatDistance\n * @category Common Helpers\n * @summary Formats distance between two dates in a human-readable format\n * @description\n * The function calculates the difference between two dates and formats it as a human-readable string.\n *\n * The function will pick the most appropriate unit depending on the distance between dates. For example, if the distance is a few hours, it might return `x hours`. If the distance is a few months, it might return `x months`.\n *\n * You can also specify a unit to force using it regardless of the distance to get a result like `123456 hours`.\n *\n * See the table below for the unit picking logic:\n *\n * | Distance between dates | Result (past) | Result (future) |\n * | ---------------------- | -------------- | --------------- |\n * | 0 seconds | now | now |\n * | 1-59 seconds | X seconds ago | in X seconds |\n * | 1-59 minutes | X minutes ago | in X minutes |\n * | 1-23 hours | X hours ago | in X hours |\n * | 1 day | yesterday | tomorrow |\n * | 2-6 days | X days ago | in X days |\n * | 7 days | last week | next week |\n * | 8 days-1 month | X weeks ago | in X weeks |\n * | 1 month | last month | next month |\n * | 2-3 months | X months ago | in X months |\n * | 1 quarter | last quarter | next quarter |\n * | 2-3 quarters | X quarters ago | in X quarters |\n * | 1 year | last year | next year |\n * | 2+ years | X years ago | in X years |\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date\n * @param baseDate - The date to compare with.\n * @param options - An object with options.\n * See MDN for details [Locale identification and negotiation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locale_identification_and_negotiation)\n * The narrow one could be similar to the short one for some locales.\n *\n * @returns The distance in words according to language-sensitive relative time formatting.\n *\n * @throws `date` must not be Invalid Date\n * @throws `baseDate` must not be Invalid Date\n * @throws `options.unit` must not be invalid Unit\n * @throws `options.locale` must not be invalid locale\n * @throws `options.localeMatcher` must not be invalid localeMatcher\n * @throws `options.numeric` must not be invalid numeric\n * @throws `options.style` must not be invalid style\n *\n * @example\n * // What is the distance between the dates when the fist date is after the second?\n * intlFormatDistance(\n * new Date(1986, 3, 4, 11, 30, 0),\n * new Date(1986, 3, 4, 10, 30, 0)\n * )\n * //=> 'in 1 hour'\n *\n * // What is the distance between the dates when the fist date is before the second?\n * intlFormatDistance(\n * new Date(1986, 3, 4, 10, 30, 0),\n * new Date(1986, 3, 4, 11, 30, 0)\n * )\n * //=> '1 hour ago'\n *\n * @example\n * // Use the unit option to force the function to output the result in quarters. Without setting it, the example would return \"next year\"\n * intlFormatDistance(\n * new Date(1987, 6, 4, 10, 30, 0),\n * new Date(1986, 3, 4, 10, 30, 0),\n * { unit: 'quarter' }\n * )\n * //=> 'in 5 quarters'\n *\n * @example\n * // Use the locale option to get the result in Spanish. Without setting it, the example would return \"in 1 hour\".\n * intlFormatDistance(\n * new Date(1986, 3, 4, 11, 30, 0),\n * new Date(1986, 3, 4, 10, 30, 0),\n * { locale: 'es' }\n * )\n * //=> 'dentro de 1 hora'\n *\n * @example\n * // Use the numeric option to force the function to use numeric values. Without setting it, the example would return \"tomorrow\".\n * intlFormatDistance(\n * new Date(1986, 3, 5, 11, 30, 0),\n * new Date(1986, 3, 4, 11, 30, 0),\n * { numeric: 'always' }\n * )\n * //=> 'in 1 day'\n *\n * @example\n * // Use the style option to force the function to use short values. Without setting it, the example would return \"in 2 years\".\n * intlFormatDistance(\n * new Date(1988, 3, 4, 11, 30, 0),\n * new Date(1986, 3, 4, 11, 30, 0),\n * { style: 'short' }\n * )\n * //=> 'in 2 yr'\n */\nexport function intlFormatDistance(date, baseDate, options) {\n let value = 0;\n let unit;\n const dateLeft = toDate(date);\n const dateRight = toDate(baseDate);\n\n if (!options?.unit) {\n // Get the unit based on diffInSeconds calculations if no unit is specified\n const diffInSeconds = differenceInSeconds(dateLeft, dateRight); // The smallest unit\n\n if (Math.abs(diffInSeconds) < secondsInMinute) {\n value = differenceInSeconds(dateLeft, dateRight);\n unit = \"second\";\n } else if (Math.abs(diffInSeconds) < secondsInHour) {\n value = differenceInMinutes(dateLeft, dateRight);\n unit = \"minute\";\n } else if (\n Math.abs(diffInSeconds) < secondsInDay &&\n Math.abs(differenceInCalendarDays(dateLeft, dateRight)) < 1\n ) {\n value = differenceInHours(dateLeft, dateRight);\n unit = \"hour\";\n } else if (\n Math.abs(diffInSeconds) < secondsInWeek &&\n (value = differenceInCalendarDays(dateLeft, dateRight)) &&\n Math.abs(value) < 7\n ) {\n unit = \"day\";\n } else if (Math.abs(diffInSeconds) < secondsInMonth) {\n value = differenceInCalendarWeeks(dateLeft, dateRight);\n unit = \"week\";\n } else if (Math.abs(diffInSeconds) < secondsInQuarter) {\n value = differenceInCalendarMonths(dateLeft, dateRight);\n unit = \"month\";\n } else if (Math.abs(diffInSeconds) < secondsInYear) {\n if (differenceInCalendarQuarters(dateLeft, dateRight) < 4) {\n // To filter out cases that are less than a year but match 4 quarters\n value = differenceInCalendarQuarters(dateLeft, dateRight);\n unit = \"quarter\";\n } else {\n value = differenceInCalendarYears(dateLeft, dateRight);\n unit = \"year\";\n }\n } else {\n value = differenceInCalendarYears(dateLeft, dateRight);\n unit = \"year\";\n }\n } else {\n // Get the value if unit is specified\n unit = options?.unit;\n if (unit === \"second\") {\n value = differenceInSeconds(dateLeft, dateRight);\n } else if (unit === \"minute\") {\n value = differenceInMinutes(dateLeft, dateRight);\n } else if (unit === \"hour\") {\n value = differenceInHours(dateLeft, dateRight);\n } else if (unit === \"day\") {\n value = differenceInCalendarDays(dateLeft, dateRight);\n } else if (unit === \"week\") {\n value = differenceInCalendarWeeks(dateLeft, dateRight);\n } else if (unit === \"month\") {\n value = differenceInCalendarMonths(dateLeft, dateRight);\n } else if (unit === \"quarter\") {\n value = differenceInCalendarQuarters(dateLeft, dateRight);\n } else if (unit === \"year\") {\n value = differenceInCalendarYears(dateLeft, dateRight);\n }\n }\n\n const rtf = new Intl.RelativeTimeFormat(options?.locale, {\n localeMatcher: options?.localeMatcher,\n numeric: options?.numeric || \"auto\",\n style: options?.style,\n });\n\n return rtf.format(value, unit);\n}\n\n// Fallback for modularized imports:\nexport default intlFormatDistance;\n", "import { intlFormatDistance } from 'date-fns'\nimport { ChatbotTypes } from 'types'\n\nexport const formatMessageTime = (\n dateUTC: string,\n currentDateUTC: string,\n locale: ChatbotTypes.Locale,\n) => {\n return intlFormatDistance(dateUTC, currentDateUTC, { locale })\n}\n", "/**\n * @typedef Options\n * Configuration for `stringify`.\n * @property {boolean} [padLeft=true]\n * Whether to pad a space before a token.\n * @property {boolean} [padRight=false]\n * Whether to pad a space after a token.\n */\n\n/**\n * @typedef {Options} StringifyOptions\n * Please use `StringifyOptions` instead.\n */\n\n/**\n * Parse comma-separated tokens to an array.\n *\n * @param {string} value\n * Comma-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\nexport function parse(value) {\n /** @type {Array<string>} */\n const tokens = []\n const input = String(value || '')\n let index = input.indexOf(',')\n let start = 0\n /** @type {boolean} */\n let end = false\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n const token = input.slice(start, index).trim()\n\n if (token || !end) {\n tokens.push(token)\n }\n\n start = index + 1\n index = input.indexOf(',', start)\n }\n\n return tokens\n}\n\n/**\n * Serialize an array of strings or numbers to comma-separated tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @param {Options} [options]\n * Configuration for `stringify` (optional).\n * @returns {string}\n * Comma-separated tokens.\n */\nexport function stringify(values, options) {\n const settings = options || {}\n\n // Ensure the last empty entry is seen.\n const input = values[values.length - 1] === '' ? [...values, ''] : values\n\n return input\n .join(\n (settings.padRight ? ' ' : '') +\n ',' +\n (settings.padLeft === false ? '' : ' ')\n )\n .trim()\n}\n", "/**\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [jsx=false]\n * Support JSX identifiers (default: `false`).\n */\n\nconst startRe = /[$_\\p{ID_Start}]/u\nconst contRe = /[$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u\nconst contReJsx = /[-$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u\nconst nameRe = /^[$_\\p{ID_Start}][$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u\nconst nameReJsx = /^[$_\\p{ID_Start}][-$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Checks if the given code point can start an identifier.\n *\n * @param {number | undefined} code\n * Code point to check.\n * @returns {boolean}\n * Whether `code` can start an identifier.\n */\n// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nexport function start(code) {\n return code ? startRe.test(String.fromCodePoint(code)) : false\n}\n\n/**\n * Checks if the given code point can continue an identifier.\n *\n * @param {number | undefined} code\n * Code point to check.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {boolean}\n * Whether `code` can continue an identifier.\n */\n// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nexport function cont(code, options) {\n const settings = options || emptyOptions\n const re = settings.jsx ? contReJsx : contRe\n return code ? re.test(String.fromCodePoint(code)) : false\n}\n\n/**\n * Checks if the given value is a valid identifier name.\n *\n * @param {string} name\n * Identifier to check.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {boolean}\n * Whether `name` can be an identifier.\n */\nexport function name(name, options) {\n const settings = options || emptyOptions\n const re = settings.jsx ? nameReJsx : nameRe\n return re.test(name)\n}\n", "/**\n * @typedef {import('hast').Nodes} Nodes\n */\n\n// HTML whitespace expression.\n// See <https://infra.spec.whatwg.org/#ascii-whitespace>.\nconst re = /[ \\t\\n\\f\\r]/g\n\n/**\n * Check if the given value is *inter-element whitespace*.\n *\n * @param {Nodes | string} thing\n * Thing to check (`Node` or `string`).\n * @returns {boolean}\n * Whether the `value` is inter-element whitespace (`boolean`): consisting of\n * zero or more of space, tab (`\\t`), line feed (`\\n`), carriage return\n * (`\\r`), or form feed (`\\f`); if a node is passed it must be a `Text` node,\n * whose `value` field is checked.\n */\nexport function whitespace(thing) {\n return typeof thing === 'object'\n ? thing.type === 'text'\n ? empty(thing.value)\n : false\n : empty(thing)\n}\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nfunction empty(value) {\n return value.replace(re, '') === ''\n}\n", "/**\n * @import {Schema as SchemaType, Space} from 'property-information'\n */\n\n/** @type {SchemaType} */\nexport class Schema {\n /**\n * @param {SchemaType['property']} property\n * Property.\n * @param {SchemaType['normal']} normal\n * Normal.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Schema.\n */\n constructor(property, normal, space) {\n this.normal = normal\n this.property = property\n\n if (space) {\n this.space = space\n }\n }\n}\n\nSchema.prototype.normal = {}\nSchema.prototype.property = {}\nSchema.prototype.space = undefined\n", "/**\n * @import {Info, Space} from 'property-information'\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {ReadonlyArray<Schema>} definitions\n * Definitions.\n * @param {Space | undefined} [space]\n * Space.\n * @returns {Schema}\n * Schema.\n */\nexport function merge(definitions, space) {\n /** @type {Record<string, Info>} */\n const property = {}\n /** @type {Record<string, string>} */\n const normal = {}\n\n for (const definition of definitions) {\n Object.assign(property, definition.property)\n Object.assign(normal, definition.normal)\n }\n\n return new Schema(property, normal, space)\n}\n", "/**\n * Get the cleaned case insensitive form of an attribute or property.\n *\n * @param {string} value\n * An attribute-like or property-like name.\n * @returns {string}\n * Value that can be used to look up the properly cased property on a\n * `Schema`.\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n", "/**\n * @import {Info as InfoType} from 'property-information'\n */\n\n/** @type {InfoType} */\nexport class Info {\n /**\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @returns\n * Info.\n */\n constructor(property, attribute) {\n this.attribute = attribute\n this.property = property\n }\n}\n\nInfo.prototype.attribute = ''\nInfo.prototype.booleanish = false\nInfo.prototype.boolean = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.defined = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.number = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.property = ''\nInfo.prototype.spaceSeparated = false\nInfo.prototype.space = undefined\n", "let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n", "/**\n * @import {Space} from 'property-information'\n */\n\nimport {Info} from './info.js'\nimport * as types from './types.js'\n\nconst checks = /** @type {ReadonlyArray<keyof typeof types>} */ (\n Object.keys(types)\n)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @param {number | null | undefined} [mask]\n * Mask.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Info.\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @template {keyof DefinedInfo} Key\n * Key type.\n * @param {DefinedInfo} values\n * Info.\n * @param {Key} key\n * Key.\n * @param {DefinedInfo[Key]} value\n * Value.\n * @returns {undefined}\n * Nothing.\n */\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value\n }\n}\n", "/**\n * @import {Info, Space} from 'property-information'\n */\n\n/**\n * @typedef Definition\n * Definition of a schema.\n * @property {Record<string, string> | undefined} [attributes]\n * Normalzed names to special attribute case.\n * @property {ReadonlyArray<string> | undefined} [mustUseProperty]\n * Normalized names that must be set as properties.\n * @property {Record<string, number | null>} properties\n * Property names to their types.\n * @property {Space | undefined} [space]\n * Space.\n * @property {Transform} transform\n * Transform a property name.\n */\n\n/**\n * @callback Transform\n * Transform.\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Attribute.\n */\n\nimport {normalize} from '../normalize.js'\nimport {DefinedInfo} from './defined-info.js'\nimport {Schema} from './schema.js'\n\n/**\n * @param {Definition} definition\n * Definition.\n * @returns {Schema}\n * Schema.\n */\nexport function create(definition) {\n /** @type {Record<string, Info>} */\n const properties = {}\n /** @type {Record<string, string>} */\n const normals = {}\n\n for (const [property, value] of Object.entries(definition.properties)) {\n const info = new DefinedInfo(\n property,\n definition.transform(definition.attributes || {}, property),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(property)\n ) {\n info.mustUseProperty = true\n }\n\n properties[property] = info\n\n normals[normalize(property)] = property\n normals[normalize(info.attribute)] = property\n }\n\n return new Schema(properties, normals, definition.space)\n}\n", "import {create} from './util/create.js'\nimport {booleanish, number, spaceSeparated} from './util/types.js'\n\nexport const aria = create({\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n },\n transform(_, property) {\n return property === 'role'\n ? property\n : 'aria-' + property.slice(4).toLowerCase()\n }\n})\n", "/**\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} attribute\n * Attribute.\n * @returns {string}\n * Transformed attribute.\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n", "import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Transformed property.\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n", "import {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n booleanish,\n boolean,\n commaSeparated,\n number,\n overloadedBoolean,\n spaceSeparated\n} from './util/types.js'\n\nexport const html = create({\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: overloadedBoolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootClonable: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n writingSuggestions: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n },\n space: 'html',\n transform: caseInsensitiveTransform\n})\n", "import {caseSensitiveTransform} from './util/case-sensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n boolean,\n commaOrSpaceSeparated,\n commaSeparated,\n number,\n spaceSeparated\n} from './util/types.js'\n\nexport const svg = create({\n attributes: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n className: 'class',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n crossOrigin: 'crossorigin',\n dataType: 'datatype',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n hrefLang: 'hreflang',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n horizOriginY: 'horiz-origin-y',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n navDown: 'nav-down',\n navDownLeft: 'nav-down-left',\n navDownRight: 'nav-down-right',\n navLeft: 'nav-left',\n navNext: 'nav-next',\n navPrev: 'nav-prev',\n navRight: 'nav-right',\n navUp: 'nav-up',\n navUpLeft: 'nav-up-left',\n navUpRight: 'nav-up-right',\n onAbort: 'onabort',\n onActivate: 'onactivate',\n onAfterPrint: 'onafterprint',\n onBeforePrint: 'onbeforeprint',\n onBegin: 'onbegin',\n onCancel: 'oncancel',\n onCanPlay: 'oncanplay',\n onCanPlayThrough: 'oncanplaythrough',\n onChange: 'onchange',\n onClick: 'onclick',\n onClose: 'onclose',\n onCopy: 'oncopy',\n onCueChange: 'oncuechange',\n onCut: 'oncut',\n onDblClick: 'ondblclick',\n onDrag: 'ondrag',\n onDragEnd: 'ondragend',\n onDragEnter: 'ondragenter',\n onDragExit: 'ondragexit',\n onDragLeave: 'ondragleave',\n onDragOver: 'ondragover',\n onDragStart: 'ondragstart',\n onDrop: 'ondrop',\n onDurationChange: 'ondurationchange',\n onEmptied: 'onemptied',\n onEnd: 'onend',\n onEnded: 'onended',\n onError: 'onerror',\n onFocus: 'onfocus',\n onFocusIn: 'onfocusin',\n onFocusOut: 'onfocusout',\n onHashChange: 'onhashchange',\n onInput: 'oninput',\n onInvalid: 'oninvalid',\n onKeyDown: 'onkeydown',\n onKeyPress: 'onkeypress',\n onKeyUp: 'onkeyup',\n onLoad: 'onload',\n onLoadedData: 'onloadeddata',\n onLoadedMetadata: 'onloadedmetadata',\n onLoadStart: 'onloadstart',\n onMessage: 'onmessage',\n onMouseDown: 'onmousedown',\n onMouseEnter: 'onmouseenter',\n onMouseLeave: 'onmouseleave',\n onMouseMove: 'onmousemove',\n onMouseOut: 'onmouseout',\n onMouseOver: 'onmouseover',\n onMouseUp: 'onmouseup',\n onMouseWheel: 'onmousewheel',\n onOffline: 'onoffline',\n onOnline: 'ononline',\n onPageHide: 'onpagehide',\n onPageShow: 'onpageshow',\n onPaste: 'onpaste',\n onPause: 'onpause',\n onPlay: 'onplay',\n onPlaying: 'onplaying',\n onPopState: 'onpopstate',\n onProgress: 'onprogress',\n onRateChange: 'onratechange',\n onRepeat: 'onrepeat',\n onReset: 'onreset',\n onResize: 'onresize',\n onScroll: 'onscroll',\n onSeeked: 'onseeked',\n onSeeking: 'onseeking',\n onSelect: 'onselect',\n onShow: 'onshow',\n onStalled: 'onstalled',\n onStorage: 'onstorage',\n onSubmit: 'onsubmit',\n onSuspend: 'onsuspend',\n onTimeUpdate: 'ontimeupdate',\n onToggle: 'ontoggle',\n onUnload: 'onunload',\n onVolumeChange: 'onvolumechange',\n onWaiting: 'onwaiting',\n onZoom: 'onzoom',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n referrerPolicy: 'referrerpolicy',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDashArray: 'stroke-dasharray',\n strokeDashOffset: 'stroke-dashoffset',\n strokeLineCap: 'stroke-linecap',\n strokeLineJoin: 'stroke-linejoin',\n strokeMiterLimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n tabIndex: 'tabindex',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n transformOrigin: 'transform-origin',\n typeOf: 'typeof',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: 'playbackorder',\n timelineBegin: 'timelinebegin'\n },\n properties: {\n about: commaOrSpaceSeparated,\n accentHeight: number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: number,\n amplitude: number,\n arabicForm: null,\n ascent: number,\n attributeName: null,\n attributeType: null,\n azimuth: number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: number,\n by: null,\n calcMode: null,\n capHeight: number,\n className: spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: number,\n diffuseConstant: number,\n direction: null,\n display: null,\n dur: null,\n divisor: number,\n dominantBaseline: null,\n download: boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: commaSeparated,\n g2: commaSeparated,\n glyphName: commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: number,\n horizOriginX: number,\n horizOriginY: number,\n id: null,\n ideographic: number,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: number,\n k: number,\n k1: number,\n k2: number,\n k3: number,\n k4: number,\n kernelMatrix: commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null, // SEMI_COLON_SEPARATED\n keySplines: null, // SEMI_COLON_SEPARATED\n keyTimes: null, // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: number,\n overlineThickness: number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: number,\n pointsAtY: number,\n pointsAtZ: number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: commaOrSpaceSeparated,\n rev: commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: commaOrSpaceSeparated,\n requiredFeatures: commaOrSpaceSeparated,\n requiredFonts: commaOrSpaceSeparated,\n requiredFormats: commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: number,\n specularExponent: number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: number,\n strikethroughThickness: number,\n string: null,\n stroke: null,\n strokeDashArray: commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: number,\n strokeOpacity: number,\n strokeWidth: null,\n style: null,\n surfaceScale: number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: commaOrSpaceSeparated,\n tabIndex: number,\n tableValues: null,\n target: null,\n targetX: number,\n targetY: number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: commaOrSpaceSeparated,\n to: null,\n transform: null,\n transformOrigin: null,\n u1: null,\n u2: null,\n underlinePosition: number,\n underlineThickness: number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: number,\n values: null,\n vAlphabetic: number,\n vMathematical: number,\n vectorEffect: null,\n vHanging: number,\n vIdeographic: number,\n version: null,\n vertAdvY: number,\n vertOriginX: number,\n vertOriginY: number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n },\n space: 'svg',\n transform: caseSensitiveTransform\n})\n", "import {create} from './util/create.js'\n\nexport const xlink = create({\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n },\n space: 'xlink',\n transform(_, property) {\n return 'xlink:' + property.slice(5).toLowerCase()\n }\n})\n", "import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n properties: {xmlnsXLink: null, xmlns: null},\n space: 'xmlns',\n transform: caseInsensitiveTransform\n})\n", "import {create} from './util/create.js'\n\nexport const xml = create({\n properties: {xmlBase: null, xmlLang: null, xmlSpace: null},\n space: 'xml',\n transform(_, property) {\n return 'xml:' + property.slice(3).toLowerCase()\n }\n})\n", "/**\n * Special cases for React (`Record<string, string>`).\n *\n * `hast` is close to `React` but differs in a couple of cases.\n * To get a React property from a hast property,\n * check if it is in `hastToReact`.\n * If it is, use the corresponding value;\n * otherwise, use the hast property.\n *\n * @type {Record<string, string>}\n */\nexport const hastToReact = {\n classId: 'classID',\n dataType: 'datatype',\n itemId: 'itemID',\n strokeDashArray: 'strokeDasharray',\n strokeDashOffset: 'strokeDashoffset',\n strokeLineCap: 'strokeLinecap',\n strokeLineJoin: 'strokeLinejoin',\n strokeMiterLimit: 'strokeMiterlimit',\n typeOf: 'typeof',\n xLinkActuate: 'xlinkActuate',\n xLinkArcRole: 'xlinkArcrole',\n xLinkHref: 'xlinkHref',\n xLinkRole: 'xlinkRole',\n xLinkShow: 'xlinkShow',\n xLinkTitle: 'xlinkTitle',\n xLinkType: 'xlinkType',\n xmlnsXLink: 'xmlnsXlink'\n}\n", "/**\n * @import {Schema} from 'property-information'\n */\n\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\nimport {normalize} from './normalize.js'\n\nconst cap = /[A-Z]/g\nconst dash = /-[a-z]/g\nconst valid = /^data[-\\w.:]+$/i\n\n/**\n * Look up info on a property.\n *\n * In most cases the given `schema` contains info on the property.\n * All standard,\n * most legacy,\n * and some non-standard properties are supported.\n * For these cases,\n * the returned `Info` has hints about the value of the property.\n *\n * `name` can also be a valid data attribute or property,\n * in which case an `Info` object with the correctly cased `attribute` and\n * `property` is returned.\n *\n * `name` can be an unknown attribute,\n * in which case an `Info` object with `attribute` and `property` set to the\n * given name is returned.\n * It is not recommended to provide unsupported legacy or recently specced\n * properties.\n *\n *\n * @param {Schema} schema\n * Schema;\n * either the `html` or `svg` export.\n * @param {string} value\n * An attribute-like or property-like name;\n * it will be passed through `normalize` to hopefully find the correct info.\n * @returns {Info}\n * Info.\n */\nexport function find(schema, value) {\n const normal = normalize(value)\n let property = value\n let Type = Info\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n // Turn it into a property.\n const rest = value.slice(5).replace(dash, camelcase)\n property = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)\n } else {\n // Turn it into an attribute.\n const rest = value.slice(4)\n\n if (!dash.test(rest)) {\n let dashes = rest.replace(cap, kebab)\n\n if (dashes.charAt(0) !== '-') {\n dashes = '-' + dashes\n }\n\n value = 'data' + dashes\n }\n }\n\n Type = DefinedInfo\n }\n\n return new Type(property, value)\n}\n\n/**\n * @param {string} $0\n * Value.\n * @returns {string}\n * Kebab.\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * Value.\n * @returns {string}\n * Camel.\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n", "// Note: types exposed from `index.d.ts`.\nimport {merge} from './lib/util/merge.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\nimport {xlink} from './lib/xlink.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {xml} from './lib/xml.js'\n\nexport {hastToReact} from './lib/hast-to-react.js'\n\nexport const html = merge([aria, htmlBase, xlink, xmlns, xml], 'html')\n\nexport {find} from './lib/find.js'\nexport {normalize} from './lib/normalize.js'\n\nexport const svg = merge([aria, svgBase, xlink, xmlns, xml], 'svg')\n", "/**\n * Parse space-separated tokens to an array of strings.\n *\n * @param {string} value\n * Space-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\nexport function parse(value) {\n const input = String(value || '').trim()\n return input ? input.split(/[ \\t\\n\\r\\f]+/g) : []\n}\n\n/**\n * Serialize an array of strings as space separated-tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @returns {string}\n * Space-separated tokens.\n */\nexport function stringify(values) {\n return values.join(' ').trim()\n}\n", "/**\n * @import {Identifier, Literal, MemberExpression} from 'estree'\n * @import {Jsx, JsxDev, Options, Props} from 'hast-util-to-jsx-runtime'\n * @import {Element, Nodes, Parents, Root, Text} from 'hast'\n * @import {MdxFlowExpressionHast, MdxTextExpressionHast} from 'mdast-util-mdx-expression'\n * @import {MdxJsxFlowElementHast, MdxJsxTextElementHast} from 'mdast-util-mdx-jsx'\n * @import {MdxjsEsmHast} from 'mdast-util-mdxjs-esm'\n * @import {Position} from 'unist'\n * @import {Child, Create, Field, JsxElement, State, Style} from './types.js'\n */\n\nimport {stringify as commas} from 'comma-separated-tokens'\nimport {ok as assert} from 'devlop'\nimport {name as isIdentifierName} from 'estree-util-is-identifier-name'\nimport {whitespace} from 'hast-util-whitespace'\nimport {find, hastToReact, html, svg} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport styleToJs from 'style-to-js'\nimport {pointStart} from 'unist-util-position'\nimport {VFileMessage} from 'vfile-message'\n\n// To do: next major: `Object.hasOwn`.\nconst own = {}.hasOwnProperty\n\n/** @type {Map<string, number>} */\nconst emptyMap = new Map()\n\nconst cap = /[A-Z]/g\n\n// `react-dom` triggers a warning for *any* white space in tables.\n// To follow GFM, `mdast-util-to-hast` injects line endings between elements.\n// Other tools might do so too, but they don\u2019t do here, so we remove all of\n// that.\n\n// See: <https://github.com/facebook/react/pull/7081>.\n// See: <https://github.com/facebook/react/pull/7515>.\n// See: <https://github.com/remarkjs/remark-react/issues/64>.\n// See: <https://github.com/rehypejs/rehype-react/pull/29>.\n// See: <https://github.com/rehypejs/rehype-react/pull/32>.\n// See: <https://github.com/rehypejs/rehype-react/pull/45>.\nconst tableElements = new Set(['table', 'tbody', 'thead', 'tfoot', 'tr'])\n\nconst tableCellElement = new Set(['td', 'th'])\n\nconst docs = 'https://github.com/syntax-tree/hast-util-to-jsx-runtime'\n\n/**\n * Transform a hast tree to preact, react, solid, svelte, vue, etc.,\n * with an automatic JSX runtime.\n *\n * @param {Nodes} tree\n * Tree to transform.\n * @param {Options} options\n * Configuration (required).\n * @returns {JsxElement}\n * JSX element.\n */\n\nexport function toJsxRuntime(tree, options) {\n if (!options || options.Fragment === undefined) {\n throw new TypeError('Expected `Fragment` in options')\n }\n\n const filePath = options.filePath || undefined\n /** @type {Create} */\n let create\n\n if (options.development) {\n if (typeof options.jsxDEV !== 'function') {\n throw new TypeError(\n 'Expected `jsxDEV` in options when `development: true`'\n )\n }\n\n create = developmentCreate(filePath, options.jsxDEV)\n } else {\n if (typeof options.jsx !== 'function') {\n throw new TypeError('Expected `jsx` in production options')\n }\n\n if (typeof options.jsxs !== 'function') {\n throw new TypeError('Expected `jsxs` in production options')\n }\n\n create = productionCreate(filePath, options.jsx, options.jsxs)\n }\n\n /** @type {State} */\n const state = {\n Fragment: options.Fragment,\n ancestors: [],\n components: options.components || {},\n create,\n elementAttributeNameCase: options.elementAttributeNameCase || 'react',\n evaluater: options.createEvaluater ? options.createEvaluater() : undefined,\n filePath,\n ignoreInvalidStyle: options.ignoreInvalidStyle || false,\n passKeys: options.passKeys !== false,\n passNode: options.passNode || false,\n schema: options.space === 'svg' ? svg : html,\n stylePropertyNameCase: options.stylePropertyNameCase || 'dom',\n tableCellAlignToStyle: options.tableCellAlignToStyle !== false\n }\n\n const result = one(state, tree, undefined)\n\n // JSX element.\n if (result && typeof result !== 'string') {\n return result\n }\n\n // Text node or something that turned into nothing.\n return state.create(\n tree,\n state.Fragment,\n {children: result || undefined},\n undefined\n )\n}\n\n/**\n * Transform a node.\n *\n * @param {State} state\n * Info passed around.\n * @param {Nodes} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction one(state, node, key) {\n if (node.type === 'element') {\n return element(state, node, key)\n }\n\n if (node.type === 'mdxFlowExpression' || node.type === 'mdxTextExpression') {\n return mdxExpression(state, node)\n }\n\n if (node.type === 'mdxJsxFlowElement' || node.type === 'mdxJsxTextElement') {\n return mdxJsxElement(state, node, key)\n }\n\n if (node.type === 'mdxjsEsm') {\n return mdxEsm(state, node)\n }\n\n if (node.type === 'root') {\n return root(state, node, key)\n }\n\n if (node.type === 'text') {\n return text(state, node)\n }\n}\n\n/**\n * Handle element.\n *\n * @param {State} state\n * Info passed around.\n * @param {Element} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction element(state, node, key) {\n const parentSchema = state.schema\n let schema = parentSchema\n\n if (node.tagName.toLowerCase() === 'svg' && parentSchema.space === 'html') {\n schema = svg\n state.schema = schema\n }\n\n state.ancestors.push(node)\n\n const type = findComponentFromName(state, node.tagName, false)\n const props = createElementProps(state, node)\n let children = createChildren(state, node)\n\n if (tableElements.has(node.tagName)) {\n children = children.filter(function (child) {\n return typeof child === 'string' ? !whitespace(child) : true\n })\n }\n\n addNode(state, props, type, node)\n addChildren(props, children)\n\n // Restore.\n state.ancestors.pop()\n state.schema = parentSchema\n\n return state.create(node, type, props, key)\n}\n\n/**\n * Handle MDX expression.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxFlowExpressionHast | MdxTextExpressionHast} node\n * Current node.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction mdxExpression(state, node) {\n if (node.data && node.data.estree && state.evaluater) {\n const program = node.data.estree\n const expression = program.body[0]\n assert(expression.type === 'ExpressionStatement')\n\n // Assume result is a child.\n return /** @type {Child | undefined} */ (\n state.evaluater.evaluateExpression(expression.expression)\n )\n }\n\n crashEstree(state, node.position)\n}\n\n/**\n * Handle MDX ESM.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxjsEsmHast} node\n * Current node.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction mdxEsm(state, node) {\n if (node.data && node.data.estree && state.evaluater) {\n // Assume result is a child.\n return /** @type {Child | undefined} */ (\n state.evaluater.evaluateProgram(node.data.estree)\n )\n }\n\n crashEstree(state, node.position)\n}\n\n/**\n * Handle MDX JSX.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxJsxFlowElementHast | MdxJsxTextElementHast} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction mdxJsxElement(state, node, key) {\n const parentSchema = state.schema\n let schema = parentSchema\n\n if (node.name === 'svg' && parentSchema.space === 'html') {\n schema = svg\n state.schema = schema\n }\n\n state.ancestors.push(node)\n\n const type =\n node.name === null\n ? state.Fragment\n : findComponentFromName(state, node.name, true)\n const props = createJsxElementProps(state, node)\n const children = createChildren(state, node)\n\n addNode(state, props, type, node)\n addChildren(props, children)\n\n // Restore.\n state.ancestors.pop()\n state.schema = parentSchema\n\n return state.create(node, type, props, key)\n}\n\n/**\n * Handle root.\n *\n * @param {State} state\n * Info passed around.\n * @param {Root} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction root(state, node, key) {\n /** @type {Props} */\n const props = {}\n\n addChildren(props, createChildren(state, node))\n\n return state.create(node, state.Fragment, props, key)\n}\n\n/**\n * Handle text.\n *\n * @param {State} _\n * Info passed around.\n * @param {Text} node\n * Current node.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction text(_, node) {\n return node.value\n}\n\n/**\n * Add `node` to props.\n *\n * @param {State} state\n * Info passed around.\n * @param {Props} props\n * Props.\n * @param {unknown} type\n * Type.\n * @param {Element | MdxJsxFlowElementHast | MdxJsxTextElementHast} node\n * Node.\n * @returns {undefined}\n * Nothing.\n */\nfunction addNode(state, props, type, node) {\n // If this is swapped out for a component:\n if (typeof type !== 'string' && type !== state.Fragment && state.passNode) {\n props.node = node\n }\n}\n\n/**\n * Add children to props.\n *\n * @param {Props} props\n * Props.\n * @param {Array<Child>} children\n * Children.\n * @returns {undefined}\n * Nothing.\n */\nfunction addChildren(props, children) {\n if (children.length > 0) {\n const value = children.length > 1 ? children : children[0]\n\n if (value) {\n props.children = value\n }\n }\n}\n\n/**\n * @param {string | undefined} _\n * Path to file.\n * @param {Jsx} jsx\n * Dynamic.\n * @param {Jsx} jsxs\n * Static.\n * @returns {Create}\n * Create a production element.\n */\nfunction productionCreate(_, jsx, jsxs) {\n return create\n /** @type {Create} */\n function create(_, type, props, key) {\n // Only an array when there are 2 or more children.\n const isStaticChildren = Array.isArray(props.children)\n const fn = isStaticChildren ? jsxs : jsx\n return key ? fn(type, props, key) : fn(type, props)\n }\n}\n\n/**\n * @param {string | undefined} filePath\n * Path to file.\n * @param {JsxDev} jsxDEV\n * Development.\n * @returns {Create}\n * Create a development element.\n */\nfunction developmentCreate(filePath, jsxDEV) {\n return create\n /** @type {Create} */\n function create(node, type, props, key) {\n // Only an array when there are 2 or more children.\n const isStaticChildren = Array.isArray(props.children)\n const point = pointStart(node)\n return jsxDEV(\n type,\n props,\n key,\n isStaticChildren,\n {\n columnNumber: point ? point.column - 1 : undefined,\n fileName: filePath,\n lineNumber: point ? point.line : undefined\n },\n undefined\n )\n }\n}\n\n/**\n * Create props from an element.\n *\n * @param {State} state\n * Info passed around.\n * @param {Element} node\n * Current element.\n * @returns {Props}\n * Props.\n */\nfunction createElementProps(state, node) {\n /** @type {Props} */\n const props = {}\n /** @type {string | undefined} */\n let alignValue\n /** @type {string} */\n let prop\n\n for (prop in node.properties) {\n if (prop !== 'children' && own.call(node.properties, prop)) {\n const result = createProperty(state, prop, node.properties[prop])\n\n if (result) {\n const [key, value] = result\n\n if (\n state.tableCellAlignToStyle &&\n key === 'align' &&\n typeof value === 'string' &&\n tableCellElement.has(node.tagName)\n ) {\n alignValue = value\n } else {\n props[key] = value\n }\n }\n }\n }\n\n if (alignValue) {\n // Assume style is an object.\n const style = /** @type {Style} */ (props.style || (props.style = {}))\n style[state.stylePropertyNameCase === 'css' ? 'text-align' : 'textAlign'] =\n alignValue\n }\n\n return props\n}\n\n/**\n * Create props from a JSX element.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxJsxFlowElementHast | MdxJsxTextElementHast} node\n * Current JSX element.\n * @returns {Props}\n * Props.\n */\nfunction createJsxElementProps(state, node) {\n /** @type {Props} */\n const props = {}\n\n for (const attribute of node.attributes) {\n if (attribute.type === 'mdxJsxExpressionAttribute') {\n if (attribute.data && attribute.data.estree && state.evaluater) {\n const program = attribute.data.estree\n const expression = program.body[0]\n assert(expression.type === 'ExpressionStatement')\n const objectExpression = expression.expression\n assert(objectExpression.type === 'ObjectExpression')\n const property = objectExpression.properties[0]\n assert(property.type === 'SpreadElement')\n\n Object.assign(\n props,\n state.evaluater.evaluateExpression(property.argument)\n )\n } else {\n crashEstree(state, node.position)\n }\n } else {\n // For JSX, the author is responsible of passing in the correct values.\n const name = attribute.name\n /** @type {unknown} */\n let value\n\n if (attribute.value && typeof attribute.value === 'object') {\n if (\n attribute.value.data &&\n attribute.value.data.estree &&\n state.evaluater\n ) {\n const program = attribute.value.data.estree\n const expression = program.body[0]\n assert(expression.type === 'ExpressionStatement')\n value = state.evaluater.evaluateExpression(expression.expression)\n } else {\n crashEstree(state, node.position)\n }\n } else {\n value = attribute.value === null ? true : attribute.value\n }\n\n // Assume a prop.\n props[name] = /** @type {Props[keyof Props]} */ (value)\n }\n }\n\n return props\n}\n\n/**\n * Create children.\n *\n * @param {State} state\n * Info passed around.\n * @param {Parents} node\n * Current element.\n * @returns {Array<Child>}\n * Children.\n */\nfunction createChildren(state, node) {\n /** @type {Array<Child>} */\n const children = []\n let index = -1\n /** @type {Map<string, number>} */\n // Note: test this when Solid doesn\u2019t want to merge my upcoming PR.\n /* c8 ignore next */\n const countsByName = state.passKeys ? new Map() : emptyMap\n\n while (++index < node.children.length) {\n const child = node.children[index]\n /** @type {string | undefined} */\n let key\n\n if (state.passKeys) {\n const name =\n child.type === 'element'\n ? child.tagName\n : child.type === 'mdxJsxFlowElement' ||\n child.type === 'mdxJsxTextElement'\n ? child.name\n : undefined\n\n if (name) {\n const count = countsByName.get(name) || 0\n key = name + '-' + count\n countsByName.set(name, count + 1)\n }\n }\n\n const result = one(state, child, key)\n if (result !== undefined) children.push(result)\n }\n\n return children\n}\n\n/**\n * Handle a property.\n *\n * @param {State} state\n * Info passed around.\n * @param {string} prop\n * Key.\n * @param {Array<number | string> | boolean | number | string | null | undefined} value\n * hast property value.\n * @returns {Field | undefined}\n * Field for runtime, optional.\n */\nfunction createProperty(state, prop, value) {\n const info = find(state.schema, prop)\n\n // Ignore nullish and `NaN` values.\n if (\n value === null ||\n value === undefined ||\n (typeof value === 'number' && Number.isNaN(value))\n ) {\n return\n }\n\n if (Array.isArray(value)) {\n // Accept `array`.\n // Most props are space-separated.\n value = info.commaSeparated ? commas(value) : spaces(value)\n }\n\n // React only accepts `style` as object.\n if (info.property === 'style') {\n let styleObject =\n typeof value === 'object' ? value : parseStyle(state, String(value))\n\n if (state.stylePropertyNameCase === 'css') {\n styleObject = transformStylesToCssCasing(styleObject)\n }\n\n return ['style', styleObject]\n }\n\n return [\n state.elementAttributeNameCase === 'react' && info.space\n ? hastToReact[info.property] || info.property\n : info.attribute,\n value\n ]\n}\n\n/**\n * Parse a CSS declaration to an object.\n *\n * @param {State} state\n * Info passed around.\n * @param {string} value\n * CSS declarations.\n * @returns {Style}\n * Properties.\n * @throws\n * Throws `VFileMessage` when CSS cannot be parsed.\n */\nfunction parseStyle(state, value) {\n try {\n return styleToJs(value, {reactCompat: true})\n } catch (error) {\n if (state.ignoreInvalidStyle) {\n return {}\n }\n\n const cause = /** @type {Error} */ (error)\n const message = new VFileMessage('Cannot parse `style` attribute', {\n ancestors: state.ancestors,\n cause,\n ruleId: 'style',\n source: 'hast-util-to-jsx-runtime'\n })\n message.file = state.filePath || undefined\n message.url = docs + '#cannot-parse-style-attribute'\n\n throw message\n }\n}\n\n/**\n * Create a JSX name from a string.\n *\n * @param {State} state\n * To do.\n * @param {string} name\n * Name.\n * @param {boolean} allowExpression\n * Allow member expressions and identifiers.\n * @returns {unknown}\n * To do.\n */\nfunction findComponentFromName(state, name, allowExpression) {\n /** @type {Identifier | Literal | MemberExpression} */\n let result\n\n if (!allowExpression) {\n result = {type: 'Literal', value: name}\n } else if (name.includes('.')) {\n const identifiers = name.split('.')\n let index = -1\n /** @type {Identifier | Literal | MemberExpression | undefined} */\n let node\n\n while (++index < identifiers.length) {\n /** @type {Identifier | Literal} */\n const prop = isIdentifierName(identifiers[index])\n ? {type: 'Identifier', name: identifiers[index]}\n : {type: 'Literal', value: identifiers[index]}\n node = node\n ? {\n type: 'MemberExpression',\n object: node,\n property: prop,\n computed: Boolean(index && prop.type === 'Literal'),\n optional: false\n }\n : prop\n }\n\n assert(node, 'always a result')\n result = node\n } else {\n result =\n isIdentifierName(name) && !/^[a-z]/.test(name)\n ? {type: 'Identifier', name}\n : {type: 'Literal', value: name}\n }\n\n // Only literals can be passed in `components` currently.\n // No identifiers / member expressions.\n if (result.type === 'Literal') {\n const name = /** @type {string | number} */ (result.value)\n return own.call(state.components, name) ? state.components[name] : name\n }\n\n // Assume component.\n if (state.evaluater) {\n return state.evaluater.evaluateExpression(result)\n }\n\n crashEstree(state)\n}\n\n/**\n * @param {State} state\n * @param {Position | undefined} [place]\n * @returns {never}\n */\nfunction crashEstree(state, place) {\n const message = new VFileMessage(\n 'Cannot handle MDX estrees without `createEvaluater`',\n {\n ancestors: state.ancestors,\n place,\n ruleId: 'mdx-estree',\n source: 'hast-util-to-jsx-runtime'\n }\n )\n message.file = state.filePath || undefined\n message.url = docs + '#cannot-handle-mdx-estrees-without-createevaluater'\n\n throw message\n}\n\n/**\n * Transform a DOM casing style object to a CSS casing style object.\n *\n * @param {Style} domCasing\n * @returns {Style}\n */\nfunction transformStylesToCssCasing(domCasing) {\n /** @type {Style} */\n const cssCasing = {}\n /** @type {string} */\n let from\n\n for (from in domCasing) {\n if (own.call(domCasing, from)) {\n cssCasing[transformStyleToCssCasing(from)] = domCasing[from]\n }\n }\n\n return cssCasing\n}\n\n/**\n * Transform a DOM casing style field to a CSS casing style field.\n *\n * @param {string} from\n * @returns {string}\n */\nfunction transformStyleToCssCasing(from) {\n let to = from.replace(cap, toDash)\n // Handle `ms-xxx` -> `-ms-xxx`.\n if (to.slice(0, 3) === 'ms-') to = '-' + to\n return to\n}\n\n/**\n * Make `$0` dash cased.\n *\n * @param {string} $0\n * Capitalized ASCII leter.\n * @returns {string}\n * Dash and lower letter.\n */\nfunction toDash($0) {\n return '-' + $0.toLowerCase()\n}\n", "/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Get the ending point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointEnd = point('end')\n\n/**\n * Get the starting point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointStart = point('start')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'end' | 'start'} type\n * Side.\n * @returns\n * Getter.\n */\nfunction point(type) {\n return point\n\n /**\n * Get the point info of `node` at a bound side.\n *\n * @param {Node | NodeLike | null | undefined} [node]\n * @returns {Point | undefined}\n */\n function point(node) {\n const point = (node && node.position && node.position[type]) || {}\n\n if (\n typeof point.line === 'number' &&\n point.line > 0 &&\n typeof point.column === 'number' &&\n point.column > 0\n ) {\n return {\n line: point.line,\n column: point.column,\n offset:\n typeof point.offset === 'number' && point.offset > -1\n ? point.offset\n : undefined\n }\n }\n }\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {Node | NodeLike | null | undefined} [node]\n * Node.\n * @returns {Position | undefined}\n * Position.\n */\nexport function position(node) {\n const start = pointStart(node)\n const end = pointEnd(node)\n\n if (start && end) {\n return {start, end}\n }\n}\n", "/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n */\n\n/**\n * Serialize the positional info of a point, position (start and end points),\n * or node.\n *\n * @param {Node | NodeLike | Point | PointLike | Position | PositionLike | null | undefined} [value]\n * Node, position, or point.\n * @returns {string}\n * Pretty printed positional info of a node (`string`).\n *\n * In the format of a range `ls:cs-le:ce` (when given `node` or `position`)\n * or a point `l:c` (when given `point`), where `l` stands for line, `c` for\n * column, `s` for `start`, and `e` for end.\n * An empty string (`''`) is returned if the given value is neither `node`,\n * `position`, nor `point`.\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if ('position' in value || 'type' in value) {\n return position(value.position)\n }\n\n // Position.\n if ('start' in value || 'end' in value) {\n return position(value)\n }\n\n // Point.\n if ('line' in value || 'column' in value) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point | PointLike | null | undefined} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position | PositionLike | null | undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number | null | undefined} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n", "/**\n * @import {Node, Point, Position} from 'unist'\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef Options\n * Configuration.\n * @property {Array<Node> | null | undefined} [ancestors]\n * Stack of (inclusive) ancestor nodes surrounding the message (optional).\n * @property {Error | null | undefined} [cause]\n * Original error cause of the message (optional).\n * @property {Point | Position | null | undefined} [place]\n * Place of message (optional).\n * @property {string | null | undefined} [ruleId]\n * Category of message (optional, example: `'my-rule'`).\n * @property {string | null | undefined} [source]\n * Namespace of who sent the message (optional, example: `'my-package'`).\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\n/**\n * Message.\n */\nexport class VFileMessage extends Error {\n /**\n * Create a message for `reason`.\n *\n * > \uD83E\uDEA6 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {Options | null | undefined} [options]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | Options | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns\n * Instance of `VFileMessage`.\n */\n // eslint-disable-next-line complexity\n constructor(causeOrReason, optionsOrParentOrPlace, origin) {\n super()\n\n if (typeof optionsOrParentOrPlace === 'string') {\n origin = optionsOrParentOrPlace\n optionsOrParentOrPlace = undefined\n }\n\n /** @type {string} */\n let reason = ''\n /** @type {Options} */\n let options = {}\n let legacyCause = false\n\n if (optionsOrParentOrPlace) {\n // Point.\n if (\n 'line' in optionsOrParentOrPlace &&\n 'column' in optionsOrParentOrPlace\n ) {\n options = {place: optionsOrParentOrPlace}\n }\n // Position.\n else if (\n 'start' in optionsOrParentOrPlace &&\n 'end' in optionsOrParentOrPlace\n ) {\n options = {place: optionsOrParentOrPlace}\n }\n // Node.\n else if ('type' in optionsOrParentOrPlace) {\n options = {\n ancestors: [optionsOrParentOrPlace],\n place: optionsOrParentOrPlace.position\n }\n }\n // Options.\n else {\n options = {...optionsOrParentOrPlace}\n }\n }\n\n if (typeof causeOrReason === 'string') {\n reason = causeOrReason\n }\n // Error.\n else if (!options.cause && causeOrReason) {\n legacyCause = true\n reason = causeOrReason.message\n options.cause = causeOrReason\n }\n\n if (!options.ruleId && !options.source && typeof origin === 'string') {\n const index = origin.indexOf(':')\n\n if (index === -1) {\n options.ruleId = origin\n } else {\n options.source = origin.slice(0, index)\n options.ruleId = origin.slice(index + 1)\n }\n }\n\n if (!options.place && options.ancestors && options.ancestors) {\n const parent = options.ancestors[options.ancestors.length - 1]\n\n if (parent) {\n options.place = parent.position\n }\n }\n\n const start =\n options.place && 'start' in options.place\n ? options.place.start\n : options.place\n\n /**\n * Stack of ancestor nodes surrounding the message.\n *\n * @type {Array<Node> | undefined}\n */\n this.ancestors = options.ancestors || undefined\n\n /**\n * Original error cause of the message.\n *\n * @type {Error | undefined}\n */\n this.cause = options.cause || undefined\n\n /**\n * Starting column of message.\n *\n * @type {number | undefined}\n */\n this.column = start ? start.column : undefined\n\n /**\n * State of problem.\n *\n * * `true` \u2014 error, file not usable\n * * `false` \u2014 warning, change may be needed\n * * `undefined` \u2014 change likely not needed\n *\n * @type {boolean | null | undefined}\n */\n this.fatal = undefined\n\n /**\n * Path of a file (used throughout the `VFile` ecosystem).\n *\n * @type {string | undefined}\n */\n this.file = ''\n\n // Field from `Error`.\n /**\n * Reason for message.\n *\n * @type {string}\n */\n this.message = reason\n\n /**\n * Starting line of error.\n *\n * @type {number | undefined}\n */\n this.line = start ? start.line : undefined\n\n // Field from `Error`.\n /**\n * Serialized positional info of message.\n *\n * On normal errors, this would be something like `ParseError`, buit in\n * `VFile` messages we use this space to show where an error happened.\n */\n this.name = stringifyPosition(options.place) || '1:1'\n\n /**\n * Place of message.\n *\n * @type {Point | Position | undefined}\n */\n this.place = options.place || undefined\n\n /**\n * Reason for message, should use markdown.\n *\n * @type {string}\n */\n this.reason = this.message\n\n /**\n * Category of message (example: `'my-rule'`).\n *\n * @type {string | undefined}\n */\n this.ruleId = options.ruleId || undefined\n\n /**\n * Namespace of message (example: `'my-package'`).\n *\n * @type {string | undefined}\n */\n this.source = options.source || undefined\n\n // Field from `Error`.\n /**\n * Stack of message.\n *\n * This is used by normal errors to show where something happened in\n * programming code, irrelevant for `VFile` messages,\n *\n * @type {string}\n */\n this.stack =\n legacyCause && options.cause && typeof options.cause.stack === 'string'\n ? options.cause.stack\n : ''\n\n // The following fields are \u201Cwell known\u201D.\n // Not standard.\n // Feel free to add other non-standard fields to your messages.\n\n /**\n * Specify the source value that\u2019s being reported, which is deemed\n * incorrect.\n *\n * @type {string | undefined}\n */\n this.actual = undefined\n\n /**\n * Suggest acceptable values that can be used instead of `actual`.\n *\n * @type {Array<string> | undefined}\n */\n this.expected = undefined\n\n /**\n * Long form description of the message (you should use markdown).\n *\n * @type {string | undefined}\n */\n this.note = undefined\n\n /**\n * Link to docs for the message.\n *\n * > \uD83D\uDC49 **Note**: this must be an absolute URL that can be passed as `x`\n * > to `new URL(x)`.\n *\n * @type {string | undefined}\n */\n this.url = undefined\n }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.column = undefined\nVFileMessage.prototype.line = undefined\nVFileMessage.prototype.ancestors = undefined\nVFileMessage.prototype.cause = undefined\nVFileMessage.prototype.fatal = undefined\nVFileMessage.prototype.place = undefined\nVFileMessage.prototype.ruleId = undefined\nVFileMessage.prototype.source = undefined\n", "/**\n * HTML URL properties.\n *\n * Each key is a property name and each value is a list of tag names it applies\n * to or `null` if it applies to all elements.\n *\n * @type {Record<string, Array<string> | null>}\n */\nexport const urlAttributes = {\n action: ['form'],\n cite: ['blockquote', 'del', 'ins', 'q'],\n data: ['object'],\n formAction: ['button', 'input'],\n href: ['a', 'area', 'base', 'link'],\n icon: ['menuitem'],\n itemId: null,\n manifest: ['html'],\n ping: ['a', 'area'],\n poster: ['video'],\n src: [\n 'audio',\n 'embed',\n 'iframe',\n 'img',\n 'input',\n 'script',\n 'source',\n 'track',\n 'video'\n ]\n}\n", "/**\n * @import {Element, ElementContent, Nodes, Parents, Root} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {ComponentProps, ElementType, ReactElement} from 'react'\n * @import {Options as RemarkRehypeOptions} from 'remark-rehype'\n * @import {BuildVisitor} from 'unist-util-visit'\n * @import {PluggableList, Processor} from 'unified'\n */\n\n/**\n * @callback AllowElement\n * Filter elements.\n * @param {Readonly<Element>} element\n * Element to check.\n * @param {number} index\n * Index of `element` in `parent`.\n * @param {Readonly<Parents> | undefined} parent\n * Parent of `element`.\n * @returns {boolean | null | undefined}\n * Whether to allow `element` (default: `false`).\n */\n\n/**\n * @typedef ExtraProps\n * Extra fields we pass.\n * @property {Element | undefined} [node]\n * passed when `passNode` is on.\n */\n\n/**\n * @typedef {{\n * [Key in Extract<ElementType, string>]?: ElementType<ComponentProps<Key> & ExtraProps>\n * }} Components\n * Map tag names to components.\n */\n\n/**\n * @typedef Deprecation\n * Deprecation.\n * @property {string} from\n * Old field.\n * @property {string} id\n * ID in readme.\n * @property {keyof Options} [to]\n * New field.\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {AllowElement | null | undefined} [allowElement]\n * Filter elements (optional);\n * `allowedElements` / `disallowedElements` is used first.\n * @property {ReadonlyArray<string> | null | undefined} [allowedElements]\n * Tag names to allow (default: all tag names);\n * cannot combine w/ `disallowedElements`.\n * @property {string | null | undefined} [children]\n * Markdown.\n * @property {string | null | undefined} [className]\n * Wrap in a `div` with this class name.\n * @property {Components | null | undefined} [components]\n * Map tag names to components.\n * @property {ReadonlyArray<string> | null | undefined} [disallowedElements]\n * Tag names to disallow (default: `[]`);\n * cannot combine w/ `allowedElements`.\n * @property {PluggableList | null | undefined} [rehypePlugins]\n * List of rehype plugins to use.\n * @property {PluggableList | null | undefined} [remarkPlugins]\n * List of remark plugins to use.\n * @property {Readonly<RemarkRehypeOptions> | null | undefined} [remarkRehypeOptions]\n * Options to pass through to `remark-rehype`.\n * @property {boolean | null | undefined} [skipHtml=false]\n * Ignore HTML in markdown completely (default: `false`).\n * @property {boolean | null | undefined} [unwrapDisallowed=false]\n * Extract (unwrap) what\u2019s in disallowed elements (default: `false`);\n * normally when say `strong` is not allowed, it and it\u2019s children are dropped,\n * with `unwrapDisallowed` the element itself is replaced by its children.\n * @property {UrlTransform | null | undefined} [urlTransform]\n * Change URLs (default: `defaultUrlTransform`)\n */\n\n/**\n * @callback UrlTransform\n * Transform all URLs.\n * @param {string} url\n * URL.\n * @param {string} key\n * Property name (example: `'href'`).\n * @param {Readonly<Element>} node\n * Node.\n * @returns {string | null | undefined}\n * Transformed URL (optional).\n */\n\nimport {unreachable} from 'devlop'\nimport {toJsxRuntime} from 'hast-util-to-jsx-runtime'\nimport {urlAttributes} from 'html-url-attributes'\nimport {Fragment, jsx, jsxs} from 'react/jsx-runtime'\nimport {createElement, useEffect, useState} from 'react'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport {unified} from 'unified'\nimport {visit} from 'unist-util-visit'\nimport {VFile} from 'vfile'\n\nconst changelog =\n 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {PluggableList} */\nconst emptyPlugins = []\n/** @type {Readonly<RemarkRehypeOptions>} */\nconst emptyRemarkRehypeOptions = {allowDangerousHtml: true}\nconst safeProtocol = /^(https?|ircs?|mailto|xmpp)$/i\n\n// Mutable because we `delete` any time it\u2019s used and a message is sent.\n/** @type {ReadonlyArray<Readonly<Deprecation>>} */\nconst deprecations = [\n {from: 'astPlugins', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'allowDangerousHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {\n from: 'allowNode',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowElement'\n },\n {\n from: 'allowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowedElements'\n },\n {\n from: 'disallowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'disallowedElements'\n },\n {from: 'escapeHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'includeElementIndex', id: '#remove-includeelementindex'},\n {\n from: 'includeNodeIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n },\n {from: 'linkTarget', id: 'remove-linktarget'},\n {from: 'plugins', id: 'change-plugins-to-remarkplugins', to: 'remarkPlugins'},\n {from: 'rawSourcePos', id: '#remove-rawsourcepos'},\n {from: 'renderers', id: 'change-renderers-to-components', to: 'components'},\n {from: 'source', id: 'change-source-to-children', to: 'children'},\n {from: 'sourcePos', id: '#remove-sourcepos'},\n {from: 'transformImageUri', id: '#add-urltransform', to: 'urlTransform'},\n {from: 'transformLinkUri', id: '#add-urltransform', to: 'urlTransform'}\n]\n\n/**\n * Component to render markdown.\n *\n * This is a synchronous component.\n * When using async plugins,\n * see {@linkcode MarkdownAsync} or {@linkcode MarkdownHooks}.\n *\n * @param {Readonly<Options>} options\n * Props.\n * @returns {ReactElement}\n * React element.\n */\nexport function Markdown(options) {\n const processor = createProcessor(options)\n const file = createFile(options)\n return post(processor.runSync(processor.parse(file), file), options)\n}\n\n/**\n * Component to render markdown with support for async plugins\n * through async/await.\n *\n * Components returning promises are supported on the server.\n * For async support on the client,\n * see {@linkcode MarkdownHooks}.\n *\n * @param {Readonly<Options>} options\n * Props.\n * @returns {Promise<ReactElement>}\n * Promise to a React element.\n */\nexport async function MarkdownAsync(options) {\n const processor = createProcessor(options)\n const file = createFile(options)\n const tree = await processor.run(processor.parse(file), file)\n return post(tree, options)\n}\n\n/**\n * Component to render markdown with support for async plugins through hooks.\n *\n * This uses `useEffect` and `useState` hooks.\n * Hooks run on the client and do not immediately render something.\n * For async support on the server,\n * see {@linkcode MarkdownAsync}.\n *\n * @param {Readonly<Options>} options\n * Props.\n * @returns {ReactElement}\n * React element.\n */\nexport function MarkdownHooks(options) {\n const processor = createProcessor(options)\n const [error, setError] = useState(\n /** @type {Error | undefined} */ (undefined)\n )\n const [tree, setTree] = useState(/** @type {Root | undefined} */ (undefined))\n\n useEffect(\n /* c8 ignore next 7 -- hooks are client-only. */\n function () {\n const file = createFile(options)\n processor.run(processor.parse(file), file, function (error, tree) {\n setError(error)\n setTree(tree)\n })\n },\n [\n options.children,\n options.rehypePlugins,\n options.remarkPlugins,\n options.remarkRehypeOptions\n ]\n )\n\n /* c8 ignore next -- hooks are client-only. */\n if (error) throw error\n\n /* c8 ignore next -- hooks are client-only. */\n return tree ? post(tree, options) : createElement(Fragment)\n}\n\n/**\n * Set up the `unified` processor.\n *\n * @param {Readonly<Options>} options\n * Props.\n * @returns {Processor<MdastRoot, MdastRoot, Root, undefined, undefined>}\n * Result.\n */\nfunction createProcessor(options) {\n const rehypePlugins = options.rehypePlugins || emptyPlugins\n const remarkPlugins = options.remarkPlugins || emptyPlugins\n const remarkRehypeOptions = options.remarkRehypeOptions\n ? {...options.remarkRehypeOptions, ...emptyRemarkRehypeOptions}\n : emptyRemarkRehypeOptions\n\n const processor = unified()\n .use(remarkParse)\n .use(remarkPlugins)\n .use(remarkRehype, remarkRehypeOptions)\n .use(rehypePlugins)\n\n return processor\n}\n\n/**\n * Set up the virtual file.\n *\n * @param {Readonly<Options>} options\n * Props.\n * @returns {VFile}\n * Result.\n */\nfunction createFile(options) {\n const children = options.children || ''\n const file = new VFile()\n\n if (typeof children === 'string') {\n file.value = children\n } else {\n unreachable(\n 'Unexpected value `' +\n children +\n '` for `children` prop, expected `string`'\n )\n }\n\n return file\n}\n\n/**\n * Process the result from unified some more.\n *\n * @param {Nodes} tree\n * Tree.\n * @param {Readonly<Options>} options\n * Props.\n * @returns {ReactElement}\n * React element.\n */\nfunction post(tree, options) {\n const allowedElements = options.allowedElements\n const allowElement = options.allowElement\n const components = options.components\n const disallowedElements = options.disallowedElements\n const skipHtml = options.skipHtml\n const unwrapDisallowed = options.unwrapDisallowed\n const urlTransform = options.urlTransform || defaultUrlTransform\n\n for (const deprecation of deprecations) {\n if (Object.hasOwn(options, deprecation.from)) {\n unreachable(\n 'Unexpected `' +\n deprecation.from +\n '` prop, ' +\n (deprecation.to\n ? 'use `' + deprecation.to + '` instead'\n : 'remove it') +\n ' (see <' +\n changelog +\n '#' +\n deprecation.id +\n '> for more info)'\n )\n }\n }\n\n if (allowedElements && disallowedElements) {\n unreachable(\n 'Unexpected combined `allowedElements` and `disallowedElements`, expected one or the other'\n )\n }\n\n // Wrap in `div` if there\u2019s a class name.\n if (options.className) {\n tree = {\n type: 'element',\n tagName: 'div',\n properties: {className: options.className},\n // Assume no doctypes.\n children: /** @type {Array<ElementContent>} */ (\n tree.type === 'root' ? tree.children : [tree]\n )\n }\n }\n\n visit(tree, transform)\n\n return toJsxRuntime(tree, {\n Fragment,\n // @ts-expect-error\n // React components are allowed to return numbers,\n // but not according to the types in hast-util-to-jsx-runtime\n components,\n ignoreInvalidStyle: true,\n jsx,\n jsxs,\n passKeys: true,\n passNode: true\n })\n\n /** @type {BuildVisitor<Root>} */\n function transform(node, index, parent) {\n if (node.type === 'raw' && parent && typeof index === 'number') {\n if (skipHtml) {\n parent.children.splice(index, 1)\n } else {\n parent.children[index] = {type: 'text', value: node.value}\n }\n\n return index\n }\n\n if (node.type === 'element') {\n /** @type {string} */\n let key\n\n for (key in urlAttributes) {\n if (\n Object.hasOwn(urlAttributes, key) &&\n Object.hasOwn(node.properties, key)\n ) {\n const value = node.properties[key]\n const test = urlAttributes[key]\n if (test === null || test.includes(node.tagName)) {\n node.properties[key] = urlTransform(String(value || ''), key, node)\n }\n }\n }\n }\n\n if (node.type === 'element') {\n let remove = allowedElements\n ? !allowedElements.includes(node.tagName)\n : disallowedElements\n ? disallowedElements.includes(node.tagName)\n : false\n\n if (!remove && allowElement && typeof index === 'number') {\n remove = !allowElement(node, index, parent)\n }\n\n if (remove && parent && typeof index === 'number') {\n if (unwrapDisallowed && node.children) {\n parent.children.splice(index, 1, ...node.children)\n } else {\n parent.children.splice(index, 1)\n }\n\n return index\n }\n }\n }\n}\n\n/**\n * Make a URL safe.\n *\n * @satisfies {UrlTransform}\n * @param {string} value\n * URL.\n * @returns {string}\n * Safe URL.\n */\nexport function defaultUrlTransform(value) {\n // Same as:\n // <https://github.com/micromark/micromark/blob/929275e/packages/micromark-util-sanitize-uri/dev/index.js#L34>\n // But without the `encode` part.\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n\n if (\n // If there is no protocol, it\u2019s relative.\n colon === -1 ||\n // If the first colon is after a `?`, `#`, or `/`, it\u2019s not a protocol.\n (slash !== -1 && colon > slash) ||\n (questionMark !== -1 && colon > questionMark) ||\n (numberSign !== -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n safeProtocol.test(value.slice(0, colon))\n ) {\n return value\n }\n\n return ''\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\u2019s 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", "/// <reference lib=\"dom\" />\n\n/* global document */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string | false}\n */\nexport function decodeNamedCharacterReference(value) {\n const characterReference = '&' + value + ';'\n element.innerHTML = characterReference\n const character = element.textContent\n\n // Some named character references do not require the closing semicolon\n // (`&not`, for instance), which leads to situations where parsing the assumed\n // named reference of `&notit;` will result in the string `\u00ACit;`.\n // When we encounter a trailing semicolon after parsing, and the character\n // reference to decode was not a semicolon (`&semi;`), we can assume that the\n // matching was not complete.\n if (\n character.charCodeAt(character.length - 1) === 59 /* `;` */ &&\n value !== 'semi'\n ) {\n return false\n }\n\n // If the decoded string is equal to the input, the character reference was\n // not valid.\n return character === characterReference ? false : character\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\u2019s 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\u2019s 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\u2019s 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 * @import {\n * Extension,\n * Handles,\n * HtmlExtension,\n * NormalizedExtension\n * } from 'micromark-util-types'\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine multiple syntax extensions into one.\n *\n * @param {ReadonlyArray<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 * Nothing.\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 * List of constructs to merge into.\n * @param {Array<unknown>} list\n * List of constructs to merge.\n * @returns {undefined}\n * Nothing.\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 {ReadonlyArray<HtmlExtension>} htmlExtensions\n * List of HTML extensions.\n * @returns {HtmlExtension}\n * 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 * Nothing.\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 * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCodePoint(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base);\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 || code === 11 || code > 13 && code < 32 ||\n // Control character (DEL) of C0, and C1 controls.\n code > 126 && code < 160 ||\n // Lone high surrogates and low surrogates.\n code > 55_295 && code < 57_344 ||\n // Noncharacters.\n code > 64_975 && code < 65_008 || /* eslint-disable no-bitwise */\n (code & 65_535) === 65_535 || (code & 65_535) === 65_534 || /* eslint-enable no-bitwise */\n // Out of range\n code > 1_114_111) {\n return \"\\uFFFD\";\n }\n return String.fromCodePoint(code);\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 \u201Cuppercase\u201D, such as U+03F4 (`\u03F4`), but if their\n * lowercase counterpart (U+03B8 (`\u03B8`)) is uppercased will result in a different\n * uppercase character (U+0398 (`\u0398`)).\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 value\n // Collapse markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, \" \")\n // Trim.\n .replace(/^ | $/g, '')\n // Some characters are considered \u201Cuppercase\u201D, 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().toUpperCase();\n}", "/**\n * @import {Code} from 'micromark-util-types'\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 * Expression.\n * @returns {(code: Code) => boolean}\n * Check.\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}", "import { asciiAlphanumeric } from 'micromark-util-character';\nimport { encode } from 'micromark-util-encode';\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | null | undefined} url\n * URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n * Allowed protocols.\n * @returns {string}\n * Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''));\n if (!protocol) {\n return value;\n }\n const colon = value.indexOf(':');\n const questionMark = value.indexOf('?');\n const numberSign = value.indexOf('#');\n const slash = value.indexOf('/');\n if (\n // If there is no protocol, it\u2019s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it\u2019s not a protocol.\n slash > -1 && colon > slash || questionMark > -1 && colon > questionMark || numberSign > -1 && colon > numberSign ||\n // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))) {\n return value;\n }\n return '';\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * URI to normalize.\n * @returns {string}\n * Normalized URI.\n */\nexport function normalizeUri(value) {\n /** @type {Array<string>} */\n const result = [];\n let index = -1;\n let start = 0;\n let skip = 0;\n while (++index < value.length) {\n const code = value.charCodeAt(index);\n /** @type {string} */\n let replace = '';\n\n // A correct percent encoded value.\n if (code === 37 && asciiAlphanumeric(value.charCodeAt(index + 1)) && asciiAlphanumeric(value.charCodeAt(index + 2))) {\n skip = 2;\n }\n // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code);\n }\n }\n // Astral.\n else if (code > 55_295 && code < 57_344) {\n const next = value.charCodeAt(index + 1);\n\n // A correct surrogate pair.\n if (code < 56_320 && next > 56_319 && next < 57_344) {\n replace = String.fromCharCode(code, next);\n skip = 1;\n }\n // Lone surrogate.\n else {\n replace = \"\\uFFFD\";\n }\n }\n // Unicode.\n else {\n replace = String.fromCharCode(code);\n }\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace));\n start = index + skip + 1;\n replace = '';\n }\n if (skip) {\n index += skip;\n skip = 0;\n }\n }\n return result.join('') + value.slice(start);\n}", "/**\n * @import {Effects, State, TokenType} from 'micromark-util-types'\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 `\u2409` represents a tab (plus how much it expands) and `\u2420` represents a\n * single space.\n *\n * ```markdown\n * \u2409\n * \u2420\u2420\u2420\u2420\n * \u2409\u2420\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 * @import {\n * InitialConstruct,\n * Initializer,\n * State,\n * TokenizeContext,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {InitialConstruct} */\nexport const content = {\n tokenize: initializeContent\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Initializer}\n * Content.\n */\nfunction initializeContent(effects) {\n const contentStart = effects.attempt(this.parser.constructs.contentInitial, afterContentStartConstruct, paragraphInitial);\n /** @type {Token} */\n let previous;\n return contentStart;\n\n /** @type {State} */\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, contentStart, \"linePrefix\");\n }\n\n /** @type {State} */\n function paragraphInitial(code) {\n effects.enter(\"paragraph\");\n return lineStart(code);\n }\n\n /** @type {State} */\n function lineStart(code) {\n const token = effects.enter(\"chunkText\", {\n contentType: \"text\",\n previous\n });\n if (previous) {\n previous.next = token;\n }\n previous = token;\n return data(code);\n }\n\n /** @type {State} */\n function data(code) {\n if (code === null) {\n effects.exit(\"chunkText\");\n effects.exit(\"paragraph\");\n effects.consume(code);\n return;\n }\n if (markdownLineEnding(code)) {\n effects.consume(code);\n effects.exit(\"chunkText\");\n return lineStart;\n }\n\n // Data.\n effects.consume(code);\n return data;\n }\n}", "/**\n * @import {\n * Construct,\n * ContainerState,\n * InitialConstruct,\n * Initializer,\n * Point,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\n/**\n * @typedef {[Construct, ContainerState]} StackItem\n * Construct and its state.\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { splice } from 'micromark-util-chunked';\n/** @type {InitialConstruct} */\nexport const document = {\n tokenize: initializeDocument\n};\n\n/** @type {Construct} */\nconst containerConstruct = {\n tokenize: tokenizeContainer\n};\n\n/**\n * @this {TokenizeContext}\n * Self.\n * @type {Initializer}\n * Initializer.\n */\nfunction initializeDocument(effects) {\n const self = this;\n /** @type {Array<StackItem>} */\n const stack = [];\n let continued = 0;\n /** @type {TokenizeContext | undefined} */\n let childFlow;\n /** @type {Token | undefined} */\n let childToken;\n /** @type {number} */\n let lineStartOffset;\n return start;\n\n /** @type {State} */\n function start(code) {\n // First we iterate through the open blocks, starting with the root\n // document, and descending through last children down to the last open\n // block.\n // Each block imposes a condition that the line must satisfy if the block is\n // to remain open.\n // For example, a block quote requires a `>` character.\n // A paragraph requires a non-blank line.\n // In this phase we may match all or just some of the open blocks.\n // But we cannot close unmatched blocks yet, because we may have a lazy\n // continuation line.\n if (continued < stack.length) {\n const item = stack[continued];\n self.containerState = item[1];\n return effects.attempt(item[0].continuation, documentContinue, checkNewContainers)(code);\n }\n\n // Done.\n return checkNewContainers(code);\n }\n\n /** @type {State} */\n function documentContinue(code) {\n continued++;\n\n // Note: this field is called `_closeFlow` but it also closes containers.\n // Perhaps a good idea to rename it but it\u2019s already used in the wild by\n // extensions.\n if (self.containerState._closeFlow) {\n self.containerState._closeFlow = undefined;\n if (childFlow) {\n closeFlow();\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when dealing with lazy lines in `writeToChild`.\n const indexBeforeExits = self.events.length;\n let indexBeforeFlow = indexBeforeExits;\n /** @type {Point | undefined} */\n let point;\n\n // Find the flow chunk.\n while (indexBeforeFlow--) {\n if (self.events[indexBeforeFlow][0] === 'exit' && self.events[indexBeforeFlow][1].type === \"chunkFlow\") {\n point = self.events[indexBeforeFlow][1].end;\n break;\n }\n }\n exitContainers(continued);\n\n // Fix positions.\n let index = indexBeforeExits;\n while (index < self.events.length) {\n self.events[index][1].end = {\n ...point\n };\n index++;\n }\n\n // Inject the exits earlier (they\u2019re still also at the end).\n splice(self.events, indexBeforeFlow + 1, 0, self.events.slice(indexBeforeExits));\n\n // Discard the duplicate exits.\n self.events.length = index;\n return checkNewContainers(code);\n }\n return start(code);\n }\n\n /** @type {State} */\n function checkNewContainers(code) {\n // Next, after consuming the continuation markers for existing blocks, we\n // look for new block starts (e.g. `>` for a block quote).\n // If we encounter a new block start, we close any blocks unmatched in\n // step 1 before creating the new block as a child of the last matched\n // block.\n if (continued === stack.length) {\n // No need to `check` whether there\u2019s a container, of `exitContainers`\n // would be moot.\n // We can instead immediately `attempt` to parse one.\n if (!childFlow) {\n return documentContinued(code);\n }\n\n // If we have concrete content, such as block HTML or fenced code,\n // we can\u2019t have containers \u201Cpierce\u201D into them, so we can immediately\n // start.\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code);\n }\n\n // If we do have flow, it could still be a blank line,\n // but we\u2019d be interrupting it w/ a new container if there\u2019s a current\n // construct.\n // To do: next major: remove `_gfmTableDynamicInterruptHack` (no longer\n // needed in micromark-extension-gfm-table@1.0.6).\n self.interrupt = Boolean(childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack);\n }\n\n // Check if there is a new container.\n self.containerState = {};\n return effects.check(containerConstruct, thereIsANewContainer, thereIsNoNewContainer)(code);\n }\n\n /** @type {State} */\n function thereIsANewContainer(code) {\n if (childFlow) closeFlow();\n exitContainers(continued);\n return documentContinued(code);\n }\n\n /** @type {State} */\n function thereIsNoNewContainer(code) {\n self.parser.lazy[self.now().line] = continued !== stack.length;\n lineStartOffset = self.now().offset;\n return flowStart(code);\n }\n\n /** @type {State} */\n function documentContinued(code) {\n // Try new containers.\n self.containerState = {};\n return effects.attempt(containerConstruct, containerContinue, flowStart)(code);\n }\n\n /** @type {State} */\n function containerContinue(code) {\n continued++;\n stack.push([self.currentConstruct, self.containerState]);\n // Try another.\n return documentContinued(code);\n }\n\n /** @type {State} */\n function flowStart(code) {\n if (code === null) {\n if (childFlow) closeFlow();\n exitContainers(0);\n effects.consume(code);\n return;\n }\n childFlow = childFlow || self.parser.flow(self.now());\n effects.enter(\"chunkFlow\", {\n _tokenizer: childFlow,\n contentType: \"flow\",\n previous: childToken\n });\n return flowContinue(code);\n }\n\n /** @type {State} */\n function flowContinue(code) {\n if (code === null) {\n writeToChild(effects.exit(\"chunkFlow\"), true);\n exitContainers(0);\n effects.consume(code);\n return;\n }\n if (markdownLineEnding(code)) {\n effects.consume(code);\n writeToChild(effects.exit(\"chunkFlow\"));\n // Get ready for the next line.\n continued = 0;\n self.interrupt = undefined;\n return start;\n }\n effects.consume(code);\n return flowContinue;\n }\n\n /**\n * @param {Token} token\n * Token.\n * @param {boolean | undefined} [endOfFile]\n * Whether the token is at the end of the file (default: `false`).\n * @returns {undefined}\n * Nothing.\n */\n function writeToChild(token, endOfFile) {\n const stream = self.sliceStream(token);\n if (endOfFile) stream.push(null);\n token.previous = childToken;\n if (childToken) childToken.next = token;\n childToken = token;\n childFlow.defineSkip(token.start);\n childFlow.write(stream);\n\n // Alright, so we just added a lazy line:\n //\n // ```markdown\n // > a\n // b.\n //\n // Or:\n //\n // > ~~~c\n // d\n //\n // Or:\n //\n // > | e |\n // f\n // ```\n //\n // The construct in the second example (fenced code) does not accept lazy\n // lines, so it marked itself as done at the end of its first line, and\n // then the content construct parses `d`.\n // Most constructs in markdown match on the first line: if the first line\n // forms a construct, a non-lazy line can\u2019t \u201Cunmake\u201D it.\n //\n // The construct in the third example is potentially a GFM table, and\n // those are *weird*.\n // It *could* be a table, from the first line, if the following line\n // matches a condition.\n // In this case, that second line is lazy, which \u201Cunmakes\u201D the first line\n // and turns the whole into one content block.\n //\n // We\u2019ve now parsed the non-lazy and the lazy line, and can figure out\n // whether the lazy line started a new flow block.\n // If it did, we exit the current containers between the two flow blocks.\n if (self.parser.lazy[token.start.line]) {\n let index = childFlow.events.length;\n while (index--) {\n if (\n // The token starts before the line ending\u2026\n childFlow.events[index][1].start.offset < lineStartOffset && (\n // \u2026and either is not ended yet\u2026\n !childFlow.events[index][1].end ||\n // \u2026or ends after it.\n childFlow.events[index][1].end.offset > lineStartOffset)) {\n // Exit: there\u2019s still something open, which means it\u2019s a lazy line\n // part of something.\n return;\n }\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when closing flow in `documentContinue`.\n const indexBeforeExits = self.events.length;\n let indexBeforeFlow = indexBeforeExits;\n /** @type {boolean | undefined} */\n let seen;\n /** @type {Point | undefined} */\n let point;\n\n // Find the previous chunk (the one before the lazy line).\n while (indexBeforeFlow--) {\n if (self.events[indexBeforeFlow][0] === 'exit' && self.events[indexBeforeFlow][1].type === \"chunkFlow\") {\n if (seen) {\n point = self.events[indexBeforeFlow][1].end;\n break;\n }\n seen = true;\n }\n }\n exitContainers(continued);\n\n // Fix positions.\n index = indexBeforeExits;\n while (index < self.events.length) {\n self.events[index][1].end = {\n ...point\n };\n index++;\n }\n\n // Inject the exits earlier (they\u2019re still also at the end).\n splice(self.events, indexBeforeFlow + 1, 0, self.events.slice(indexBeforeExits));\n\n // Discard the duplicate exits.\n self.events.length = index;\n }\n }\n\n /**\n * @param {number} size\n * Size.\n * @returns {undefined}\n * Nothing.\n */\n function exitContainers(size) {\n let index = stack.length;\n\n // Exit open containers.\n while (index-- > size) {\n const entry = stack[index];\n self.containerState = entry[1];\n entry[0].exit.call(self, effects);\n }\n stack.length = size;\n }\n function closeFlow() {\n childFlow.write([null]);\n childToken = undefined;\n childFlow = undefined;\n self.containerState._closeFlow = undefined;\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n * Tokenizer.\n */\nfunction tokenizeContainer(effects, ok, nok) {\n // Always populated by defaults.\n\n return factorySpace(effects, effects.attempt(this.parser.constructs.document, ok, nok), \"linePrefix\", this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4);\n}", "/**\n * @import {Code} from 'micromark-util-types'\n */\n\nimport { markdownLineEndingOrSpace, unicodePunctuation, unicodeWhitespace } 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 * > \uD83D\uDC49 **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 (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return 1;\n }\n if (unicodePunctuation(code)) {\n return 2;\n }\n}", "/**\n * @import {Event, Resolver, TokenizeContext} from 'micromark-util-types'\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {ReadonlyArray<{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 * @import {\n * Code,\n * Construct,\n * Event,\n * Point,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { push, splice } from 'micromark-util-chunked';\nimport { classifyCharacter } from 'micromark-util-classify-character';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n resolveAll: resolveAllAttention,\n tokenize: tokenizeAttention\n};\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n// eslint-disable-next-line complexity\nfunction resolveAllAttention(events, context) {\n let index = -1;\n /** @type {number} */\n let open;\n /** @type {Token} */\n let group;\n /** @type {Token} */\n let text;\n /** @type {Token} */\n let openingSequence;\n /** @type {Token} */\n let closingSequence;\n /** @type {number} */\n let use;\n /** @type {Array<Event>} */\n let nextEvents;\n /** @type {number} */\n let offset;\n\n // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it\u2019s\n // a bottleneck for malicious stuff.\n while (++index < events.length) {\n // Find a token that can close.\n if (events[index][0] === 'enter' && events[index][1].type === 'attentionSequence' && events[index][1]._close) {\n 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 (events[open][0] === 'exit' && events[open][1].type === 'attentionSequence' && events[open][1]._open &&\n // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) === context.sliceSerialize(events[index][1]).charCodeAt(0)) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don\u2019t match.\n if ((events[open][1]._close || events[index][1]._open) && (events[index][1].end.offset - events[index][1].start.offset) % 3 && !((events[open][1].end.offset - events[open][1].start.offset + events[index][1].end.offset - events[index][1].start.offset) % 3)) {\n continue;\n }\n\n // Number of markers to use from the sequence.\n use = events[open][1].end.offset - events[open][1].start.offset > 1 && events[index][1].end.offset - events[index][1].start.offset > 1 ? 2 : 1;\n const start = {\n ...events[open][1].end\n };\n const end = {\n ...events[index][1].start\n };\n movePoint(start, -use);\n movePoint(end, use);\n openingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start,\n end: {\n ...events[open][1].end\n }\n };\n closingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start: {\n ...events[index][1].start\n },\n end\n };\n text = {\n type: use > 1 ? \"strongText\" : \"emphasisText\",\n start: {\n ...events[open][1].end\n },\n end: {\n ...events[index][1].start\n }\n };\n group = {\n type: use > 1 ? \"strong\" : \"emphasis\",\n start: {\n ...openingSequence.start\n },\n end: {\n ...closingSequence.end\n }\n };\n events[open][1].end = {\n ...openingSequence.start\n };\n events[index][1].start = {\n ...closingSequence.end\n };\n nextEvents = [];\n\n // If there are more markers in the opening, add them before.\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [['enter', events[open][1], context], ['exit', events[open][1], context]]);\n }\n\n // Opening.\n nextEvents = push(nextEvents, [['enter', group, context], ['enter', openingSequence, context], ['exit', openingSequence, context], ['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = push(nextEvents, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + 1, index), context));\n\n // Closing.\n nextEvents = push(nextEvents, [['exit', text, context], ['enter', closingSequence, context], ['exit', closingSequence, context], ['exit', group, context]]);\n\n // If there are more markers in the closing, add them after.\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2;\n nextEvents = push(nextEvents, [['enter', events[index][1], context], ['exit', events[index][1], context]]);\n } else {\n offset = 0;\n }\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - offset - 2;\n break;\n }\n }\n }\n }\n\n // Remove remaining sequences.\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data';\n }\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null;\n const previous = this.previous;\n const before = classifyCharacter(previous);\n\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n marker = code;\n effects.enter('attentionSequence');\n return inside(code);\n }\n\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n const token = effects.exit('attentionSequence');\n\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = classifyCharacter(code);\n\n // Always populated by defaults.\n\n const open = !after || after === 2 && before || attentionMarkers.includes(code);\n const close = !before || before === 2 && after || attentionMarkers.includes(previous);\n token._open = Boolean(marker === 42 ? open : open && (before || !close));\n token._close = Boolean(marker === 42 ? close : close && (after || !open));\n return ok(code);\n }\n}\n\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It\u2019s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * Point.\n * @param {number} offset\n * Amount to move.\n * @returns {undefined}\n * Nothing.\n */\nfunction movePoint(point, offset) {\n point.column += offset;\n point.offset += offset;\n point._bufferIndex += offset;\n}", "/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { asciiAlphanumeric, asciiAlpha, asciiAtext, asciiControl } from 'micromark-util-character';\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0;\n return start;\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"autolink\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.enter(\"autolinkProtocol\");\n return open;\n }\n\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code);\n return schemeOrEmailAtext;\n }\n if (code === 64) {\n return nok(code);\n }\n return emailAtext(code);\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {\n // Count the previous alphabetical from `open` too.\n size = 1;\n return schemeInsideOrEmailAtext(code);\n }\n return emailAtext(code);\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code);\n size = 0;\n return urlInside;\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if ((code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) && size++ < 32) {\n effects.consume(code);\n return schemeInsideOrEmailAtext;\n }\n size = 0;\n return emailAtext(code);\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === 62) {\n effects.exit(\"autolinkProtocol\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n\n // ASCII control, space, or `<`.\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code);\n }\n effects.consume(code);\n return urlInside;\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code);\n return emailAtSignOrDot;\n }\n if (asciiAtext(code)) {\n effects.consume(code);\n return emailAtext;\n }\n return nok(code);\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code);\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code);\n size = 0;\n return emailAtSignOrDot;\n }\n if (code === 62) {\n // Exit, then change the token type.\n effects.exit(\"autolinkProtocol\").type = \"autolinkEmail\";\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n return emailValue(code);\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | a<user.name@ex-ample.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n const next = code === 45 ? emailValue : emailLabel;\n effects.consume(code);\n return next;\n }\n return nok(code);\n }\n}", "/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const blankLine = {\n partial: true,\n tokenize: tokenizeBlankLine\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLine(effects, ok, nok) {\n return start;\n\n /**\n * Start of blank line.\n *\n * > \uD83D\uDC49 **Note**: `\u2420` represents a space character.\n *\n * ```markdown\n * > | \u2420\u2420\u240A\n * ^\n * > | \u240A\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n return markdownSpace(code) ? factorySpace(effects, after, \"linePrefix\")(code) : after(code);\n }\n\n /**\n * At eof/eol, after optional whitespace.\n *\n * > \uD83D\uDC49 **Note**: `\u2420` represents a space character.\n *\n * ```markdown\n * > | \u2420\u2420\u240A\n * ^\n * > | \u240A\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code);\n }\n}", "/**\n * @import {\n * Construct,\n * Exiter,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const blockQuote = {\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit,\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of block quote.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 62) {\n const state = self.containerState;\n if (!state.open) {\n effects.enter(\"blockQuote\", {\n _container: true\n });\n state.open = true;\n }\n effects.enter(\"blockQuotePrefix\");\n effects.enter(\"blockQuoteMarker\");\n effects.consume(code);\n effects.exit(\"blockQuoteMarker\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * After `>`, before optional whitespace.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter(\"blockQuotePrefixWhitespace\");\n effects.consume(code);\n effects.exit(\"blockQuotePrefixWhitespace\");\n effects.exit(\"blockQuotePrefix\");\n return ok;\n }\n effects.exit(\"blockQuotePrefix\");\n return ok(code);\n }\n}\n\n/**\n * Start of block quote continuation.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n const self = this;\n return contStart;\n\n /**\n * Start of block quote continuation.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contStart(code) {\n if (markdownSpace(code)) {\n // Always populated by defaults.\n\n return factorySpace(effects, contBefore, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n }\n return contBefore(code);\n }\n\n /**\n * At `>`, after optional whitespace.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contBefore(code) {\n return effects.attempt(blockQuote, ok, nok)(code);\n }\n}\n\n/** @type {Exiter} */\nfunction exit(effects) {\n effects.exit(\"blockQuote\");\n}", "/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { asciiPunctuation } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start;\n\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"characterEscape\");\n effects.enter(\"escapeMarker\");\n effects.consume(code);\n effects.exit(\"escapeMarker\");\n return inside;\n }\n\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // ASCII punctuation.\n if (asciiPunctuation(code)) {\n effects.enter(\"characterEscapeValue\");\n effects.consume(code);\n effects.exit(\"characterEscapeValue\");\n effects.exit(\"characterEscape\");\n return ok;\n }\n return nok(code);\n }\n}", "/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { asciiAlphanumeric, asciiDigit, asciiHexDigit } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this;\n let size = 0;\n /** @type {number} */\n let max;\n /** @type {(code: Code) => boolean} */\n let test;\n return start;\n\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&amp;b\n * ^\n * > | a&#123;b\n * ^\n * > | a&#x9;b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"characterReference\");\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarker\");\n return open;\n }\n\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&amp;b\n * ^\n * > | a&#123;b\n * ^\n * > | a&#x9;b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 35) {\n effects.enter(\"characterReferenceMarkerNumeric\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarkerNumeric\");\n return numeric;\n }\n effects.enter(\"characterReferenceValue\");\n max = 31;\n test = asciiAlphanumeric;\n return value(code);\n }\n\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a&#123;b\n * ^\n * > | a&#x9;b\n * ^\n * ```\n *\n * @type {State}\n */\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter(\"characterReferenceMarkerHexadecimal\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarkerHexadecimal\");\n effects.enter(\"characterReferenceValue\");\n max = 6;\n test = asciiHexDigit;\n return value;\n }\n effects.enter(\"characterReferenceValue\");\n max = 7;\n test = asciiDigit;\n return value(code);\n }\n\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&amp;b\n * ^^^\n * > | a&#123;b\n * ^^^\n * > | a&#x9;b\n * ^\n * ```\n *\n * @type {State}\n */\n function value(code) {\n if (code === 59 && size) {\n const token = effects.exit(\"characterReferenceValue\");\n if (test === asciiAlphanumeric && !decodeNamedCharacterReference(self.sliceSerialize(token))) {\n return nok(code);\n }\n\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarker\");\n effects.exit(\"characterReference\");\n return ok;\n }\n if (test(code) && size++ < max) {\n effects.consume(code);\n return value;\n }\n return nok(code);\n }\n}", "/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nconst nonLazyContinuation = {\n partial: true,\n tokenize: tokenizeNonLazyContinuation\n};\n\n/** @type {Construct} */\nexport const codeFenced = {\n concrete: true,\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this;\n /** @type {Construct} */\n const closeStart = {\n partial: true,\n tokenize: tokenizeCloseStart\n };\n let initialPrefix = 0;\n let sizeOpen = 0;\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code);\n }\n\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeSequenceOpen(code) {\n const tail = self.events[self.events.length - 1];\n initialPrefix = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n marker = code;\n effects.enter(\"codeFenced\");\n effects.enter(\"codeFencedFence\");\n effects.enter(\"codeFencedFenceSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++;\n effects.consume(code);\n return sequenceOpen;\n }\n if (sizeOpen < 3) {\n return nok(code);\n }\n effects.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code) ? factorySpace(effects, infoBefore, \"whitespace\")(code) : infoBefore(code);\n }\n\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function infoBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFencedFence\");\n return self.interrupt ? ok(code) : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter(\"codeFencedFenceInfo\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return info(code);\n }\n\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function info(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return infoBefore(code);\n }\n if (markdownSpace(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return factorySpace(effects, metaBefore, \"whitespace\")(code);\n }\n if (code === 96 && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return info;\n }\n\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function metaBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return infoBefore(code);\n }\n effects.enter(\"codeFencedFenceMeta\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return meta(code);\n }\n\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceMeta\");\n return infoBefore(code);\n }\n if (code === 96 && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return meta;\n }\n\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function atNonLazyBreak(code) {\n return effects.attempt(closeStart, after, contentBefore)(code);\n }\n\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentBefore(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return contentStart;\n }\n\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentStart(code) {\n return initialPrefix > 0 && markdownSpace(code) ? factorySpace(effects, beforeContentChunk, \"linePrefix\", initialPrefix + 1)(code) : beforeContentChunk(code);\n }\n\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeContentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter(\"codeFlowValue\");\n return contentChunk(code);\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFlowValue\");\n return beforeContentChunk(code);\n }\n effects.consume(code);\n return contentChunk;\n }\n\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n effects.exit(\"codeFenced\");\n return ok(code);\n }\n\n /**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\n function tokenizeCloseStart(effects, ok, nok) {\n let size = 0;\n return startBefore;\n\n /**\n *\n *\n * @type {State}\n */\n function startBefore(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return start;\n }\n\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Always populated by defaults.\n\n // To do: `enter` here or in next state?\n effects.enter(\"codeFencedFence\");\n return markdownSpace(code) ? factorySpace(effects, beforeSequenceClose, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : beforeSequenceClose(code);\n }\n\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter(\"codeFencedFenceSequence\");\n return sequenceClose(code);\n }\n return nok(code);\n }\n\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n if (code === marker) {\n size++;\n effects.consume(code);\n return sequenceClose;\n }\n if (size >= sizeOpen) {\n effects.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code) ? factorySpace(effects, sequenceCloseAfter, \"whitespace\")(code) : sequenceCloseAfter(code);\n }\n return nok(code);\n }\n\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceCloseAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFencedFence\");\n return ok(code);\n }\n return nok(code);\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n *\n *\n * @type {State}\n */\n function start(code) {\n if (code === null) {\n return nok(code);\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineStart;\n }\n\n /**\n *\n *\n * @type {State}\n */\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}", "/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented\n};\n\n/** @type {Construct} */\nconst furtherStart = {\n partial: true,\n tokenize: tokenizeFurtherStart\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCodeIndented(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of code (indented).\n *\n * > **Parsing note**: it is not needed to check if this first line is a\n * > filled line (that it has a non-whitespace character), because blank lines\n * > are parsed already, so we never run into that.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: manually check if interrupting like `markdown-rs`.\n\n effects.enter(\"codeIndented\");\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(effects, afterPrefix, \"linePrefix\", 4 + 1)(code);\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4 ? atBreak(code) : nok(code);\n }\n\n /**\n * At a break.\n *\n * ```markdown\n * > | aaa\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === null) {\n return after(code);\n }\n if (markdownLineEnding(code)) {\n return effects.attempt(furtherStart, atBreak, after)(code);\n }\n effects.enter(\"codeFlowValue\");\n return inside(code);\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * > | aaa\n * ^^^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFlowValue\");\n return atBreak(code);\n }\n effects.consume(code);\n return inside;\n }\n\n /** @type {State} */\n function after(code) {\n effects.exit(\"codeIndented\");\n // To do: allow interrupting like `markdown-rs`.\n // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeFurtherStart(effects, ok, nok) {\n const self = this;\n return furtherStart;\n\n /**\n * At eol, trying to parse another indent.\n *\n * ```markdown\n * > | aaa\n * ^\n * | bbb\n * ```\n *\n * @type {State}\n */\n function furtherStart(code) {\n // To do: improve `lazy` / `pierce` handling.\n // If this is a lazy line, it can\u2019t be code.\n if (self.parser.lazy[self.now().line]) {\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return furtherStart;\n }\n\n // To do: the code here in `micromark-js` is a bit different from\n // `markdown-rs` because there it can attempt spaces.\n // We can\u2019t yet.\n //\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(effects, afterPrefix, \"linePrefix\", 4 + 1)(code);\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4 ? ok(code) : markdownLineEnding(code) ? furtherStart(code) : nok(code);\n }\n}", "/**\n * @import {\n * Construct,\n * Previous,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n previous,\n resolve: resolveCodeText,\n tokenize: tokenizeCodeText\n};\n\n// To do: next major: don\u2019t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4;\n let headEnterIndex = 3;\n /** @type {number} */\n let index;\n /** @type {number | undefined} */\n let enter;\n\n // If we start and end with an EOL or a space.\n if ((events[headEnterIndex][1].type === \"lineEnding\" || events[headEnterIndex][1].type === 'space') && (events[tailExitIndex][1].type === \"lineEnding\" || events[tailExitIndex][1].type === 'space')) {\n index = headEnterIndex;\n\n // And we have data.\n while (++index < tailExitIndex) {\n if (events[index][1].type === \"codeTextData\") {\n // Then we have padding.\n events[headEnterIndex][1].type = \"codeTextPadding\";\n events[tailExitIndex][1].type = \"codeTextPadding\";\n headEnterIndex += 2;\n tailExitIndex -= 2;\n break;\n }\n }\n }\n\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1;\n tailExitIndex++;\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== \"lineEnding\") {\n enter = index;\n }\n } else if (index === tailExitIndex || events[index][1].type === \"lineEnding\") {\n events[enter][1].type = \"codeTextData\";\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n tailExitIndex -= index - enter - 2;\n index = enter + 2;\n }\n enter = undefined;\n }\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Previous}\n */\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return code !== 96 || this.events[this.events.length - 1][1].type === \"characterEscape\";\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this;\n let sizeOpen = 0;\n /** @type {number} */\n let size;\n /** @type {Token} */\n let token;\n return start;\n\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"codeText\");\n effects.enter(\"codeTextSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 96) {\n effects.consume(code);\n sizeOpen++;\n return sequenceOpen;\n }\n effects.exit(\"codeTextSequence\");\n return between(code);\n }\n\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */\n function between(code) {\n // EOF.\n if (code === null) {\n return nok(code);\n }\n\n // To do: next major: don\u2019t do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs don\u2019t work, and virtual spaces don\u2019t make sense.\n if (code === 32) {\n effects.enter('space');\n effects.consume(code);\n effects.exit('space');\n return between;\n }\n\n // Closing fence? Could also be data.\n if (code === 96) {\n token = effects.enter(\"codeTextSequence\");\n size = 0;\n return sequenceClose(code);\n }\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return between;\n }\n\n // Data.\n effects.enter(\"codeTextData\");\n return data(code);\n }\n\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 32 || code === 96 || markdownLineEnding(code)) {\n effects.exit(\"codeTextData\");\n return between(code);\n }\n effects.consume(code);\n return data;\n }\n\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n // More.\n if (code === 96) {\n effects.consume(code);\n size++;\n return sequenceClose;\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit(\"codeTextSequence\");\n effects.exit(\"codeText\");\n return ok(code);\n }\n\n // More or less accents: mark as data.\n token.type = \"codeTextData\";\n return data(code);\n }\n}", "/**\n * Some of the internal operations of micromark do lots of editing\n * operations on very large arrays. This runs into problems with two\n * properties of most circa-2020 JavaScript interpreters:\n *\n * - Array-length modifications at the high end of an array (push/pop) are\n * expected to be common and are implemented in (amortized) time\n * proportional to the number of elements added or removed, whereas\n * other operations (shift/unshift and splice) are much less efficient.\n * - Function arguments are passed on the stack, so adding tens of thousands\n * of elements to an array with `arr.push(...newElements)` will frequently\n * cause stack overflows. (see <https://stackoverflow.com/questions/22123769/rangeerror-maximum-call-stack-size-exceeded-why>)\n *\n * SpliceBuffers are an implementation of gap buffers, which are a\n * generalization of the \"queue made of two stacks\" idea. The splice buffer\n * maintains a cursor, and moving the cursor has cost proportional to the\n * distance the cursor moves, but inserting, deleting, or splicing in\n * new information at the cursor is as efficient as the push/pop operation.\n * This allows for an efficient sequence of splices (or pushes, pops, shifts,\n * or unshifts) as long such edits happen at the same part of the array or\n * generally sweep through the array from the beginning to the end.\n *\n * The interface for splice buffers also supports large numbers of inputs by\n * passing a single array argument rather passing multiple arguments on the\n * function call stack.\n *\n * @template T\n * Item type.\n */\nexport class SpliceBuffer {\n /**\n * @param {ReadonlyArray<T> | null | undefined} [initial]\n * Initial items (optional).\n * @returns\n * Splice buffer.\n */\n constructor(initial) {\n /** @type {Array<T>} */\n this.left = initial ? [...initial] : [];\n /** @type {Array<T>} */\n this.right = [];\n }\n\n /**\n * Array access;\n * does not move the cursor.\n *\n * @param {number} index\n * Index.\n * @return {T}\n * Item.\n */\n get(index) {\n if (index < 0 || index >= this.left.length + this.right.length) {\n throw new RangeError('Cannot access index `' + index + '` in a splice buffer of size `' + (this.left.length + this.right.length) + '`');\n }\n if (index < this.left.length) return this.left[index];\n return this.right[this.right.length - index + this.left.length - 1];\n }\n\n /**\n * The length of the splice buffer, one greater than the largest index in the\n * array.\n */\n get length() {\n return this.left.length + this.right.length;\n }\n\n /**\n * Remove and return `list[0]`;\n * moves the cursor to `0`.\n *\n * @returns {T | undefined}\n * Item, optional.\n */\n shift() {\n this.setCursor(0);\n return this.right.pop();\n }\n\n /**\n * Slice the buffer to get an array;\n * does not move the cursor.\n *\n * @param {number} start\n * Start.\n * @param {number | null | undefined} [end]\n * End (optional).\n * @returns {Array<T>}\n * Array of items.\n */\n slice(start, end) {\n /** @type {number} */\n const stop = end === null || end === undefined ? Number.POSITIVE_INFINITY : end;\n if (stop < this.left.length) {\n return this.left.slice(start, stop);\n }\n if (start > this.left.length) {\n return this.right.slice(this.right.length - stop + this.left.length, this.right.length - start + this.left.length).reverse();\n }\n return this.left.slice(start).concat(this.right.slice(this.right.length - stop + this.left.length).reverse());\n }\n\n /**\n * Mimics the behavior of Array.prototype.splice() except for the change of\n * interface necessary to avoid segfaults when patching in very large arrays.\n *\n * This operation moves cursor is moved to `start` and results in the cursor\n * placed after any inserted items.\n *\n * @param {number} start\n * Start;\n * zero-based index at which to start changing the array;\n * negative numbers count backwards from the end of the array and values\n * that are out-of bounds are clamped to the appropriate end of the array.\n * @param {number | null | undefined} [deleteCount=0]\n * Delete count (default: `0`);\n * maximum number of elements to delete, starting from start.\n * @param {Array<T> | null | undefined} [items=[]]\n * Items to include in place of the deleted items (default: `[]`).\n * @return {Array<T>}\n * Any removed items.\n */\n splice(start, deleteCount, items) {\n /** @type {number} */\n const count = deleteCount || 0;\n this.setCursor(Math.trunc(start));\n const removed = this.right.splice(this.right.length - count, Number.POSITIVE_INFINITY);\n if (items) chunkedPush(this.left, items);\n return removed.reverse();\n }\n\n /**\n * Remove and return the highest-numbered item in the array, so\n * `list[list.length - 1]`;\n * Moves the cursor to `length`.\n *\n * @returns {T | undefined}\n * Item, optional.\n */\n pop() {\n this.setCursor(Number.POSITIVE_INFINITY);\n return this.left.pop();\n }\n\n /**\n * Inserts a single item to the high-numbered side of the array;\n * moves the cursor to `length`.\n *\n * @param {T} item\n * Item.\n * @returns {undefined}\n * Nothing.\n */\n push(item) {\n this.setCursor(Number.POSITIVE_INFINITY);\n this.left.push(item);\n }\n\n /**\n * Inserts many items to the high-numbered side of the array.\n * Moves the cursor to `length`.\n *\n * @param {Array<T>} items\n * Items.\n * @returns {undefined}\n * Nothing.\n */\n pushMany(items) {\n this.setCursor(Number.POSITIVE_INFINITY);\n chunkedPush(this.left, items);\n }\n\n /**\n * Inserts a single item to the low-numbered side of the array;\n * Moves the cursor to `0`.\n *\n * @param {T} item\n * Item.\n * @returns {undefined}\n * Nothing.\n */\n unshift(item) {\n this.setCursor(0);\n this.right.push(item);\n }\n\n /**\n * Inserts many items to the low-numbered side of the array;\n * moves the cursor to `0`.\n *\n * @param {Array<T>} items\n * Items.\n * @returns {undefined}\n * Nothing.\n */\n unshiftMany(items) {\n this.setCursor(0);\n chunkedPush(this.right, items.reverse());\n }\n\n /**\n * Move the cursor to a specific position in the array. Requires\n * time proportional to the distance moved.\n *\n * If `n < 0`, the cursor will end up at the beginning.\n * If `n > length`, the cursor will end up at the end.\n *\n * @param {number} n\n * Position.\n * @return {undefined}\n * Nothing.\n */\n setCursor(n) {\n if (n === this.left.length || n > this.left.length && this.right.length === 0 || n < 0 && this.left.length === 0) return;\n if (n < this.left.length) {\n // Move cursor to the this.left\n const removed = this.left.splice(n, Number.POSITIVE_INFINITY);\n chunkedPush(this.right, removed.reverse());\n } else {\n // Move cursor to the this.right\n const removed = this.right.splice(this.left.length + this.right.length - n, Number.POSITIVE_INFINITY);\n chunkedPush(this.left, removed.reverse());\n }\n }\n}\n\n/**\n * Avoid stack overflow by pushing items onto the stack in segments\n *\n * @template T\n * Item type.\n * @param {Array<T>} list\n * List to inject into.\n * @param {ReadonlyArray<T>} right\n * Items to inject.\n * @return {undefined}\n * Nothing.\n */\nfunction chunkedPush(list, right) {\n /** @type {number} */\n let chunkStart = 0;\n if (right.length < 10000) {\n list.push(...right);\n } else {\n while (chunkStart < right.length) {\n list.push(...right.slice(chunkStart, chunkStart + 10000));\n chunkStart += 10000;\n }\n }\n}", "/**\n * @import {Chunk, Event, Token} from 'micromark-util-types'\n */\n\nimport { splice } from 'micromark-util-chunked';\nimport { SpliceBuffer } from './lib/splice-buffer.js';\n\n// Hidden API exposed for testing.\nexport { SpliceBuffer } from './lib/splice-buffer.js';\n\n/**\n * Tokenize subcontent.\n *\n * @param {Array<Event>} eventsArray\n * List of events.\n * @returns {boolean}\n * Whether subtokens were found.\n */\n// eslint-disable-next-line complexity\nexport function subtokenize(eventsArray) {\n /** @type {Record<string, number>} */\n const jumps = {};\n let index = -1;\n /** @type {Event} */\n let event;\n /** @type {number | undefined} */\n let lineIndex;\n /** @type {number} */\n let otherIndex;\n /** @type {Event} */\n let otherEvent;\n /** @type {Array<Event>} */\n let parameters;\n /** @type {Array<Event>} */\n let subevents;\n /** @type {boolean | undefined} */\n let more;\n const events = new SpliceBuffer(eventsArray);\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index];\n }\n event = events.get(index);\n\n // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n if (index && event[1].type === \"chunkFlow\" && events.get(index - 1)[1].type === \"listItemPrefix\") {\n subevents = event[1]._tokenizer.events;\n otherIndex = 0;\n if (otherIndex < subevents.length && subevents[otherIndex][1].type === \"lineEndingBlank\") {\n otherIndex += 2;\n }\n if (otherIndex < subevents.length && subevents[otherIndex][1].type === \"content\") {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === \"content\") {\n break;\n }\n if (subevents[otherIndex][1].type === \"chunkText\") {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true;\n otherIndex++;\n }\n }\n }\n }\n\n // Enter.\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n Object.assign(jumps, subcontent(events, index));\n index = jumps[index];\n more = true;\n }\n }\n // Exit.\n else if (event[1]._container) {\n otherIndex = index;\n lineIndex = undefined;\n while (otherIndex--) {\n otherEvent = events.get(otherIndex);\n if (otherEvent[1].type === \"lineEnding\" || otherEvent[1].type === \"lineEndingBlank\") {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events.get(lineIndex)[1].type = \"lineEndingBlank\";\n }\n otherEvent[1].type = \"lineEnding\";\n lineIndex = otherIndex;\n }\n } else if (otherEvent[1].type === \"linePrefix\" || otherEvent[1].type === \"listItemIndent\") {\n // Move past.\n } else {\n break;\n }\n }\n if (lineIndex) {\n // Fix position.\n event[1].end = {\n ...events.get(lineIndex)[1].start\n };\n\n // Switch container exit w/ line endings.\n parameters = events.slice(lineIndex, index);\n parameters.unshift(event);\n events.splice(lineIndex, index - lineIndex + 1, parameters);\n }\n }\n }\n\n // The changes to the `events` buffer must be copied back into the eventsArray\n splice(eventsArray, 0, Number.POSITIVE_INFINITY, events.slice(0));\n return !more;\n}\n\n/**\n * Tokenize embedded tokens.\n *\n * @param {SpliceBuffer<Event>} events\n * Events.\n * @param {number} eventIndex\n * Index.\n * @returns {Record<string, number>}\n * Gaps.\n */\nfunction subcontent(events, eventIndex) {\n const token = events.get(eventIndex)[1];\n const context = events.get(eventIndex)[2];\n let startPosition = eventIndex - 1;\n /** @type {Array<number>} */\n const startPositions = [];\n let tokenizer = token._tokenizer;\n if (!tokenizer) {\n tokenizer = context.parser[token.contentType](token.start);\n if (token._contentTypeTextTrailing) {\n tokenizer._contentTypeTextTrailing = true;\n }\n }\n const childEvents = tokenizer.events;\n /** @type {Array<[number, number]>} */\n const jumps = [];\n /** @type {Record<string, number>} */\n const gaps = {};\n /** @type {Array<Chunk>} */\n let stream;\n /** @type {Token | undefined} */\n let previous;\n let index = -1;\n /** @type {Token | undefined} */\n let current = token;\n let adjust = 0;\n let start = 0;\n const breaks = [start];\n\n // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n while (current) {\n // Find the position of the event for this token.\n while (events.get(++startPosition)[1] !== current) {\n // Empty.\n }\n startPositions.push(startPosition);\n if (!current._tokenizer) {\n stream = context.sliceStream(current);\n if (!current.next) {\n stream.push(null);\n }\n if (previous) {\n tokenizer.defineSkip(current.start);\n }\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true;\n }\n tokenizer.write(stream);\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined;\n }\n }\n\n // Unravel the next token.\n previous = current;\n current = current.next;\n }\n\n // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n current = token;\n while (++index < childEvents.length) {\n if (\n // Find a void token that includes a break.\n childEvents[index][0] === 'exit' && childEvents[index - 1][0] === 'enter' && childEvents[index][1].type === childEvents[index - 1][1].type && childEvents[index][1].start.line !== childEvents[index][1].end.line) {\n start = index + 1;\n breaks.push(start);\n // Help GC.\n current._tokenizer = undefined;\n current.previous = undefined;\n current = current.next;\n }\n }\n\n // Help GC.\n tokenizer.events = [];\n\n // If there\u2019s one more token (which is the cases for lines that end in an\n // EOF), that\u2019s perfect: the last point we found starts it.\n // If there isn\u2019t then make sure any remaining content is added to it.\n if (current) {\n // Help GC.\n current._tokenizer = undefined;\n current.previous = undefined;\n } else {\n breaks.pop();\n }\n\n // Now splice the events from the subtokenizer into the current events,\n // moving back to front so that splice indices aren\u2019t affected.\n index = breaks.length;\n while (index--) {\n const slice = childEvents.slice(breaks[index], breaks[index + 1]);\n const start = startPositions.pop();\n jumps.push([start, start + slice.length - 1]);\n events.splice(start, 2, slice);\n }\n jumps.reverse();\n index = -1;\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1];\n adjust += jumps[index][1] - jumps[index][0] - 1;\n }\n return gaps;\n}", "/**\n * @import {\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { subtokenize } from 'micromark-util-subtokenize';\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {\n resolve: resolveContent,\n tokenize: tokenizeContent\n};\n\n/** @type {Construct} */\nconst continuationConstruct = {\n partial: true,\n tokenize: tokenizeContinuation\n};\n\n/**\n * Content is transparent: it\u2019s parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\nfunction resolveContent(events) {\n subtokenize(events);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeContent(effects, ok) {\n /** @type {Token | undefined} */\n let previous;\n return chunkStart;\n\n /**\n * Before a content chunk.\n *\n * ```markdown\n * > | abc\n * ^\n * ```\n *\n * @type {State}\n */\n function chunkStart(code) {\n effects.enter(\"content\");\n previous = effects.enter(\"chunkContent\", {\n contentType: \"content\"\n });\n return chunkInside(code);\n }\n\n /**\n * In a content chunk.\n *\n * ```markdown\n * > | abc\n * ^^^\n * ```\n *\n * @type {State}\n */\n function chunkInside(code) {\n if (code === null) {\n return contentEnd(code);\n }\n\n // To do: in `markdown-rs`, each line is parsed on its own, and everything\n // is stitched together resolving.\n if (markdownLineEnding(code)) {\n return effects.check(continuationConstruct, contentContinue, contentEnd)(code);\n }\n\n // Data.\n effects.consume(code);\n return chunkInside;\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentEnd(code) {\n effects.exit(\"chunkContent\");\n effects.exit(\"content\");\n return ok(code);\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentContinue(code) {\n effects.consume(code);\n effects.exit(\"chunkContent\");\n previous.next = effects.enter(\"chunkContent\", {\n contentType: \"content\",\n previous\n });\n previous = previous.next;\n return chunkInside;\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeContinuation(effects, ok, nok) {\n const self = this;\n return startLookahead;\n\n /**\n *\n *\n * @type {State}\n */\n function startLookahead(code) {\n effects.exit(\"chunkContent\");\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, prefixed, \"linePrefix\");\n }\n\n /**\n *\n *\n * @type {State}\n */\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code);\n }\n\n // Always populated by defaults.\n\n const tail = self.events[self.events.length - 1];\n if (!self.parser.constructs.disable.null.includes('codeIndented') && tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4) {\n return ok(code);\n }\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code);\n }\n}", "/**\n * @import {Effects, State, TokenType} from 'micromark-util-types'\n */\n\nimport { asciiControl, markdownLineEndingOrSpace, markdownLineEnding } from 'micromark-util-character';\n/**\n * Parse destinations.\n *\n * ###### Examples\n *\n * ```markdown\n * <a>\n * <a\\>b>\n * <a b>\n * <a)>\n * a\n * a\\)b\n * a(b)c\n * a(b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type for whole (`<a>` or `b`).\n * @param {TokenType} literalType\n * Type when enclosed (`<a>`).\n * @param {TokenType} literalMarkerType\n * Type for enclosing (`<` and `>`).\n * @param {TokenType} rawType\n * Type when not enclosed (`b`).\n * @param {TokenType} stringType\n * Type for the value (`a` or `b`).\n * @param {number | undefined} [max=Infinity]\n * Depth of nested parens (inclusive).\n * @returns {State}\n * Start state.\n */\nexport function factoryDestination(effects, ok, nok, type, literalType, literalMarkerType, rawType, stringType, max) {\n const limit = max || Number.POSITIVE_INFINITY;\n let balance = 0;\n return start;\n\n /**\n * Start of destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 60) {\n effects.enter(type);\n effects.enter(literalType);\n effects.enter(literalMarkerType);\n effects.consume(code);\n effects.exit(literalMarkerType);\n return enclosedBefore;\n }\n\n // ASCII control, space, closing paren.\n if (code === null || code === 32 || code === 41 || asciiControl(code)) {\n return nok(code);\n }\n effects.enter(type);\n effects.enter(rawType);\n effects.enter(stringType);\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return raw(code);\n }\n\n /**\n * After `<`, at an enclosed destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType);\n effects.consume(code);\n effects.exit(literalMarkerType);\n effects.exit(literalType);\n effects.exit(type);\n return ok;\n }\n effects.enter(stringType);\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return enclosed(code);\n }\n\n /**\n * In enclosed destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosed(code) {\n if (code === 62) {\n effects.exit(\"chunkString\");\n effects.exit(stringType);\n return enclosedBefore(code);\n }\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code);\n }\n effects.consume(code);\n return code === 92 ? enclosedEscape : enclosed;\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | <a\\*a>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code);\n return enclosed;\n }\n return enclosed(code);\n }\n\n /**\n * In raw destination.\n *\n * ```markdown\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function raw(code) {\n if (!balance && (code === null || code === 41 || markdownLineEndingOrSpace(code))) {\n effects.exit(\"chunkString\");\n effects.exit(stringType);\n effects.exit(rawType);\n effects.exit(type);\n return ok(code);\n }\n if (balance < limit && code === 40) {\n effects.consume(code);\n balance++;\n return raw;\n }\n if (code === 41) {\n effects.consume(code);\n balance--;\n return raw;\n }\n\n // ASCII control (but *not* `\\0`) and space and `(`.\n // Note: in `markdown-rs`, `\\0` exists in codes, in `micromark-js` it\n // doesn\u2019t.\n if (code === null || code === 32 || code === 40 || asciiControl(code)) {\n return nok(code);\n }\n effects.consume(code);\n return code === 92 ? rawEscape : raw;\n }\n\n /**\n * After `\\`, at special character.\n *\n * ```markdown\n * > | a\\*a\n * ^\n * ```\n *\n * @type {State}\n */\n function rawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code);\n return raw;\n }\n return raw(code);\n }\n}", "/**\n * @import {\n * Effects,\n * State,\n * TokenizeContext,\n * TokenType\n * } from 'micromark-util-types'\n */\n\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/**\n * Parse labels.\n *\n * > \uD83D\uDC49 **Note**: labels in markdown are capped at 999 characters in the string.\n *\n * ###### Examples\n *\n * ```markdown\n * [a]\n * [a\n * b]\n * [a\\]b]\n * ```\n *\n * @this {TokenizeContext}\n * Tokenize context.\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole label (`[a]`).\n * @param {TokenType} markerType\n * Type for the markers (`[` and `]`).\n * @param {TokenType} stringType\n * Type for the identifier (`a`).\n * @returns {State}\n * Start state.\n */\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self = this;\n let size = 0;\n /** @type {boolean} */\n let seen;\n return start;\n\n /**\n * Start of label.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(type);\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n effects.enter(stringType);\n return atBreak;\n }\n\n /**\n * In label, at something, before something else.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (size > 999 || code === null || code === 91 || code === 93 && !seen ||\n // To do: remove in the future once we\u2019ve switched from\n // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n // which doesn\u2019t need this.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n code === 94 && !size && '_hiddenFootnoteSupport' in self.parser.constructs) {\n return nok(code);\n }\n if (code === 93) {\n effects.exit(stringType);\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n effects.exit(type);\n return ok;\n }\n\n // To do: indent? Link chunks and EOLs together?\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return atBreak;\n }\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return labelInside(code);\n }\n\n /**\n * In label, in text.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelInside(code) {\n if (code === null || code === 91 || code === 93 || markdownLineEnding(code) || size++ > 999) {\n effects.exit(\"chunkString\");\n return atBreak(code);\n }\n effects.consume(code);\n if (!seen) seen = !markdownSpace(code);\n return code === 92 ? labelEscape : labelInside;\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | [a\\*a]\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 * @import {\n * Code,\n * Effects,\n * State,\n * TokenType\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/**\n * Parse titles.\n *\n * ###### Examples\n *\n * ```markdown\n * \"a\"\n * 'b'\n * (c)\n * \"a\n * b\"\n * 'a\n * b'\n * (a\\)b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole title (`\"a\"`, `'b'`, `(c)`).\n * @param {TokenType} markerType\n * Type for the markers (`\"`, `'`, `(`, and `)`).\n * @param {TokenType} stringType\n * Type for the value (`a`).\n * @returns {State}\n * Start state.\n */\nexport function factoryTitle(effects, ok, nok, type, markerType, stringType) {\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * Start of title.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 34 || code === 39 || code === 40) {\n effects.enter(type);\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n marker = code === 40 ? 41 : code;\n return begin;\n }\n return nok(code);\n }\n\n /**\n * After opening marker.\n *\n * This is also used at the closing marker.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function begin(code) {\n if (code === marker) {\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n effects.exit(type);\n return ok;\n }\n effects.enter(stringType);\n return atBreak(code);\n }\n\n /**\n * At something, before something else.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.exit(stringType);\n return begin(marker);\n }\n if (code === null) {\n return nok(code);\n }\n\n // Note: blank lines can\u2019t exist in content.\n if (markdownLineEnding(code)) {\n // To do: use `space_or_tab_eol_with_options`, connect.\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, atBreak, \"linePrefix\");\n }\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return inside(code);\n }\n\n /**\n *\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n return atBreak(code);\n }\n effects.consume(code);\n return code === 92 ? escape : inside;\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | \"a\\*b\"\n * ^\n * ```\n *\n * @type {State}\n */\n function escape(code) {\n if (code === marker || code === 92) {\n effects.consume(code);\n return inside;\n }\n return inside(code);\n }\n}", "/**\n * @import {Effects, State} from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * line endings or spaces in markdown are often optional, in which case this\n * factory can be used and `ok` will be switched to whether spaces were found\n * or not\n * * one line ending or space can be detected with\n * `markdownLineEndingOrSpace(code)` right before using `factoryWhitespace`\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @returns {State}\n * Start state.\n */\nexport function factoryWhitespace(effects, ok) {\n /** @type {boolean} */\n let seen;\n return start;\n\n /** @type {State} */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n seen = true;\n return start;\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, start, seen ? \"linePrefix\" : \"lineSuffix\")(code);\n }\n return ok(code);\n }\n}", "/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factorySpace } from 'micromark-factory-space';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\n/** @type {Construct} */\nexport const definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n};\n\n/** @type {Construct} */\nconst titleBefore = {\n partial: true,\n tokenize: tokenizeTitleBefore\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeDefinition(effects, ok, nok) {\n const self = this;\n /** @type {string} */\n let identifier;\n return start;\n\n /**\n * At start of a definition.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Do not interrupt paragraphs (but do follow definitions).\n // To do: do `interrupt` the way `markdown-rs` does.\n // To do: parse whitespace the way `markdown-rs` does.\n effects.enter(\"definition\");\n return before(code);\n }\n\n /**\n * After optional whitespace, at `[`.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n // To do: parse whitespace the way `markdown-rs` does.\n\n return factoryLabel.call(self, effects, labelAfter,\n // Note: we don\u2019t need to reset the way `markdown-rs` does.\n nok, \"definitionLabel\", \"definitionLabelMarker\", \"definitionLabelString\")(code);\n }\n\n /**\n * After label.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAfter(code) {\n identifier = normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1));\n if (code === 58) {\n effects.enter(\"definitionMarker\");\n effects.consume(code);\n effects.exit(\"definitionMarker\");\n return markerAfter;\n }\n return nok(code);\n }\n\n /**\n * After marker.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function markerAfter(code) {\n // Note: whitespace is optional.\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, destinationBefore)(code) : destinationBefore(code);\n }\n\n /**\n * Before destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationBefore(code) {\n return factoryDestination(effects, destinationAfter,\n // Note: we don\u2019t need to reset the way `markdown-rs` does.\n nok, \"definitionDestination\", \"definitionDestinationLiteral\", \"definitionDestinationLiteralMarker\", \"definitionDestinationRaw\", \"definitionDestinationString\")(code);\n }\n\n /**\n * After destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationAfter(code) {\n return effects.attempt(titleBefore, after, after)(code);\n }\n\n /**\n * After definition.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return markdownSpace(code) ? factorySpace(effects, afterWhitespace, \"whitespace\")(code) : afterWhitespace(code);\n }\n\n /**\n * After definition, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function afterWhitespace(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"definition\");\n\n // Note: we don\u2019t care about uniqueness.\n // It\u2019s likely that that doesn\u2019t happen very frequently.\n // It is more likely that it wastes precious time.\n self.parser.defined.push(identifier);\n\n // To do: `markdown-rs` interrupt.\n // // You\u2019d be interrupting.\n // tokenizer.interrupt = true\n return ok(code);\n }\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeTitleBefore(effects, ok, nok) {\n return titleBefore;\n\n /**\n * After destination, at whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleBefore(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, beforeMarker)(code) : nok(code);\n }\n\n /**\n * At title.\n *\n * ```markdown\n * | [a]: b\n * > | \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeMarker(code) {\n return factoryTitle(effects, titleAfter, nok, \"definitionTitle\", \"definitionTitleMarker\", \"definitionTitleString\")(code);\n }\n\n /**\n * After title.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfter(code) {\n return markdownSpace(code) ? factorySpace(effects, titleAfterOptionalWhitespace, \"whitespace\")(code) : titleAfterOptionalWhitespace(code);\n }\n\n /**\n * After title, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfterOptionalWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code);\n }\n}", "/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start;\n\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"hardBreakEscape\");\n effects.consume(code);\n return after;\n }\n\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownLineEnding(code)) {\n effects.exit(\"hardBreakEscape\");\n return ok(code);\n }\n return nok(code);\n }\n}", "/**\n * @import {\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\nimport { splice } from 'micromark-util-chunked';\n/** @type {Construct} */\nexport const headingAtx = {\n name: 'headingAtx',\n resolve: resolveHeadingAtx,\n tokenize: tokenizeHeadingAtx\n};\n\n/** @type {Resolver} */\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2;\n let contentStart = 3;\n /** @type {Token} */\n let content;\n /** @type {Token} */\n let text;\n\n // Prefix whitespace, part of the opening.\n if (events[contentStart][1].type === \"whitespace\") {\n contentStart += 2;\n }\n\n // Suffix whitespace, part of the closing.\n if (contentEnd - 2 > contentStart && events[contentEnd][1].type === \"whitespace\") {\n contentEnd -= 2;\n }\n if (events[contentEnd][1].type === \"atxHeadingSequence\" && (contentStart === contentEnd - 1 || contentEnd - 4 > contentStart && events[contentEnd - 2][1].type === \"whitespace\")) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4;\n }\n if (contentEnd > contentStart) {\n content = {\n type: \"atxHeadingText\",\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n };\n text = {\n type: \"chunkText\",\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: \"text\"\n };\n splice(events, contentStart, contentEnd - contentStart + 1, [['enter', content, context], ['enter', text, context], ['exit', text, context], ['exit', content, context]]);\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n let size = 0;\n return start;\n\n /**\n * Start of a heading (atx).\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n effects.enter(\"atxHeading\");\n return before(code);\n }\n\n /**\n * After optional whitespace, at `#`.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter(\"atxHeadingSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code);\n return sequenceOpen;\n }\n\n // Always at least one `#`.\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit(\"atxHeadingSequence\");\n return atBreak(code);\n }\n return nok(code);\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === 35) {\n effects.enter(\"atxHeadingSequence\");\n return sequenceFurther(code);\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"atxHeading\");\n // To do: interrupt like `markdown-rs`.\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code);\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, \"whitespace\")(code);\n }\n\n // To do: generate `data` tokens, add the `text` token later.\n // Needs edit map, see: `markdown.rs`.\n effects.enter(\"atxHeadingText\");\n return data(code);\n }\n\n /**\n * In further sequence (after whitespace).\n *\n * Could be normal \u201Cvisible\u201D hashes in the heading or a final sequence.\n *\n * ```markdown\n * > | ## aa ##\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceFurther(code) {\n if (code === 35) {\n effects.consume(code);\n return sequenceFurther;\n }\n effects.exit(\"atxHeadingSequence\");\n return atBreak(code);\n }\n\n /**\n * In text.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit(\"atxHeadingText\");\n return atBreak(code);\n }\n effects.consume(code);\n return data;\n }\n}", "/**\n * List of lowercase HTML \u201Cblock\u201D tag names.\n *\n * The list, when parsing HTML (flow), results in more relaxed rules (condition\n * 6).\n * Because they are known blocks, the HTML-like syntax doesn\u2019t have to be\n * strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > \uD83D\uDC49 **Note**: `search` was added in `CommonMark@0.31`.\n */\nexport const htmlBlockNames = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'search',\n 'section',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\n/**\n * List of lowercase HTML \u201Craw\u201D tag names.\n *\n * The list, when parsing HTML (flow), results in HTML that can include lines\n * without exiting, until a closing tag also in this list is found (condition\n * 1).\n *\n * This module is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > \uD83D\uDC49 **Note**: `textarea` was added in `CommonMark@0.30`.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea']\n", "/**\n * @import {\n * Code,\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { asciiAlphanumeric, asciiAlpha, markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\nimport { htmlBlockNames, htmlRawNames } from 'micromark-util-html-tag-name';\nimport { blankLine } from './blank-line.js';\n\n/** @type {Construct} */\nexport const htmlFlow = {\n concrete: true,\n name: 'htmlFlow',\n resolveTo: resolveToHtmlFlow,\n tokenize: tokenizeHtmlFlow\n};\n\n/** @type {Construct} */\nconst blankLineBefore = {\n partial: true,\n tokenize: tokenizeBlankLineBefore\n};\nconst nonLazyContinuationStart = {\n partial: true,\n tokenize: tokenizeNonLazyContinuationStart\n};\n\n/** @type {Resolver} */\nfunction resolveToHtmlFlow(events) {\n let index = events.length;\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === \"htmlFlow\") {\n break;\n }\n }\n if (index > 1 && events[index - 2][1].type === \"linePrefix\") {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start;\n // Add the prefix start to the HTML line token.\n events[index + 1][1].start = events[index - 2][1].start;\n // Remove the line prefix.\n events.splice(index - 2, 2);\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self = this;\n /** @type {number} */\n let marker;\n /** @type {boolean} */\n let closingTag;\n /** @type {string} */\n let buffer;\n /** @type {number} */\n let index;\n /** @type {Code} */\n let markerB;\n return start;\n\n /**\n * Start of HTML (flow).\n *\n * ```markdown\n * > | <x />\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n return before(code);\n }\n\n /**\n * At `<`, after optional whitespace.\n *\n * ```markdown\n * > | <x />\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter(\"htmlFlow\");\n effects.enter(\"htmlFlowData\");\n effects.consume(code);\n return open;\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | <x />\n * ^\n * > | <!doctype>\n * ^\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === 47) {\n effects.consume(code);\n closingTag = true;\n return tagCloseStart;\n }\n if (code === 63) {\n effects.consume(code);\n marker = 3;\n // To do:\n // tokenizer.concrete = true\n // To do: use `markdown-rs` style interrupt.\n // While we\u2019re in an instruction instead of a declaration, we\u2019re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n return self.interrupt ? ok : continuationDeclarationInside;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n // Always the case.\n effects.consume(code);\n buffer = String.fromCharCode(code);\n return tagName;\n }\n return nok(code);\n }\n\n /**\n * After `<!`, at declaration, comment, or CDATA.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * > | <!--xxx-->\n * ^\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code);\n marker = 2;\n return commentOpenInside;\n }\n if (code === 91) {\n effects.consume(code);\n marker = 5;\n index = 0;\n return cdataOpenInside;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n marker = 4;\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside;\n }\n return nok(code);\n }\n\n /**\n * After `<!-`, inside a comment, at another `-`.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code);\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside;\n }\n return nok(code);\n }\n\n /**\n * After `<![`, inside CDATA, expecting `CDATA[`.\n *\n * ```markdown\n * > | <![CDATA[>&<]]>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = \"CDATA[\";\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n if (index === value.length) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation;\n }\n return cdataOpenInside;\n }\n return nok(code);\n }\n\n /**\n * After `</`, in closing tag, at tag name.\n *\n * ```markdown\n * > | </x>\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n // Always the case.\n effects.consume(code);\n buffer = String.fromCharCode(code);\n return tagName;\n }\n return nok(code);\n }\n\n /**\n * In tag name.\n *\n * ```markdown\n * > | <ab>\n * ^^\n * > | </ab>\n * ^^\n * ```\n *\n * @type {State}\n */\n function tagName(code) {\n if (code === null || code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n const slash = code === 47;\n const name = buffer.toLowerCase();\n if (!slash && !closingTag && htmlRawNames.includes(name)) {\n marker = 1;\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code);\n }\n if (htmlBlockNames.includes(buffer.toLowerCase())) {\n marker = 6;\n if (slash) {\n effects.consume(code);\n return basicSelfClosing;\n }\n\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code);\n }\n marker = 7;\n // Do not support complete HTML when interrupting.\n return self.interrupt && !self.parser.lazy[self.now().line] ? nok(code) : closingTag ? completeClosingTagAfter(code) : completeAttributeNameBefore(code);\n }\n\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n buffer += String.fromCharCode(code);\n return tagName;\n }\n return nok(code);\n }\n\n /**\n * After closing slash of a basic tag name.\n *\n * ```markdown\n * > | <div/>\n * ^\n * ```\n *\n * @type {State}\n */\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code);\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation;\n }\n return nok(code);\n }\n\n /**\n * After closing slash of a complete tag name.\n *\n * ```markdown\n * > | <x/>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeClosingTagAfter;\n }\n return completeEnd(code);\n }\n\n /**\n * At an attribute name.\n *\n * At first, this state is used after a complete tag name, after whitespace,\n * where it expects optional attributes or the end of the tag.\n * It is also reused after attributes, when expecting more optional\n * attributes.\n *\n * ```markdown\n * > | <a />\n * ^\n * > | <a :b>\n * ^\n * > | <a _b>\n * ^\n * > | <a b>\n * ^\n * > | <a >\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code);\n return completeEnd;\n }\n\n // ASCII alphanumerical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return completeAttributeName;\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAttributeNameBefore;\n }\n return completeEnd(code);\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | <a :b>\n * ^\n * > | <a _b>\n * ^\n * > | <a b>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeName(code) {\n // ASCII alphanumerical and `-`, `.`, `:`, and `_`.\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return completeAttributeName;\n }\n return completeAttributeNameAfter(code);\n }\n\n /**\n * After attribute name, at an optional initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | <a b>\n * ^\n * > | <a b=c>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return completeAttributeValueBefore;\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAttributeNameAfter;\n }\n return completeAttributeNameBefore(code);\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | <a b=c>\n * ^\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n if (code === 34 || code === 39) {\n effects.consume(code);\n markerB = code;\n return completeAttributeValueQuoted;\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAttributeValueBefore;\n }\n return completeAttributeValueUnquoted(code);\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * > | <a b='c'>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuoted(code) {\n if (code === markerB) {\n effects.consume(code);\n markerB = null;\n return completeAttributeValueQuotedAfter;\n }\n if (code === null || markdownLineEnding(code)) {\n return nok(code);\n }\n effects.consume(code);\n return completeAttributeValueQuoted;\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | <a b=c>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 47 || code === 60 || code === 61 || code === 62 || code === 96 || markdownLineEndingOrSpace(code)) {\n return completeAttributeNameAfter(code);\n }\n effects.consume(code);\n return completeAttributeValueUnquoted;\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the\n * end of the tag.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code);\n }\n return nok(code);\n }\n\n /**\n * In certain circumstances of a complete tag where only an `>` is allowed.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code);\n return completeAfter;\n }\n return nok(code);\n }\n\n /**\n * After `>` in a complete tag.\n *\n * ```markdown\n * > | <x>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return continuation(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAfter;\n }\n return nok(code);\n }\n\n /**\n * In continuation of any HTML kind.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function continuation(code) {\n if (code === 45 && marker === 2) {\n effects.consume(code);\n return continuationCommentInside;\n }\n if (code === 60 && marker === 1) {\n effects.consume(code);\n return continuationRawTagOpen;\n }\n if (code === 62 && marker === 4) {\n effects.consume(code);\n return continuationClose;\n }\n if (code === 63 && marker === 3) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n if (code === 93 && marker === 5) {\n effects.consume(code);\n return continuationCdataInside;\n }\n if (markdownLineEnding(code) && (marker === 6 || marker === 7)) {\n effects.exit(\"htmlFlowData\");\n return effects.check(blankLineBefore, continuationAfter, continuationStart)(code);\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"htmlFlowData\");\n return continuationStart(code);\n }\n effects.consume(code);\n return continuation;\n }\n\n /**\n * In continuation, at eol.\n *\n * ```markdown\n * > | <x>\n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStart(code) {\n return effects.check(nonLazyContinuationStart, continuationStartNonLazy, continuationAfter)(code);\n }\n\n /**\n * In continuation, at eol, before non-lazy content.\n *\n * ```markdown\n * > | <x>\n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStartNonLazy(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return continuationBefore;\n }\n\n /**\n * In continuation, before non-lazy content.\n *\n * ```markdown\n * | <x>\n * > | asd\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return continuationStart(code);\n }\n effects.enter(\"htmlFlowData\");\n return continuation(code);\n }\n\n /**\n * In comment continuation, after one `-`, expecting another.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In raw continuation, after `<`, at `/`.\n *\n * ```markdown\n * > | <script>console.log(1)</script>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code);\n buffer = '';\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In raw continuation, after `</`, in a raw tag name.\n *\n * ```markdown\n * > | <script>console.log(1)</script>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase();\n if (htmlRawNames.includes(name)) {\n effects.consume(code);\n return continuationClose;\n }\n return continuation(code);\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n // Always the case.\n effects.consume(code);\n buffer += String.fromCharCode(code);\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | <!-->\n * ^\n * > | <?>\n * ^\n * > | <!q>\n * ^\n * > | <!--ab-->\n * ^\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code);\n return continuationClose;\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"htmlFlowData\");\n return continuationAfter(code);\n }\n effects.consume(code);\n return continuationClose;\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit(\"htmlFlow\");\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start;\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > | <div>\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return effects.attempt(blankLine, ok, nok);\n }\n}", "/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiAlphanumeric, asciiAlpha, markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable<Code> | undefined} */\n let marker;\n /** @type {number} */\n let index;\n /** @type {State} */\n let returnState;\n return start;\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"htmlText\");\n effects.enter(\"htmlTextData\");\n effects.consume(code);\n return open;\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * > | a <!doctype> c\n * ^\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === 47) {\n effects.consume(code);\n return tagCloseStart;\n }\n if (code === 63) {\n effects.consume(code);\n return instruction;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagOpen;\n }\n return nok(code);\n }\n\n /**\n * After `<!`, at declaration, comment, or CDATA.\n *\n * ```markdown\n * > | a <!doctype> c\n * ^\n * > | a <!--b--> c\n * ^\n * > | a <![CDATA[>&<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code);\n return commentOpenInside;\n }\n if (code === 91) {\n effects.consume(code);\n index = 0;\n return cdataOpenInside;\n }\n if (asciiAlpha(code)) {\n effects.consume(code);\n return declaration;\n }\n return nok(code);\n }\n\n /**\n * In a comment, after `<!-`, at another `-`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return nok(code);\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 45) {\n effects.consume(code);\n return commentClose;\n }\n if (markdownLineEnding(code)) {\n returnState = comment;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return comment;\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return comment(code);\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62 ? end(code) : code === 45 ? commentClose(code) : comment(code);\n }\n\n /**\n * After `<![`, in CDATA, expecting `CDATA[`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = \"CDATA[\";\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n return index === value.length ? cdata : cdataOpenInside;\n }\n return nok(code);\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataClose;\n }\n if (markdownLineEnding(code)) {\n returnState = cdata;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return cdata;\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a <!b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code);\n }\n if (markdownLineEnding(code)) {\n returnState = declaration;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return declaration;\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a <?b?> c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 63) {\n effects.consume(code);\n return instructionClose;\n }\n if (markdownLineEnding(code)) {\n returnState = instruction;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return instruction;\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a <?b?> c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code);\n }\n\n /**\n * After `</`, in closing tag, at tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagClose;\n }\n return nok(code);\n }\n\n /**\n * After `</x`, in a tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagClose;\n }\n return tagCloseBetween(code);\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagCloseBetween;\n }\n return end(code);\n }\n\n /**\n * After `<x`, in opening tag name.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpen;\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code);\n return end;\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenBetween;\n }\n return end(code);\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a <b c> d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n return tagOpenAttributeNameAfter(code);\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a <b c> d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeNameAfter;\n }\n return tagOpenBetween(code);\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a <b c=d> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n if (code === 34 || code === 39) {\n effects.consume(code);\n marker = code;\n return tagOpenAttributeValueQuoted;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code);\n marker = undefined;\n return tagOpenAttributeValueQuotedAfter;\n }\n if (code === null) {\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueQuoted;\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a <b c=d> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 60 || code === 61 || code === 96) {\n return nok(code);\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code);\n effects.exit(\"htmlTextData\");\n effects.exit(\"htmlText\");\n return ok;\n }\n return nok(code);\n }\n\n /**\n * At eol.\n *\n * > \uD83D\uDC49 **Note**: we can\u2019t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a <!--a\n * ^\n * | b-->\n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit(\"htmlTextData\");\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineEndingAfter;\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > \uD83D\uDC49 **Note**: we can\u2019t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a <!--a\n * > | b-->\n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code) ? factorySpace(effects, lineEndingAfterPrefix, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : lineEndingAfterPrefix(code);\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > \uD83D\uDC49 **Note**: we can\u2019t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a <!--a\n * > | b-->\n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter(\"htmlTextData\");\n return returnState(code);\n }\n}", "/**\n * @import {\n * Construct,\n * Event,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n resolveAll: resolveAllLabelEnd,\n resolveTo: resolveToLabelEnd,\n tokenize: tokenizeLabelEnd\n};\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n};\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n};\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n};\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1;\n /** @type {Array<Event>} */\n const newEvents = [];\n while (++index < events.length) {\n const token = events[index][1];\n newEvents.push(events[index]);\n if (token.type === \"labelImage\" || token.type === \"labelLink\" || token.type === \"labelEnd\") {\n // Remove the marker.\n const offset = token.type === \"labelImage\" ? 4 : 2;\n token.type = \"data\";\n index += offset;\n }\n }\n\n // If the events are equal, we don't have to copy newEvents to events\n if (events.length !== newEvents.length) {\n splice(events, 0, events.length, newEvents);\n }\n return events;\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length;\n let offset = 0;\n /** @type {Token} */\n let token;\n /** @type {number | undefined} */\n let open;\n /** @type {number | undefined} */\n let close;\n /** @type {Array<Event>} */\n let media;\n\n // Find an opening.\n while (index--) {\n token = events[index][1];\n if (open) {\n // If we see another link, or inactive link label, we\u2019ve been here before.\n if (token.type === \"link\" || token.type === \"labelLink\" && token._inactive) {\n break;\n }\n\n // Mark other link openings as inactive, as we can\u2019t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === \"labelLink\") {\n token._inactive = true;\n }\n } else if (close) {\n if (events[index][0] === 'enter' && (token.type === \"labelImage\" || token.type === \"labelLink\") && !token._balanced) {\n open = index;\n if (token.type !== \"labelLink\") {\n offset = 2;\n break;\n }\n }\n } else if (token.type === \"labelEnd\") {\n close = index;\n }\n }\n const group = {\n type: events[open][1].type === \"labelLink\" ? \"link\" : \"image\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[events.length - 1][1].end\n }\n };\n const label = {\n type: \"label\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[close][1].end\n }\n };\n const text = {\n type: \"labelText\",\n start: {\n ...events[open + offset + 2][1].end\n },\n end: {\n ...events[close - 2][1].start\n }\n };\n media = [['enter', group, context], ['enter', label, context]];\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3));\n\n // Text open.\n media = push(media, [['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n media = push(media, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + offset + 4, close - 3), context));\n\n // Text close, marker close, label close.\n media = push(media, [['exit', text, context], events[close - 2], events[close - 1], ['exit', label, context]]);\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1));\n\n // Media close.\n media = push(media, [['exit', group, context]]);\n splice(events, open, events.length, media);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this;\n let index = self.events.length;\n /** @type {Token} */\n let labelStart;\n /** @type {boolean} */\n let defined;\n\n // Find an opening.\n while (index--) {\n if ((self.events[index][1].type === \"labelImage\" || self.events[index][1].type === \"labelLink\") && !self.events[index][1]._balanced) {\n labelStart = self.events[index][1];\n break;\n }\n }\n return start;\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code);\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we\u2019d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can\u2019t have that, so it\u2019s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code);\n }\n defined = self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })));\n effects.enter(\"labelEnd\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelEnd\");\n return after;\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(resourceConstruct, labelEndOk, defined ? labelEndOk : labelEndNok)(code);\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(referenceFullConstruct, labelEndOk, defined ? referenceNotFull : labelEndNok)(code);\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code);\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > \uD83D\uDC49 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(referenceCollapsedConstruct, labelEndOk, labelEndNok)(code);\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code);\n }\n\n /**\n * Done, it\u2019s nothing.\n *\n * There was an okay opening, but we didn\u2019t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true;\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart;\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter(\"resource\");\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n return resourceBefore;\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceOpen)(code) : resourceOpen(code);\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code);\n }\n return factoryDestination(effects, resourceDestinationAfter, resourceDestinationMissing, \"resourceDestination\", \"resourceDestinationLiteral\", \"resourceDestinationLiteralMarker\", \"resourceDestinationRaw\", \"resourceDestinationString\", 32)(code);\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceBetween)(code) : resourceEnd(code);\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code);\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(effects, resourceTitleAfter, nok, \"resourceTitle\", \"resourceTitleMarker\", \"resourceTitleString\")(code);\n }\n return resourceEnd(code);\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceEnd)(code) : resourceEnd(code);\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n effects.exit(\"resource\");\n return ok;\n }\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this;\n return referenceFull;\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(self, effects, referenceFullAfter, referenceFullMissing, \"reference\", \"referenceMarker\", \"referenceString\")(code);\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1))) ? ok(code) : nok(code);\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart;\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > \uD83D\uDC49 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there\u2019s a `[`.\n\n effects.enter(\"reference\");\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n return referenceCollapsedOpen;\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > \uD83D\uDC49 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n effects.exit(\"reference\");\n return ok;\n }\n return nok(code);\n }\n}", "/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartImage\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelImage\");\n effects.enter(\"labelImageMarker\");\n effects.consume(code);\n effects.exit(\"labelImageMarker\");\n return open;\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelImage\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n * <p>!<a href=\\\"b\\\">^a</a></p>\n * <p>!<a href=\\\"c\\\">^a</a></p>\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn\u2019t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}", "/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartLink\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelLink\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelLink\");\n return after;\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn\u2019t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}", "/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start;\n\n /** @type {State} */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, ok, \"linePrefix\");\n }\n}", "/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0;\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * Start of thematic break.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"thematicBreak\");\n // To do: parse indent like `markdown-rs`.\n return before(code);\n }\n\n /**\n * After optional whitespace, at marker.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n marker = code;\n return atBreak(code);\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.enter(\"thematicBreakSequence\");\n return sequence(code);\n }\n if (size >= 3 && (code === null || markdownLineEnding(code))) {\n effects.exit(\"thematicBreak\");\n return ok(code);\n }\n return nok(code);\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function sequence(code) {\n if (code === marker) {\n effects.consume(code);\n size++;\n return sequence;\n }\n effects.exit(\"thematicBreakSequence\");\n return markdownSpace(code) ? factorySpace(effects, atBreak, \"whitespace\")(code) : atBreak(code);\n }\n}", "/**\n * @import {\n * Code,\n * Construct,\n * Exiter,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiDigit, markdownSpace } from 'micromark-util-character';\nimport { blankLine } from './blank-line.js';\nimport { thematicBreak } from './thematic-break.js';\n\n/** @type {Construct} */\nexport const list = {\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd,\n name: 'list',\n tokenize: tokenizeListStart\n};\n\n/** @type {Construct} */\nconst listItemPrefixWhitespaceConstruct = {\n partial: true,\n tokenize: tokenizeListItemPrefixWhitespace\n};\n\n/** @type {Construct} */\nconst indentConstruct = {\n partial: true,\n tokenize: tokenizeIndent\n};\n\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this;\n const tail = self.events[self.events.length - 1];\n let initialSize = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n let size = 0;\n return start;\n\n /** @type {State} */\n function start(code) {\n const kind = self.containerState.type || (code === 42 || code === 43 || code === 45 ? \"listUnordered\" : \"listOrdered\");\n if (kind === \"listUnordered\" ? !self.containerState.marker || code === self.containerState.marker : asciiDigit(code)) {\n if (!self.containerState.type) {\n self.containerState.type = kind;\n effects.enter(kind, {\n _container: true\n });\n }\n if (kind === \"listUnordered\") {\n effects.enter(\"listItemPrefix\");\n return code === 42 || code === 45 ? effects.check(thematicBreak, nok, atMarker)(code) : atMarker(code);\n }\n if (!self.interrupt || code === 49) {\n effects.enter(\"listItemPrefix\");\n effects.enter(\"listItemValue\");\n return inside(code);\n }\n }\n return nok(code);\n }\n\n /** @type {State} */\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code);\n return inside;\n }\n if ((!self.interrupt || size < 2) && (self.containerState.marker ? code === self.containerState.marker : code === 41 || code === 46)) {\n effects.exit(\"listItemValue\");\n return atMarker(code);\n }\n return nok(code);\n }\n\n /**\n * @type {State}\n **/\n function atMarker(code) {\n effects.enter(\"listItemMarker\");\n effects.consume(code);\n effects.exit(\"listItemMarker\");\n self.containerState.marker = self.containerState.marker || code;\n return effects.check(blankLine,\n // Can\u2019t be empty when interrupting.\n self.interrupt ? nok : onBlank, effects.attempt(listItemPrefixWhitespaceConstruct, endOfPrefix, otherPrefix));\n }\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.initialBlankLine = true;\n initialSize++;\n return endOfPrefix(code);\n }\n\n /** @type {State} */\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter(\"listItemPrefixWhitespace\");\n effects.consume(code);\n effects.exit(\"listItemPrefixWhitespace\");\n return endOfPrefix;\n }\n return nok(code);\n }\n\n /** @type {State} */\n function endOfPrefix(code) {\n self.containerState.size = initialSize + self.sliceSerialize(effects.exit(\"listItemPrefix\"), true).length;\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this;\n self.containerState._closeFlow = undefined;\n return effects.check(blankLine, onBlank, notBlank);\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.furtherBlankLines = self.containerState.furtherBlankLines || self.containerState.initialBlankLine;\n\n // We have a blank line.\n // Still, try to consume at most the items size.\n return factorySpace(effects, ok, \"listItemIndent\", self.containerState.size + 1)(code);\n }\n\n /** @type {State} */\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined;\n self.containerState.initialBlankLine = undefined;\n return notInCurrentItem(code);\n }\n self.containerState.furtherBlankLines = undefined;\n self.containerState.initialBlankLine = undefined;\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code);\n }\n\n /** @type {State} */\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true;\n // As we\u2019re closing flow, we\u2019re no longer interrupting.\n self.interrupt = undefined;\n // Always populated by defaults.\n\n return factorySpace(effects, effects.attempt(list, ok, nok), \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this;\n return factorySpace(effects, afterPrefix, \"listItemIndent\", self.containerState.size + 1);\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"listItemIndent\" && tail[2].sliceSerialize(tail[1], true).length === self.containerState.size ? ok(code) : nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Exiter}\n */\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type);\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this;\n\n // Always populated by defaults.\n\n return factorySpace(effects, afterPrefix, \"listItemPrefixWhitespace\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4 + 1);\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return !markdownSpace(code) && tail && tail[1].type === \"listItemPrefixWhitespace\" ? ok(code) : nok(code);\n }\n}", "/**\n * @import {\n * Code,\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n resolveTo: resolveToSetextUnderline,\n tokenize: tokenizeSetextUnderline\n};\n\n/** @type {Resolver} */\nfunction resolveToSetextUnderline(events, context) {\n // To do: resolve like `markdown-rs`.\n let index = events.length;\n /** @type {number | undefined} */\n let content;\n /** @type {number | undefined} */\n let text;\n /** @type {number | undefined} */\n let definition;\n\n // Find the opening of the content.\n // It\u2019ll always exist: we don\u2019t tokenize if it isn\u2019t there.\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === \"content\") {\n content = index;\n break;\n }\n if (events[index][1].type === \"paragraph\") {\n text = index;\n }\n }\n // Exit\n else {\n if (events[index][1].type === \"content\") {\n // Remove the content end (if needed we\u2019ll add it later)\n events.splice(index, 1);\n }\n if (!definition && events[index][1].type === \"definition\") {\n definition = index;\n }\n }\n }\n const heading = {\n type: \"setextHeading\",\n start: {\n ...events[content][1].start\n },\n end: {\n ...events[events.length - 1][1].end\n }\n };\n\n // Change the paragraph to setext heading text.\n events[text][1].type = \"setextHeadingText\";\n\n // If we have definitions in the content, we\u2019ll keep on having content,\n // but we need move it.\n if (definition) {\n events.splice(text, 0, ['enter', heading, context]);\n events.splice(definition + 1, 0, ['exit', events[content][1], context]);\n events[content][1].end = {\n ...events[definition][1].end\n };\n } else {\n events[content][1] = heading;\n }\n\n // Add the heading exit at the end.\n events.push(['exit', heading, context]);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * At start of heading (setext) underline.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n let index = self.events.length;\n /** @type {boolean | undefined} */\n let paragraph;\n // Find an opening.\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (self.events[index][1].type !== \"lineEnding\" && self.events[index][1].type !== \"linePrefix\" && self.events[index][1].type !== \"content\") {\n paragraph = self.events[index][1].type === \"paragraph\";\n break;\n }\n }\n\n // To do: handle lazy/pierce like `markdown-rs`.\n // To do: parse indent like `markdown-rs`.\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter(\"setextHeadingLine\");\n marker = code;\n return before(code);\n }\n return nok(code);\n }\n\n /**\n * After optional whitespace, at `-` or `=`.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter(\"setextHeadingLineSequence\");\n return inside(code);\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n effects.exit(\"setextHeadingLineSequence\");\n return markdownSpace(code) ? factorySpace(effects, after, \"lineSuffix\")(code) : after(code);\n }\n\n /**\n * After sequence, after optional whitespace.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"setextHeadingLine\");\n return ok(code);\n }\n return nok(code);\n }\n}", "/**\n * @import {\n * InitialConstruct,\n * Initializer,\n * State,\n * TokenizeContext\n * } from 'micromark-util-types'\n */\n\nimport { blankLine, content } from 'micromark-core-commonmark';\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n};\n\n/**\n * @this {TokenizeContext}\n * Self.\n * @type {Initializer}\n * Initializer.\n */\nfunction initializeFlow(effects) {\n const self = this;\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine, atBlankEnding,\n // Try to parse initial flow (essentially, only code).\n effects.attempt(this.parser.constructs.flowInitial, afterConstruct, factorySpace(effects, effects.attempt(this.parser.constructs.flow, afterConstruct, effects.attempt(content, afterConstruct)), \"linePrefix\")));\n return initial;\n\n /** @type {State} */\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"lineEndingBlank\");\n effects.consume(code);\n effects.exit(\"lineEndingBlank\");\n self.currentConstruct = undefined;\n return initial;\n }\n\n /** @type {State} */\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n self.currentConstruct = undefined;\n return initial;\n }\n}", "/**\n * @import {\n * Code,\n * InitialConstruct,\n * Initializer,\n * Resolver,\n * State,\n * TokenizeContext\n * } from 'micromark-util-types'\n */\n\nexport const resolver = {\n resolveAll: createResolver()\n};\nexport const string = initializeFactory('string');\nexport const text = initializeFactory('text');\n\n/**\n * @param {'string' | 'text'} field\n * Field.\n * @returns {InitialConstruct}\n * Construct.\n */\nfunction initializeFactory(field) {\n return {\n resolveAll: createResolver(field === 'text' ? resolveAllLineSuffixes : undefined),\n tokenize: initializeText\n };\n\n /**\n * @this {TokenizeContext}\n * Context.\n * @type {Initializer}\n */\n function initializeText(effects) {\n const self = this;\n const constructs = this.parser.constructs[field];\n const text = effects.attempt(constructs, start, notText);\n return start;\n\n /** @type {State} */\n function start(code) {\n return atBreak(code) ? text(code) : notText(code);\n }\n\n /** @type {State} */\n function notText(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"data\");\n effects.consume(code);\n return data;\n }\n\n /** @type {State} */\n function data(code) {\n if (atBreak(code)) {\n effects.exit(\"data\");\n return text(code);\n }\n\n // Data.\n effects.consume(code);\n return data;\n }\n\n /**\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether the code is a break.\n */\n function atBreak(code) {\n if (code === null) {\n return true;\n }\n const list = constructs[code];\n let index = -1;\n if (list) {\n // Always populated by defaults.\n\n while (++index < list.length) {\n const item = list[index];\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true;\n }\n }\n }\n return false;\n }\n }\n}\n\n/**\n * @param {Resolver | undefined} [extraResolver]\n * Resolver.\n * @returns {Resolver}\n * Resolver.\n */\nfunction createResolver(extraResolver) {\n return resolveAllText;\n\n /** @type {Resolver} */\n function resolveAllText(events, context) {\n let index = -1;\n /** @type {number | undefined} */\n let enter;\n\n // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === \"data\") {\n enter = index;\n index++;\n }\n } else if (!events[index] || events[index][1].type !== \"data\") {\n // Don\u2019t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n index = enter + 2;\n }\n enter = undefined;\n }\n }\n return extraResolver ? extraResolver(events, context) : events;\n }\n}\n\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can\u2019t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0; // Skip first.\n\n while (++eventIndex <= events.length) {\n if ((eventIndex === events.length || events[eventIndex][1].type === \"lineEnding\") && events[eventIndex - 1][1].type === \"data\") {\n const data = events[eventIndex - 1][1];\n const chunks = context.sliceStream(data);\n let index = chunks.length;\n let bufferIndex = -1;\n let size = 0;\n /** @type {boolean | undefined} */\n let tabs;\n while (index--) {\n const chunk = chunks[index];\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length;\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++;\n bufferIndex--;\n }\n if (bufferIndex) break;\n bufferIndex = -1;\n }\n // Number\n else if (chunk === -2) {\n tabs = true;\n size++;\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++;\n break;\n }\n }\n\n // Allow final trailing whitespace.\n if (context._contentTypeTextTrailing && eventIndex === events.length) {\n size = 0;\n }\n if (size) {\n const token = {\n type: eventIndex === events.length || tabs || size < 2 ? \"lineSuffix\" : \"hardBreakTrailing\",\n start: {\n _bufferIndex: index ? bufferIndex : data.start._bufferIndex + bufferIndex,\n _index: data.start._index + index,\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size\n },\n end: {\n ...data.end\n }\n };\n data.end = {\n ...token.start\n };\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token);\n } else {\n events.splice(eventIndex, 0, ['enter', token, context], ['exit', token, context]);\n eventIndex += 2;\n }\n }\n eventIndex++;\n }\n }\n return events;\n}", "/**\n * @import {Extension} from 'micromark-util-types'\n */\n\nimport { attention, autolink, blockQuote, characterEscape, characterReference, codeFenced, codeIndented, codeText, definition, hardBreakEscape, headingAtx, htmlFlow, htmlText, labelEnd, labelStartImage, labelStartLink, lineEnding, list, setextUnderline, thematicBreak } from 'micromark-core-commonmark';\nimport { resolver as resolveText } from './initialize/text.js';\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n};\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n};\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n};\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n};\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n};\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n};\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n};\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n};\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n};", "/**\n * @import {\n * Chunk,\n * Code,\n * ConstructRecord,\n * Construct,\n * Effects,\n * InitialConstruct,\n * ParseContext,\n * Point,\n * State,\n * TokenizeContext,\n * Token\n * } from 'micromark-util-types'\n */\n\n/**\n * @callback Restore\n * Restore the state.\n * @returns {undefined}\n * Nothing.\n *\n * @typedef Info\n * Info.\n * @property {Restore} restore\n * Restore.\n * @property {number} from\n * From.\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * Construct.\n * @param {Info} info\n * Info.\n * @returns {undefined}\n * Nothing.\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn\u2019t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * Parser.\n * @param {InitialConstruct} initialize\n * Construct.\n * @param {Omit<Point, '_bufferIndex' | '_index'> | undefined} [from]\n * Point (optional).\n * @returns {TokenizeContext}\n * Context.\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = {\n _bufferIndex: -1,\n _index: 0,\n line: from && from.line || 1,\n column: from && from.column || 1,\n offset: from && from.offset || 0\n };\n /** @type {Record<string, number>} */\n const columnStart = {};\n /** @type {Array<Construct>} */\n const resolveAllConstructs = [];\n /** @type {Array<Chunk>} */\n let chunks = [];\n /** @type {Array<Token>} */\n let stack = [];\n /** @type {boolean | undefined} */\n let consumed = true;\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n consume,\n enter,\n exit,\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n };\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n code: null,\n containerState: {},\n defineSkip,\n events: [],\n now,\n parser,\n previous: null,\n sliceSerialize,\n sliceStream,\n write\n };\n\n /**\n * The state function.\n *\n * @type {State | undefined}\n */\n let state = initialize.tokenize.call(context, effects);\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode;\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize);\n }\n return context;\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice);\n main();\n\n // Exit if we\u2019re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== null) {\n return [];\n }\n addResult(initialize, 0);\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context);\n return context.events;\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs);\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token);\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n } = point;\n return {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n };\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column;\n accountForPotentialSkip();\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {undefined}\n * Nothing.\n */\n function main() {\n /** @type {number} */\n let chunkIndex;\n while (point._index < chunks.length) {\n const chunk = chunks[point._index];\n\n // If we\u2019re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index;\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0;\n }\n while (point._index === chunkIndex && point._bufferIndex < chunk.length) {\n go(chunk.charCodeAt(point._bufferIndex));\n }\n } else {\n go(chunk);\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * Code.\n * @returns {undefined}\n * Nothing.\n */\n function go(code) {\n consumed = undefined;\n expectedCode = code;\n state = state(code);\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++;\n point.column = 1;\n point.offset += code === -3 ? 2 : 1;\n accountForPotentialSkip();\n } else if (code !== -1) {\n point.column++;\n point.offset++;\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++;\n } else {\n point._bufferIndex++;\n\n // At end of string chunk.\n if (point._bufferIndex ===\n // Points w/ non-negative `_bufferIndex` reference\n // strings.\n /** @type {string} */\n chunks[point._index].length) {\n point._bufferIndex = -1;\n point._index++;\n }\n }\n\n // Expose the previous character.\n context.previous = code;\n\n // Mark as consumed.\n consumed = true;\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {};\n token.type = type;\n token.start = now();\n context.events.push(['enter', token, context]);\n stack.push(token);\n return token;\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n const token = stack.pop();\n token.end = now();\n context.events.push(['exit', token, context]);\n return token;\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from);\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore();\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * Callback.\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n * Fields.\n */\n function constructFactory(onreturn, fields) {\n return hook;\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array<Construct> | ConstructRecord | Construct} constructs\n * Constructs.\n * @param {State} returnState\n * State.\n * @param {State | undefined} [bogusState]\n * State.\n * @returns {State}\n * State.\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {ReadonlyArray<Construct>} */\n let listOfConstructs;\n /** @type {number} */\n let constructIndex;\n /** @type {Construct} */\n let currentConstruct;\n /** @type {Info} */\n let info;\n return Array.isArray(constructs) ? /* c8 ignore next 1 */\n handleListOfConstructs(constructs) : 'tokenize' in constructs ?\n // Looks like a construct.\n handleListOfConstructs([(/** @type {Construct} */constructs)]) : handleMapOfConstructs(constructs);\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleMapOfConstructs(map) {\n return start;\n\n /** @type {State} */\n function start(code) {\n const left = code !== null && map[code];\n const all = code !== null && map.null;\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(left) ? left : left ? [left] : []), ...(Array.isArray(all) ? all : all ? [all] : [])];\n return handleListOfConstructs(list)(code);\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {ReadonlyArray<Construct>} list\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list;\n constructIndex = 0;\n if (list.length === 0) {\n return bogusState;\n }\n return handleConstruct(list[constructIndex]);\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * Construct.\n * @returns {State}\n * State.\n */\n function handleConstruct(construct) {\n return start;\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn\u2019t work because `inspect` in document does a check\n // w/o a bogus, which doesn\u2019t make sense. But it does seem to help perf\n // by not storing.\n info = store();\n currentConstruct = construct;\n if (!construct.partial) {\n context.currentConstruct = construct;\n }\n\n // Always populated by defaults.\n\n if (construct.name && context.parser.constructs.disable.null.includes(construct.name)) {\n return nok(code);\n }\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a \u201Clive binding\u201D, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context, effects, ok, nok)(code);\n }\n }\n\n /** @type {State} */\n function ok(code) {\n consumed = true;\n onreturn(currentConstruct, info);\n return returnState;\n }\n\n /** @type {State} */\n function nok(code) {\n consumed = true;\n info.restore();\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex]);\n }\n return bogusState;\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * Construct.\n * @param {number} from\n * From.\n * @returns {undefined}\n * Nothing.\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct);\n }\n if (construct.resolve) {\n splice(context.events, from, context.events.length - from, construct.resolve(context.events.slice(from), context));\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context);\n }\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n * Info.\n */\n function store() {\n const startPoint = now();\n const startPrevious = context.previous;\n const startCurrentConstruct = context.currentConstruct;\n const startEventsIndex = context.events.length;\n const startStack = Array.from(stack);\n return {\n from: startEventsIndex,\n restore\n };\n\n /**\n * Restore state.\n *\n * @returns {undefined}\n * Nothing.\n */\n function restore() {\n point = startPoint;\n context.previous = startPrevious;\n context.currentConstruct = startCurrentConstruct;\n context.events.length = startEventsIndex;\n stack = startStack;\n accountForPotentialSkip();\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it\u2019s on a column\n * skip.\n *\n * @returns {undefined}\n * Nothing.\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line];\n point.offset += columnStart[point.line] - 1;\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {ReadonlyArray<Chunk>} chunks\n * Chunks.\n * @param {Pick<Token, 'end' | 'start'>} token\n * Token.\n * @returns {Array<Chunk>}\n * Chunks.\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index;\n const startBufferIndex = token.start._bufferIndex;\n const endIndex = token.end._index;\n const endBufferIndex = token.end._bufferIndex;\n /** @type {Array<Chunk>} */\n let view;\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)];\n } else {\n view = chunks.slice(startIndex, endIndex);\n if (startBufferIndex > -1) {\n const head = view[0];\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex);\n /* c8 ignore next 4 -- used to be used, no longer */\n } else {\n view.shift();\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex));\n }\n }\n return view;\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {ReadonlyArray<Chunk>} chunks\n * Chunks.\n * @param {boolean | undefined} [expandTabs=false]\n * Whether to expand tabs (default: `false`).\n * @returns {string}\n * Result.\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1;\n /** @type {Array<string>} */\n const result = [];\n /** @type {boolean | undefined} */\n let atTab;\n while (++index < chunks.length) {\n const chunk = chunks[index];\n /** @type {string} */\n let value;\n if (typeof chunk === 'string') {\n value = chunk;\n } else switch (chunk) {\n case -5:\n {\n value = \"\\r\";\n break;\n }\n case -4:\n {\n value = \"\\n\";\n break;\n }\n case -3:\n {\n value = \"\\r\" + \"\\n\";\n break;\n }\n case -2:\n {\n value = expandTabs ? \" \" : \"\\t\";\n break;\n }\n case -1:\n {\n if (!expandTabs && atTab) continue;\n value = \" \";\n break;\n }\n default:\n {\n // Currently only replacement character.\n value = String.fromCharCode(chunk);\n }\n }\n atTab = chunk === -2;\n result.push(value);\n }\n return result.join('');\n}", "/**\n * @import {\n * Create,\n * FullNormalizedExtension,\n * InitialConstruct,\n * ParseContext,\n * ParseOptions\n * } from 'micromark-util-types'\n */\n\nimport { combineExtensions } from 'micromark-util-combine-extensions';\nimport { content } from './initialize/content.js';\nimport { document } from './initialize/document.js';\nimport { flow } from './initialize/flow.js';\nimport { string, text } from './initialize/text.js';\nimport * as defaultConstructs from './constructs.js';\nimport { createTokenizer } from './create-tokenizer.js';\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * Configuration (optional).\n * @returns {ParseContext}\n * Parser.\n */\nexport function parse(options) {\n const settings = options || {};\n const constructs = /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])]);\n\n /** @type {ParseContext} */\n const parser = {\n constructs,\n content: create(content),\n defined: [],\n document: create(document),\n flow: create(flow),\n lazy: {},\n string: create(string),\n text: create(text)\n };\n return parser;\n\n /**\n * @param {InitialConstruct} initial\n * Construct to start with.\n * @returns {Create}\n * Create a tokenizer.\n */\n function create(initial) {\n return creator;\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from);\n }\n }\n}", "/**\n * @import {Event} from 'micromark-util-types'\n */\n\nimport { subtokenize } from 'micromark-util-subtokenize';\n\n/**\n * @param {Array<Event>} events\n * Events.\n * @returns {Array<Event>}\n * Events.\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events;\n}", "/**\n * @import {Chunk, Code, Encoding, Value} from 'micromark-util-types'\n */\n\n/**\n * @callback Preprocessor\n * Preprocess a value.\n * @param {Value} value\n * Value.\n * @param {Encoding | null | undefined} [encoding]\n * Encoding when `value` is a typed array (optional).\n * @param {boolean | null | undefined} [end=false]\n * Whether this is the last chunk (default: `false`).\n * @returns {Array<Chunk>}\n * Chunks.\n */\n\nconst search = /[\\0\\t\\n\\r]/g;\n\n/**\n * @returns {Preprocessor}\n * Preprocess a value.\n */\nexport function preprocess() {\n let column = 1;\n let buffer = '';\n /** @type {boolean | undefined} */\n let start = true;\n /** @type {boolean | undefined} */\n let atCarriageReturn;\n return preprocessor;\n\n /** @type {Preprocessor} */\n // eslint-disable-next-line complexity\n function preprocessor(value, encoding, end) {\n /** @type {Array<Chunk>} */\n const chunks = [];\n /** @type {RegExpMatchArray | null} */\n let match;\n /** @type {number} */\n let next;\n /** @type {number} */\n let startPosition;\n /** @type {number} */\n let endPosition;\n /** @type {Code} */\n let code;\n value = buffer + (typeof value === 'string' ? value.toString() : new TextDecoder(encoding || undefined).decode(value));\n startPosition = 0;\n buffer = '';\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++;\n }\n start = undefined;\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition;\n match = search.exec(value);\n endPosition = match && match.index !== undefined ? match.index : value.length;\n code = value.charCodeAt(endPosition);\n if (!match) {\n buffer = value.slice(startPosition);\n break;\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3);\n atCarriageReturn = undefined;\n } else {\n if (atCarriageReturn) {\n chunks.push(-5);\n atCarriageReturn = undefined;\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition));\n column += endPosition - startPosition;\n }\n switch (code) {\n case 0:\n {\n chunks.push(65533);\n column++;\n break;\n }\n case 9:\n {\n next = Math.ceil(column / 4) * 4;\n chunks.push(-2);\n while (column++ < next) chunks.push(-1);\n break;\n }\n case 10:\n {\n chunks.push(-4);\n column = 1;\n break;\n }\n default:\n {\n atCarriageReturn = true;\n column = 1;\n }\n }\n }\n startPosition = endPosition + 1;\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5);\n if (buffer) chunks.push(buffer);\n chunks.push(null);\n }\n return chunks;\n }\n}", "import { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nconst characterEscapeOrReference = /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi;\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The \u201Cstring\u201D content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode);\n}\n\n/**\n * @param {string} $0\n * Match.\n * @param {string} $1\n * Character escape.\n * @param {string} $2\n * Character reference.\n * @returns {string}\n * Decoded value\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1;\n }\n\n // Reference.\n const head = $2.charCodeAt(0);\n if (head === 35) {\n const head = $2.charCodeAt(1);\n const hex = head === 120 || head === 88;\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10);\n }\n return decodeNamedCharacterReference($2) || $0;\n}", "/**\n * @import {\n * Break,\n * Blockquote,\n * Code,\n * Definition,\n * Emphasis,\n * Heading,\n * Html,\n * Image,\n * InlineCode,\n * Link,\n * ListItem,\n * List,\n * Nodes,\n * Paragraph,\n * PhrasingContent,\n * ReferenceType,\n * Root,\n * Strong,\n * Text,\n * ThematicBreak\n * } from 'mdast'\n * @import {\n * Encoding,\n * Event,\n * Token,\n * Value\n * } from 'micromark-util-types'\n * @import {Point} from 'unist'\n * @import {\n * CompileContext,\n * CompileData,\n * Config,\n * Extension,\n * Handle,\n * OnEnterError,\n * Options\n * } from './types.js'\n */\n\nimport { toString } from 'mdast-util-to-string';\nimport { parse, postprocess, preprocess } from 'micromark';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nimport { decodeString } from 'micromark-util-decode-string';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { stringifyPosition } from 'unist-util-stringify-position';\nconst own = {}.hasOwnProperty;\n\n/**\n * Turn markdown into a syntax tree.\n *\n * @overload\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @overload\n * @param {Value} value\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @param {Value} value\n * Markdown to parse.\n * @param {Encoding | Options | null | undefined} [encoding]\n * Character encoding for when `value` is `Buffer`.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {Root}\n * mdast tree.\n */\nexport function fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding;\n encoding = undefined;\n }\n return compiler(options)(postprocess(parse(options).document().write(preprocess()(value, encoding, true))));\n}\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n characterReference: onexitcharacterreference,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n };\n configure(config, (options || {}).mdastExtensions || []);\n\n /** @type {CompileData} */\n const data = {};\n return compile;\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array<Event>} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n };\n /** @type {Omit<CompileContext, 'sliceSerialize'>} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n data\n };\n /** @type {Array<number>} */\n const listStack = [];\n let index = -1;\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (events[index][1].type === \"listOrdered\" || events[index][1].type === \"listUnordered\") {\n if (events[index][0] === 'enter') {\n listStack.push(index);\n } else {\n const tail = listStack.pop();\n index = prepareList(events, tail, index);\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n const handler = config[events[index][0]];\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(Object.assign({\n sliceSerialize: events[index][2].sliceSerialize\n }, context), events[index][1]);\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1];\n const handler = tail[1] || defaultOnError;\n handler.call(context, undefined, tail[0]);\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(events.length > 0 ? events[0][1].start : {\n line: 1,\n column: 1,\n offset: 0\n }),\n end: point(events.length > 0 ? events[events.length - 2][1].end : {\n line: 1,\n column: 1,\n offset: 0\n })\n };\n\n // Call transforms.\n index = -1;\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree;\n }\n return tree;\n }\n\n /**\n * @param {Array<Event>} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1;\n let containerBalance = -1;\n let listSpread = false;\n /** @type {Token | undefined} */\n let listItem;\n /** @type {number | undefined} */\n let lineIndex;\n /** @type {number | undefined} */\n let firstBlankLineIndex;\n /** @type {boolean | undefined} */\n let atMarker;\n while (++index <= length) {\n const event = events[index];\n switch (event[1].type) {\n case \"listUnordered\":\n case \"listOrdered\":\n case \"blockQuote\":\n {\n if (event[0] === 'enter') {\n containerBalance++;\n } else {\n containerBalance--;\n }\n atMarker = undefined;\n break;\n }\n case \"lineEndingBlank\":\n {\n if (event[0] === 'enter') {\n if (listItem && !atMarker && !containerBalance && !firstBlankLineIndex) {\n firstBlankLineIndex = index;\n }\n atMarker = undefined;\n }\n break;\n }\n case \"linePrefix\":\n case \"listItemValue\":\n case \"listItemMarker\":\n case \"listItemPrefix\":\n case \"listItemPrefixWhitespace\":\n {\n // Empty.\n\n break;\n }\n default:\n {\n atMarker = undefined;\n }\n }\n if (!containerBalance && event[0] === 'enter' && event[1].type === \"listItemPrefix\" || containerBalance === -1 && event[0] === 'exit' && (event[1].type === \"listUnordered\" || event[1].type === \"listOrdered\")) {\n if (listItem) {\n let tailIndex = index;\n lineIndex = undefined;\n while (tailIndex--) {\n const tailEvent = events[tailIndex];\n if (tailEvent[1].type === \"lineEnding\" || tailEvent[1].type === \"lineEndingBlank\") {\n if (tailEvent[0] === 'exit') continue;\n if (lineIndex) {\n events[lineIndex][1].type = \"lineEndingBlank\";\n listSpread = true;\n }\n tailEvent[1].type = \"lineEnding\";\n lineIndex = tailIndex;\n } else if (tailEvent[1].type === \"linePrefix\" || tailEvent[1].type === \"blockQuotePrefix\" || tailEvent[1].type === \"blockQuotePrefixWhitespace\" || tailEvent[1].type === \"blockQuoteMarker\" || tailEvent[1].type === \"listItemIndent\") {\n // Empty\n } else {\n break;\n }\n }\n if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) {\n listItem._spread = true;\n }\n\n // Fix position.\n listItem.end = Object.assign({}, lineIndex ? events[lineIndex][1].start : event[1].end);\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]]);\n index++;\n length++;\n }\n\n // Create a new list item.\n if (event[1].type === \"listItemPrefix\") {\n /** @type {Token} */\n const item = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we\u2019ll add `end` in a second.\n end: undefined\n };\n listItem = item;\n events.splice(index, 0, ['enter', item, event[2]]);\n index++;\n length++;\n firstBlankLineIndex = undefined;\n atMarker = true;\n }\n }\n }\n events[start][1]._spread = listSpread;\n return length;\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Nodes} create\n * Create a node.\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function open(token) {\n enter.call(this, create(token), token);\n if (and) and.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['buffer']}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n });\n }\n\n /**\n * @type {CompileContext['enter']}\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1];\n /** @type {Array<Nodes>} */\n const siblings = parent.children;\n siblings.push(node);\n this.stack.push(node);\n this.tokenStack.push([token, errorHandler || undefined]);\n node.position = {\n start: point(token.start),\n // @ts-expect-error: `end` will be patched later.\n end: undefined\n };\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function close(token) {\n if (and) and.call(this, token);\n exit.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['exit']}\n */\n function exit(token, onExitError) {\n const node = this.stack.pop();\n const open = this.tokenStack.pop();\n if (!open) {\n throw new Error('Cannot close `' + token.type + '` (' + stringifyPosition({\n start: token.start,\n end: token.end\n }) + '): it\u2019s not open');\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0]);\n } else {\n const handler = open[1] || defaultOnError;\n handler.call(this, token, open[0]);\n }\n }\n node.position.end = point(token.end);\n }\n\n /**\n * @type {CompileContext['resume']}\n */\n function resume() {\n return toString(this.stack.pop());\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n this.data.expectingFirstListItemValue = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (this.data.expectingFirstListItemValue) {\n const ancestor = this.stack[this.stack.length - 2];\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10);\n this.data.expectingFirstListItemValue = undefined;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.lang = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.meta = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (this.data.flowCodeInside) return;\n this.buffer();\n this.data.flowCodeInside = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '');\n this.data.flowCodeInside = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '');\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.label = label;\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1];\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length;\n node.depth = depth;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n this.data.setextHeadingSlurpLineEnding = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1];\n node.depth = this.sliceSerialize(token).codePointAt(0) === 61 ? 1 : 2;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n this.data.setextHeadingSlurpLineEnding = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1];\n /** @type {Array<Nodes>} */\n const siblings = node.children;\n let tail = siblings[siblings.length - 1];\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text();\n tail.position = {\n start: point(token.start),\n // @ts-expect-error: we\u2019ll add `end` later.\n end: undefined\n };\n siblings.push(tail);\n }\n this.stack.push(tail);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop();\n tail.value += this.sliceSerialize(token);\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1];\n // If we\u2019re at a hard break, include the line ending in there.\n if (this.data.atHardBreak) {\n const tail = context.children[context.children.length - 1];\n tail.position.end = point(token.end);\n this.data.atHardBreak = undefined;\n return;\n }\n if (!this.data.setextHeadingSlurpLineEnding && config.canContainEols.includes(context.type)) {\n onenterdata.call(this, token);\n onexitdata.call(this, token);\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n this.data.atHardBreak = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token);\n const ancestor = this.stack[this.stack.length - 2];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string);\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1];\n const value = this.resume();\n const node = this.stack[this.stack.length - 1];\n // Assume a reference.\n this.data.inReference = true;\n if (node.type === 'link') {\n /** @type {Array<PhrasingContent>} */\n const children = fragment.children;\n node.children = children;\n } else {\n node.alt = value;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n this.data.inReference = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n this.data.referenceType = 'collapsed';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label;\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n this.data.referenceType = 'full';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n this.data.characterReferenceType = token.type;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token);\n const type = this.data.characterReferenceType;\n /** @type {string} */\n let value;\n if (type) {\n value = decodeNumericCharacterReference(data, type === \"characterReferenceMarkerNumeric\" ? 10 : 16);\n this.data.characterReferenceType = undefined;\n } else {\n const result = decodeNamedCharacterReference(data);\n value = result;\n }\n const tail = this.stack[this.stack.length - 1];\n tail.value += value;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreference(token) {\n const tail = this.stack.pop();\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = this.sliceSerialize(token);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = 'mailto:' + this.sliceSerialize(token);\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n };\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n };\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n };\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n };\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n };\n }\n\n /** @returns {Heading} */\n function heading() {\n return {\n type: 'heading',\n // @ts-expect-error `depth` will be set later.\n depth: 0,\n children: []\n };\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n };\n }\n\n /** @returns {Html} */\n function html() {\n return {\n type: 'html',\n value: ''\n };\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n };\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n };\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n };\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n };\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n };\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n };\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n };\n}\n\n/**\n * @param {Config} combined\n * @param {Array<Array<Extension> | Extension>} extensions\n * @returns {undefined}\n */\nfunction configure(combined, extensions) {\n let index = -1;\n while (++index < extensions.length) {\n const value = extensions[index];\n if (Array.isArray(value)) {\n configure(combined, value);\n } else {\n extension(combined, value);\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {undefined}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key;\n for (key in extension) {\n if (own.call(extension, key)) {\n switch (key) {\n case 'canContainEols':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'transforms':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'enter':\n case 'exit':\n {\n const right = extension[key];\n if (right) {\n Object.assign(combined[key], right);\n }\n break;\n }\n // No default\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error('Cannot close `' + left.type + '` (' + stringifyPosition({\n start: left.start,\n end: left.end\n }) + '): a different token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is open');\n } else {\n throw new Error('Cannot close document, a token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is still open');\n }\n}", "/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} FromMarkdownOptions\n * @typedef {import('unified').Parser<Root>} Parser\n * @typedef {import('unified').Processor<Root>} Processor\n */\n\n/**\n * @typedef {Omit<FromMarkdownOptions, 'extensions' | 'mdastExtensions'>} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * Aadd support for parsing from markdown.\n *\n * @param {Readonly<Options> | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkParse(options) {\n /** @type {Processor} */\n // @ts-expect-error: TS in JSDoc generates wrong types if `this` is typed regularly.\n const self = this\n\n self.parser = parser\n\n /**\n * @type {Parser}\n */\n function parser(doc) {\n return fromMarkdown(doc, {\n ...self.data('settings'),\n ...options,\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n }\n}\n", "/**\n * @import {Element} from 'hast'\n * @import {Blockquote} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n", "/**\n * @import {Element, Text} from 'hast'\n * @import {Break} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array<Element | Text>}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n", "/**\n * @import {Element, Properties} from 'hast'\n * @import {Code} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n /** @type {Properties} */\n const properties = {}\n // Someone can write `js&#x20;python&#x9;ruby`.\n const language = node.lang ? node.lang.split(/\\s+/) : []\n\n // GH/CM still drop the non-first languages.\n if (language.length > 0) {\n properties.className = ['language-' + language[0]]\n }\n\n // Create `<code>`.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `<pre>`.\n result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n state.patch(node, result)\n return result\n}\n", "/**\n * @import {Element} from 'hast'\n * @import {Delete} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Delete} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function strikethrough(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'del',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n", "/**\n * @import {Element} from 'hast'\n * @import {Emphasis} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Emphasis} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function emphasis(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'em',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n", "/**\n * @import {Element} from 'hast'\n * @import {FootnoteReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {FootnoteReference} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function footnoteReference(state, node) {\n const clobberPrefix =\n typeof state.options.clobberPrefix === 'string'\n ? state.options.clobberPrefix\n : 'user-content-'\n const id = String(node.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n const index = state.footnoteOrder.indexOf(id)\n /** @type {number} */\n let counter\n\n let reuseCounter = state.footnoteCounts.get(id)\n\n if (reuseCounter === undefined) {\n reuseCounter = 0\n state.footnoteOrder.push(id)\n counter = state.footnoteOrder.length\n } else {\n counter = index + 1\n }\n\n reuseCounter += 1\n state.footnoteCounts.set(id, reuseCounter)\n\n /** @type {Element} */\n const link = {\n type: 'element',\n tagName: 'a',\n properties: {\n href: '#' + clobberPrefix + 'fn-' + safeId,\n id:\n clobberPrefix +\n 'fnref-' +\n safeId +\n (reuseCounter > 1 ? '-' + reuseCounter : ''),\n dataFootnoteRef: true,\n ariaDescribedBy: ['footnote-label']\n },\n children: [{type: 'text', value: String(counter)}]\n }\n state.patch(node, link)\n\n /** @type {Element} */\n const sup = {\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [link]\n }\n state.patch(node, sup)\n return state.applyData(node, sup)\n}\n", "/**\n * @import {Element} from 'hast'\n * @import {Heading} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Heading} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function heading(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'h' + node.depth,\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n", "/**\n * @import {Element} from 'hast'\n * @import {Html} from 'mdast'\n * @import {State} from '../state.js'\n * @import {Raw} from '../../index.js'\n */\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n * Info passed around.\n * @param {Html} node\n * mdast node.\n * @returns {Element | Raw | undefined}\n * hast node.\n */\nexport function html(state, node) {\n if (state.options.allowDangerousHtml) {\n /** @type {Raw} */\n const result = {type: 'raw', value: node.value}\n state.patch(node, result)\n return state.applyData(node, result)\n }\n\n return undefined\n}\n", "/**\n * @import {ElementContent} from 'hast'\n * @import {Reference, Nodes} from 'mdast'\n * @import {State} from './state.js'\n */\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n * Info passed around.\n * @param {Extract<Nodes, Reference>} node\n * Reference node (image, link).\n * @returns {Array<ElementContent>}\n * hast content.\n */\nexport function revert(state, node) {\n const subtype = node.referenceType\n let suffix = ']'\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return [{type: 'text', value: '![' + node.alt + suffix}]\n }\n\n const contents = state.all(node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift({type: 'text', value: '['})\n }\n\n const tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push({type: 'text', value: suffix})\n }\n\n return contents\n}\n", "/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {ImageReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ImageReference} node\n * mdast node.\n * @returns {Array<ElementContent> | ElementContent}\n * hast node.\n */\nexport function imageReference(state, node) {\n const id = String(node.identifier).toUpperCase()\n const definition = state.definitionById.get(id)\n\n if (!definition) {\n return revert(state, node)\n }\n\n /** @type {Properties} */\n const properties = {src: normalizeUri(definition.url || ''), alt: node.alt}\n\n if (definition.title !== null && definition.title !== undefined) {\n properties.title = definition.title\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'img', properties, children: []}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n", "/**\n * @import {Element, Properties} from 'hast'\n * @import {Image} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Image} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function image(state, node) {\n /** @type {Properties} */\n const properties = {src: normalizeUri(node.url)}\n\n if (node.alt !== null && node.alt !== undefined) {\n properties.alt = node.alt\n }\n\n if (node.title !== null && node.title !== undefined) {\n properties.title = node.title\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'img', properties, children: []}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n", "/**\n * @import {Element, Text} from 'hast'\n * @import {InlineCode} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {InlineCode} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function inlineCode(state, node) {\n /** @type {Text} */\n const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n state.patch(node, text)\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'code',\n properties: {},\n children: [text]\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n", "/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {LinkReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {LinkReference} node\n * mdast node.\n * @returns {Array<ElementContent> | ElementContent}\n * hast node.\n */\nexport function linkReference(state, node) {\n const id = String(node.identifier).toUpperCase()\n const definition = state.definitionById.get(id)\n\n if (!definition) {\n return revert(state, node)\n }\n\n /** @type {Properties} */\n const properties = {href: normalizeUri(definition.url || '')}\n\n if (definition.title !== null && definition.title !== undefined) {\n properties.title = definition.title\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'a',\n properties,\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n", "/**\n * @import {Element, Properties} from 'hast'\n * @import {Link} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Link} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function link(state, node) {\n /** @type {Properties} */\n const properties = {href: normalizeUri(node.url)}\n\n if (node.title !== null && node.title !== undefined) {\n properties.title = node.title\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'a',\n properties,\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n", "/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {ListItem, Parents} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ListItem} node\n * mdast node.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function listItem(state, node, parent) {\n const results = state.all(node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const properties = {}\n /** @type {Array<ElementContent>} */\n const children = []\n\n if (typeof node.checked === 'boolean') {\n const head = results[0]\n /** @type {Element} */\n let paragraph\n\n if (head && head.type === 'element' && head.tagName === 'p') {\n paragraph = head\n } else {\n paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n results.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({type: 'text', value: ' '})\n }\n\n paragraph.children.unshift({\n type: 'element',\n tagName: 'input',\n properties: {type: 'checkbox', checked: node.checked, disabled: true},\n children: []\n })\n\n // According to github-markdown-css, this class hides bullet.\n // See: <https://github.com/sindresorhus/github-markdown-css>.\n properties.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < results.length) {\n const child = results[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (\n loose ||\n index !== 0 ||\n child.type !== 'element' ||\n child.tagName !== 'p'\n ) {\n children.push({type: 'text', value: '\\n'})\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n const tail = results[results.length - 1]\n\n // Add a final eol.\n if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n children.push({type: 'text', value: '\\n'})\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'li', properties, children}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = false\n if (node.type === 'list') {\n loose = node.spread || false\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n }\n\n return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === null || spread === undefined\n ? node.children.length > 1\n : spread\n}\n", "/**\n * @import {Element, Properties} from 'hast'\n * @import {List} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {List} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function list(state, node) {\n /** @type {Properties} */\n const properties = {}\n const results = state.all(node)\n let index = -1\n\n if (typeof node.start === 'number' && node.start !== 1) {\n properties.start = node.start\n }\n\n // Like GitHub, add a class for custom styling.\n while (++index < results.length) {\n const child = results[index]\n\n if (\n child.type === 'element' &&\n child.tagName === 'li' &&\n child.properties &&\n Array.isArray(child.properties.className) &&\n child.properties.className.includes('task-list-item')\n ) {\n properties.className = ['contains-task-list']\n break\n }\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: node.ordered ? 'ol' : 'ul',\n properties,\n children: state.wrap(results, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n", "/**\n * @import {Element} from 'hast'\n * @import {Paragraph} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Paragraph} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function paragraph(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'p',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n", "/**\n * @import {Parents as HastParents, Root as HastRoot} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastRoot} node\n * mdast node.\n * @returns {HastParents}\n * hast node.\n */\nexport function root(state, node) {\n /** @type {HastRoot} */\n const result = {type: 'root', children: state.wrap(state.all(node))}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n", "/**\n * @import {Element} from 'hast'\n * @import {Strong} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Strong} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function strong(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'strong',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n", "/**\n * @import {Table} from 'mdast'\n * @import {Element} from 'hast'\n * @import {State} from '../state.js'\n */\n\nimport {pointEnd, pointStart} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Table} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function table(state, node) {\n const rows = state.all(node)\n const firstRow = rows.shift()\n /** @type {Array<Element>} */\n const tableContent = []\n\n if (firstRow) {\n /** @type {Element} */\n const head = {\n type: 'element',\n tagName: 'thead',\n properties: {},\n children: state.wrap([firstRow], true)\n }\n state.patch(node.children[0], head)\n tableContent.push(head)\n }\n\n if (rows.length > 0) {\n /** @type {Element} */\n const body = {\n type: 'element',\n tagName: 'tbody',\n properties: {},\n children: state.wrap(rows, true)\n }\n\n const start = pointStart(node.children[1])\n const end = pointEnd(node.children[node.children.length - 1])\n if (start && end) body.position = {start, end}\n tableContent.push(body)\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'table',\n properties: {},\n children: state.wrap(tableContent, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n", "/**\n * @import {Element, ElementContent, Properties} from 'hast'\n * @import {Parents, TableRow} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {TableRow} node\n * mdast node.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function tableRow(state, node, parent) {\n const siblings = parent ? parent.children : undefined\n // Generate a body row when without parent.\n const rowIndex = siblings ? siblings.indexOf(node) : 1\n const tagName = rowIndex === 0 ? 'th' : 'td'\n // To do: option to use `style`?\n const align = parent && parent.type === 'table' ? parent.align : undefined\n const length = align ? align.length : node.children.length\n let cellIndex = -1\n /** @type {Array<ElementContent>} */\n const cells = []\n\n while (++cellIndex < length) {\n // Note: can also be undefined.\n const cell = node.children[cellIndex]\n /** @type {Properties} */\n const properties = {}\n const alignValue = align ? align[cellIndex] : undefined\n\n if (alignValue) {\n properties.align = alignValue\n }\n\n /** @type {Element} */\n let result = {type: 'element', tagName, properties, children: []}\n\n if (cell) {\n result.children = state.all(cell)\n state.patch(cell, result)\n result = state.applyData(cell, result)\n }\n\n cells.push(result)\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'tr',\n properties: {},\n children: state.wrap(cells, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n", "/**\n * @import {Element} from 'hast'\n * @import {TableCell} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {TableCell} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function tableCell(state, node) {\n // Note: this function is normally not called: see `table-row` for how rows\n // and their cells are compiled.\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'td', // Assume body cell.\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n", "const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Trimmed value.\n */\nexport function trimLines(value) {\n const source = String(value)\n const search = /\\r?\\n|\\r/g\n let match = search.exec(source)\n let last = 0\n /** @type {Array<string>} */\n const lines = []\n\n while (match) {\n lines.push(\n trimLine(source.slice(last, match.index), last > 0, true),\n match[0]\n )\n\n last = match.index + match[0].length\n match = search.exec(source)\n }\n\n lines.push(trimLine(source.slice(last), last > 0, false))\n\n return lines.join('')\n}\n\n/**\n * @param {string} value\n * Line to trim.\n * @param {boolean} start\n * Whether to trim the start of the line.\n * @param {boolean} end\n * Whether to trim the end of the line.\n * @returns {string}\n * Trimmed line.\n */\nfunction trimLine(value, start, end) {\n let startIndex = 0\n let endIndex = value.length\n\n if (start) {\n let code = value.codePointAt(startIndex)\n\n while (code === tab || code === space) {\n startIndex++\n code = value.codePointAt(startIndex)\n }\n }\n\n if (end) {\n let code = value.codePointAt(endIndex - 1)\n\n while (code === tab || code === space) {\n endIndex--\n code = value.codePointAt(endIndex - 1)\n }\n }\n\n return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n", "/**\n * @import {Element as HastElement, Text as HastText} from 'hast'\n * @import {Text as MdastText} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastText} node\n * mdast node.\n * @returns {HastElement | HastText}\n * hast node.\n */\nexport function text(state, node) {\n /** @type {HastText} */\n const result = {type: 'text', value: trimLines(String(node.value))}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n", "/**\n * @import {Element} from 'hast'\n * @import {ThematicBreak} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ThematicBreak} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function thematicBreak(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'hr',\n properties: {},\n children: []\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n", "/**\n * @import {Handlers} from '../state.js'\n */\n\nimport {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n *\n * @satisfies {Handlers}\n */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n // @ts-expect-error: root is different, but hard to type.\n root,\n strong,\n table,\n tableCell,\n tableRow,\n text,\n thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n return undefined\n}\n", "import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst env = typeof self === 'object' ? self : globalThis;\n\nconst deserializer = ($, _) => {\n const as = (out, index) => {\n $.set(index, out);\n return out;\n };\n\n const unpair = index => {\n if ($.has(index))\n return $.get(index);\n\n const [type, value] = _[index];\n switch (type) {\n case PRIMITIVE:\n case VOID:\n return as(value, index);\n case ARRAY: {\n const arr = as([], index);\n for (const index of value)\n arr.push(unpair(index));\n return arr;\n }\n case OBJECT: {\n const object = as({}, index);\n for (const [key, index] of value)\n object[unpair(key)] = unpair(index);\n return object;\n }\n case DATE:\n return as(new Date(value), index);\n case REGEXP: {\n const {source, flags} = value;\n return as(new RegExp(source, flags), index);\n }\n case MAP: {\n const map = as(new Map, index);\n for (const [key, index] of value)\n map.set(unpair(key), unpair(index));\n return map;\n }\n case SET: {\n const set = as(new Set, index);\n for (const index of value)\n set.add(unpair(index));\n return set;\n }\n case ERROR: {\n const {name, message} = value;\n return as(new env[name](message), index);\n }\n case BIGINT:\n return as(BigInt(value), index);\n case 'BigInt':\n return as(Object(BigInt(value)), index);\n case 'ArrayBuffer':\n return as(new Uint8Array(value).buffer, value);\n case 'DataView': {\n const { buffer } = new Uint8Array(value);\n return as(new DataView(buffer), value);\n }\n }\n return as(new env[type](value), index);\n };\n\n return unpair;\n};\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns a deserialized value from a serialized array of Records.\n * @param {Record[]} serialized a previously serialized value.\n * @returns {any}\n */\nexport const deserialize = serialized => deserializer(new Map, serialized)(0);\n", "import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst EMPTY = '';\n\nconst {toString} = {};\nconst {keys} = Object;\n\nconst typeOf = value => {\n const type = typeof value;\n if (type !== 'object' || !value)\n return [PRIMITIVE, type];\n\n const asString = toString.call(value).slice(8, -1);\n switch (asString) {\n case 'Array':\n return [ARRAY, EMPTY];\n case 'Object':\n return [OBJECT, EMPTY];\n case 'Date':\n return [DATE, EMPTY];\n case 'RegExp':\n return [REGEXP, EMPTY];\n case 'Map':\n return [MAP, EMPTY];\n case 'Set':\n return [SET, EMPTY];\n case 'DataView':\n return [ARRAY, asString];\n }\n\n if (asString.includes('Array'))\n return [ARRAY, asString];\n\n if (asString.includes('Error'))\n return [ERROR, asString];\n\n return [OBJECT, asString];\n};\n\nconst shouldSkip = ([TYPE, type]) => (\n TYPE === PRIMITIVE &&\n (type === 'function' || type === 'symbol')\n);\n\nconst serializer = (strict, json, $, _) => {\n\n const as = (out, value) => {\n const index = _.push(out) - 1;\n $.set(value, index);\n return index;\n };\n\n const pair = value => {\n if ($.has(value))\n return $.get(value);\n\n let [TYPE, type] = typeOf(value);\n switch (TYPE) {\n case PRIMITIVE: {\n let entry = value;\n switch (type) {\n case 'bigint':\n TYPE = BIGINT;\n entry = value.toString();\n break;\n case 'function':\n case 'symbol':\n if (strict)\n throw new TypeError('unable to serialize ' + type);\n entry = null;\n break;\n case 'undefined':\n return as([VOID], value);\n }\n return as([TYPE, entry], value);\n }\n case ARRAY: {\n if (type) {\n let spread = value;\n if (type === 'DataView') {\n spread = new Uint8Array(value.buffer);\n }\n else if (type === 'ArrayBuffer') {\n spread = new Uint8Array(value);\n }\n return as([type, [...spread]], value);\n }\n\n const arr = [];\n const index = as([TYPE, arr], value);\n for (const entry of value)\n arr.push(pair(entry));\n return index;\n }\n case OBJECT: {\n if (type) {\n switch (type) {\n case 'BigInt':\n return as([type, value.toString()], value);\n case 'Boolean':\n case 'Number':\n case 'String':\n return as([type, value.valueOf()], value);\n }\n }\n\n if (json && ('toJSON' in value))\n return pair(value.toJSON());\n\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const key of keys(value)) {\n if (strict || !shouldSkip(typeOf(value[key])))\n entries.push([pair(key), pair(value[key])]);\n }\n return index;\n }\n case DATE:\n return as([TYPE, value.toISOString()], value);\n case REGEXP: {\n const {source, flags} = value;\n return as([TYPE, {source, flags}], value);\n }\n case MAP: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const [key, entry] of value) {\n if (strict || !(shouldSkip(typeOf(key)) || shouldSkip(typeOf(entry))))\n entries.push([pair(key), pair(entry)]);\n }\n return index;\n }\n case SET: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const entry of value) {\n if (strict || !shouldSkip(typeOf(entry)))\n entries.push(pair(entry));\n }\n return index;\n }\n }\n\n const {message} = value;\n return as([TYPE, {name: type, message}], value);\n };\n\n return pair;\n};\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} value a serializable value.\n * @param {{json?: boolean, lossy?: boolean}?} options an object with a `lossy` or `json` property that,\n * if `true`, will not throw errors on incompatible types, and behave more\n * like JSON stringify would behave. Symbol and Function will be discarded.\n * @returns {Record[]}\n */\n export const serialize = (value, {json, lossy} = {}) => {\n const _ = [];\n return serializer(!(json || lossy), !!json, new Map, _)(value), _;\n};\n", "import {deserialize} from './deserialize.js';\nimport {serialize} from './serialize.js';\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} any a serializable value.\n * @param {{transfer?: any[], json?: boolean, lossy?: boolean}?} options an object with\n * a transfer option (ignored when polyfilled) and/or non standard fields that\n * fallback to the polyfill if present.\n * @returns {Record[]}\n */\nexport default typeof structuredClone === \"function\" ?\n /* c8 ignore start */\n (any, options) => (\n options && ('json' in options || 'lossy' in options) ?\n deserialize(serialize(any, options)) : structuredClone(any)\n ) :\n (any, options) => deserialize(serialize(any, options));\n /* c8 ignore stop */\n\nexport {deserialize, serialize};\n", "/**\n * @import {ElementContent, Element} from 'hast'\n * @import {State} from './state.js'\n */\n\n/**\n * @callback FootnoteBackContentTemplate\n * Generate content for the backreference dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array<ElementContent> | ElementContent | string}\n * Content for the backreference when linking back from definitions to their\n * reference.\n *\n * @callback FootnoteBackLabelTemplate\n * Generate a back label dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Back label to use when linking back from definitions to their reference.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate the default content that GitHub uses on backreferences.\n *\n * @param {number} _\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array<ElementContent>}\n * Content.\n */\nexport function defaultFootnoteBackContent(_, rereferenceIndex) {\n /** @type {Array<ElementContent>} */\n const result = [{type: 'text', value: '\u21A9'}]\n\n if (rereferenceIndex > 1) {\n result.push({\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [{type: 'text', value: String(rereferenceIndex)}]\n })\n }\n\n return result\n}\n\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Label.\n */\nexport function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n return (\n 'Back to reference ' +\n (referenceIndex + 1) +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n )\n}\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */\n// eslint-disable-next-line complexity\nexport function footer(state) {\n const clobberPrefix =\n typeof state.options.clobberPrefix === 'string'\n ? state.options.clobberPrefix\n : 'user-content-'\n const footnoteBackContent =\n state.options.footnoteBackContent || defaultFootnoteBackContent\n const footnoteBackLabel =\n state.options.footnoteBackLabel || defaultFootnoteBackLabel\n const footnoteLabel = state.options.footnoteLabel || 'Footnotes'\n const footnoteLabelTagName = state.options.footnoteLabelTagName || 'h2'\n const footnoteLabelProperties = state.options.footnoteLabelProperties || {\n className: ['sr-only']\n }\n /** @type {Array<ElementContent>} */\n const listItems = []\n let referenceIndex = -1\n\n while (++referenceIndex < state.footnoteOrder.length) {\n const definition = state.footnoteById.get(\n state.footnoteOrder[referenceIndex]\n )\n\n if (!definition) {\n continue\n }\n\n const content = state.all(definition)\n const id = String(definition.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n let rereferenceIndex = 0\n /** @type {Array<ElementContent>} */\n const backReferences = []\n const counts = state.footnoteCounts.get(id)\n\n // eslint-disable-next-line no-unmodified-loop-condition\n while (counts !== undefined && ++rereferenceIndex <= counts) {\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n let children =\n typeof footnoteBackContent === 'string'\n ? footnoteBackContent\n : footnoteBackContent(referenceIndex, rereferenceIndex)\n\n if (typeof children === 'string') {\n children = {type: 'text', value: children}\n }\n\n backReferences.push({\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n clobberPrefix +\n 'fnref-' +\n safeId +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : ''),\n dataFootnoteBackref: '',\n ariaLabel:\n typeof footnoteBackLabel === 'string'\n ? footnoteBackLabel\n : footnoteBackLabel(referenceIndex, rereferenceIndex),\n className: ['data-footnote-backref']\n },\n children: Array.isArray(children) ? children : [children]\n })\n }\n\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'element' && tail.tagName === 'p') {\n const tailTail = tail.children[tail.children.length - 1]\n if (tailTail && tailTail.type === 'text') {\n tailTail.value += ' '\n } else {\n tail.children.push({type: 'text', value: ' '})\n }\n\n tail.children.push(...backReferences)\n } else {\n content.push(...backReferences)\n }\n\n /** @type {Element} */\n const listItem = {\n type: 'element',\n tagName: 'li',\n properties: {id: clobberPrefix + 'fn-' + safeId},\n children: state.wrap(content, true)\n }\n\n state.patch(definition, listItem)\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: footnoteLabelTagName,\n properties: {\n ...structuredClone(footnoteLabelProperties),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n", "/**\n * @import {Node, Parent} from 'unist'\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\u2019s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node\u2019s 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> | ReadonlyArray<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\u2019s position in its parent.\n * @param {Parent | undefined} [parent]\n * The node\u2019s 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\u2019s position in its parent.\n * @param {Parent | null | undefined} parent\n * The node\u2019s 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\u2019t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends ReadonlyArray<string>>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition[number]}) &\n * (<Condition extends Array<string>>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition[number]}) &\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\u2019re 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\u2019t 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)\n ? anyFactory(test)\n : // Cast because `ReadonlyArray` goes into the above but `isArray`\n // narrows to `Array`.\n propertiesFactory(/** @type {Props} */ (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 propertiesFactory(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 * @import {Node as UnistNode, Parent as UnistParent} from 'unist'\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\u2019t 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 ReadonlyArray<infer T>\n * ? MatchesOne<Value, T>\n * : Check extends Array<infer T>\n * ? MatchesOne<Value, T>\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 * > \uD83D\uDC49 **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\u2019t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn\u2019t 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\u2019s 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\u2019t 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('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\u2019t work when publishing on npm.\n */\n\n// To do: use types from `unist-util-visit-parents` when it\u2019s 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 * > \uD83D\uDC49 **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\u2019t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn\u2019t 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 * @import {\n * ElementContent as HastElementContent,\n * Element as HastElement,\n * Nodes as HastNodes,\n * Properties as HastProperties,\n * RootContent as HastRootContent,\n * Text as HastText\n * } from 'hast'\n * @import {\n * Definition as MdastDefinition,\n * FootnoteDefinition as MdastFootnoteDefinition,\n * Nodes as MdastNodes,\n * Parents as MdastParents\n * } from 'mdast'\n * @import {VFile} from 'vfile'\n * @import {\n * FootnoteBackContentTemplate,\n * FootnoteBackLabelTemplate\n * } from './footer.js'\n */\n\n/**\n * @callback Handler\n * Handle a node.\n * @param {State} state\n * Info passed around.\n * @param {any} node\n * mdast node to handle.\n * @param {MdastParents | undefined} parent\n * Parent of `node`.\n * @returns {Array<HastElementContent> | HastElementContent | undefined}\n * hast node.\n *\n * @typedef {Partial<Record<MdastNodes['type'], Handler>>} Handlers\n * Handle nodes.\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n * Whether to persist raw HTML in markdown in the hast tree (default:\n * `false`).\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n * Prefix to use before the `id` property on footnotes to prevent them from\n * *clobbering* (default: `'user-content-'`).\n *\n * Pass `''` for trusted markdown and when you are careful with\n * polyfilling.\n * You could pass a different prefix.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=\"x\"></p>\n * <script>alert(x) // `x` now refers to the `p#x` DOM element</script>\n * ```\n *\n * The above example shows that elements are made available by browsers, by\n * their ID, on the `window` object.\n * This is a security risk because you might be expecting some other variable\n * at that place.\n * It can also break polyfills.\n * Using a prefix solves these problems.\n * @property {VFile | null | undefined} [file]\n * Corresponding virtual file representing the input document (optional).\n * @property {FootnoteBackContentTemplate | string | null | undefined} [footnoteBackContent]\n * Content of the backreference back to references (default: `defaultFootnoteBackContent`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackContent(_, rereferenceIndex) {\n * const result = [{type: 'text', value: '\u21A9'}]\n *\n * if (rereferenceIndex > 1) {\n * result.push({\n * type: 'element',\n * tagName: 'sup',\n * properties: {},\n * children: [{type: 'text', value: String(rereferenceIndex)}]\n * })\n * }\n *\n * return result\n * }\n * ```\n *\n * This content is used in the `a` element of each backreference (the `\u21A9`\n * links).\n * @property {FootnoteBackLabelTemplate | string | null | undefined} [footnoteBackLabel]\n * Label to describe the backreference back to references (default:\n * `defaultFootnoteBackLabel`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n * return (\n * 'Back to reference ' +\n * (referenceIndex + 1) +\n * (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n * )\n * }\n * ```\n *\n * Change it when the markdown is not in English.\n *\n * This label is used in the `ariaLabel` property on each backreference\n * (the `\u21A9` links).\n * It affects users of assistive technology.\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Textual label to use for the footnotes section (default: `'Footnotes'`).\n *\n * Change it when the markdown is not in English.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (default: `{className:\n * ['sr-only']}`).\n *\n * Change it to show the label and add other properties.\n *\n * This label is typically hidden visually (assuming an `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass an empty string.\n * You can also add different properties.\n *\n * > **Note**: `id: 'footnote-label'` is always added, because footnote\n * > calls use it with `aria-describedby` to provide an accessible label.\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * HTML tag name to use for the footnote label element (default: `'h2'`).\n *\n * Change it to match your document structure.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes (optional).\n * @property {Array<MdastNodes['type']> | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed)\n * (optional).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes (optional).\n *\n * @typedef State\n * Info passed around.\n * @property {(node: MdastNodes) => Array<HastElementContent>} all\n * Transform the children of an mdast parent to hast.\n * @property {<Type extends HastNodes>(from: MdastNodes, to: Type) => HastElement | Type} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {Map<string, MdastDefinition>} definitionById\n * Definitions by their identifier.\n * @property {Map<string, MdastFootnoteDefinition>} footnoteById\n * Footnote definitions by their identifier.\n * @property {Map<string, number>} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Array<string>} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {(node: MdastNodes, parent: MdastParents | undefined) => Array<HastElementContent> | HastElementContent | undefined} one\n * Transform an mdast node to hast.\n * @property {Options} options\n * Configuration.\n * @property {(from: MdastNodes, node: HastNodes) => undefined} patch\n * Copy a node\u2019s positional info.\n * @property {<Type extends HastRootContent>(nodes: Array<Type>, loose?: boolean | undefined) => Array<HastText | Type>} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {visit} from 'unist-util-visit'\nimport {position} from 'unist-util-position'\nimport {handlers as defaultHandlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || emptyOptions\n /** @type {Map<string, MdastDefinition>} */\n const definitionById = new Map()\n /** @type {Map<string, MdastFootnoteDefinition>} */\n const footnoteById = new Map()\n /** @type {Map<string, number>} */\n const footnoteCounts = new Map()\n /** @type {Handlers} */\n // @ts-expect-error: the root handler returns a root.\n // Hard to type.\n const handlers = {...defaultHandlers, ...settings.handlers}\n\n /** @type {State} */\n const state = {\n all,\n applyData,\n definitionById,\n footnoteById,\n footnoteCounts,\n footnoteOrder: [],\n handlers,\n one,\n options: settings,\n patch,\n wrap\n }\n\n visit(tree, function (node) {\n if (node.type === 'definition' || node.type === 'footnoteDefinition') {\n const map = node.type === 'definition' ? definitionById : footnoteById\n const id = String(node.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: <https://github.com/syntax-tree/mdast-util-definitions/blob/9032189/lib/index.js#L20-L21>.\n if (!map.has(id)) {\n // @ts-expect-error: node type matches map.\n map.set(id, node)\n }\n }\n })\n\n return state\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | undefined} [parent]\n * Parent of `node`.\n * @returns {Array<HastElementContent> | HastElementContent | undefined}\n * Resulting hast node.\n */\n function one(node, parent) {\n const type = node.type\n const handle = state.handlers[type]\n\n if (own.call(state.handlers, type) && handle) {\n return handle(state, node, parent)\n }\n\n if (state.options.passThrough && state.options.passThrough.includes(type)) {\n if ('children' in node) {\n const {children, ...shallow} = node\n const result = structuredClone(shallow)\n // @ts-expect-error: TS doesn\u2019t understand\u2026\n result.children = state.all(node)\n // @ts-expect-error: TS doesn\u2019t understand\u2026\n return result\n }\n\n // @ts-expect-error: it\u2019s custom.\n return structuredClone(node)\n }\n\n const unknown = state.options.unknownHandler || defaultUnknownHandler\n\n return unknown(state, node, parent)\n }\n\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array<HastElementContent>}\n * Resulting hast nodes.\n */\n function all(parent) {\n /** @type {Array<HastElementContent>} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n while (++index < nodes.length) {\n const result = state.one(nodes[index], parent)\n\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = trimMarkdownSpaceStart(result.value)\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = trimMarkdownSpaceStart(head.value)\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\n }\n}\n\n/**\n * Copy a node\u2019s positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(from, to) {\n if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {HastElement | Type}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {HastElement | Type} */\n let result = to\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName\n const hChildren = from.data.hChildren\n const hProperties = from.data.hProperties\n\n if (typeof hName === 'string') {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === 'element') {\n result.tagName = hName\n }\n // Transforming the node resulted in a non-element, which happens for\n // raw, text, and root nodes (unless custom handlers are passed).\n // The intent of `hName` is to create an element, but likely also to keep\n // the content around (otherwise: pass `hChildren`).\n else {\n /** @type {Array<HastElementContent>} */\n // @ts-expect-error: assume no doctypes in `root`.\n const children = 'children' in result ? result.children : [result]\n result = {type: 'element', tagName: hName, properties: {}, children}\n }\n }\n\n if (result.type === 'element' && hProperties) {\n Object.assign(result.properties, structuredClone(hProperties))\n }\n\n if (\n 'children' in result &&\n result.children &&\n hChildren !== null &&\n hChildren !== undefined\n ) {\n result.children = hChildren\n }\n }\n\n return result\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastElement | HastText}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {}\n /** @type {HastElement | HastText} */\n const result =\n 'value' in node &&\n !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n ? {type: 'text', value: node.value}\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: state.all(node)\n }\n\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastRootContent} Type\n * Node type.\n * @param {Array<Type>} nodes\n * List of nodes to wrap.\n * @param {boolean | undefined} [loose=false]\n * Whether to add line endings at start and end (default: `false`).\n * @returns {Array<HastText | Type>}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array<HastText | Type>} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push({type: 'text', value: '\\n'})\n }\n\n while (++index < nodes.length) {\n if (index) result.push({type: 'text', value: '\\n'})\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push({type: 'text', value: '\\n'})\n }\n\n return result\n}\n\n/**\n * Trim spaces and tabs at the start of `value`.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Result.\n */\nfunction trimMarkdownSpaceStart(value) {\n let index = 0\n let code = value.charCodeAt(index)\n\n while (code === 9 || code === 32) {\n index++\n code = value.charCodeAt(index)\n }\n\n return value.slice(index)\n}\n", "/**\n * @import {Nodes as HastNodes} from 'hast'\n * @import {Nodes as MdastNodes} from 'mdast'\n * @import {Options} from './state.js'\n */\n\nimport {ok as assert} from 'devlop'\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don\u2019t:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=x></p>\n * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>\n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn\u2019t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn\u2019t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `<div>` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {HastNodes}\n * hast tree.\n */\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, undefined)\n const foot = footer(state)\n /** @type {HastNodes} */\n const result = Array.isArray(node)\n ? {type: 'root', children: node}\n : node || {type: 'root', children: []}\n\n if (foot) {\n // If there\u2019s a footer, there were definitions, meaning block\n // content.\n // So `result` is a parent node.\n assert('children' in result)\n result.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n return result\n}\n", "/**\n * @import {Root as HastRoot} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {Options as ToHastOptions} from 'mdast-util-to-hast'\n * @import {Processor} from 'unified'\n * @import {VFile} from 'vfile'\n */\n\n/**\n * @typedef {Omit<ToHastOptions, 'file'>} Options\n *\n * @callback TransformBridge\n * Bridge-mode.\n *\n * Runs the destination with the new hast tree.\n * Discards result.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {Promise<undefined>}\n * Nothing.\n *\n * @callback TransformMutate\n * Mutate-mode.\n *\n * Further transformers run on the hast tree.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {HastRoot}\n * Tree (hast).\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n/**\n * Turn markdown into HTML.\n *\n * ##### Notes\n *\n * ###### Signature\n *\n * * if a processor is given,\n * runs the (rehype) plugins used on it with a hast tree,\n * then discards the result (*bridge mode*)\n * * otherwise,\n * returns a hast tree,\n * the plugins used after `remarkRehype` are rehype plugins (*mutate mode*)\n *\n * > \uD83D\uDC49 **Note**:\n * > It\u2019s highly unlikely that you want to pass a `processor`.\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most plugins ignore `raw` nodes but two notable ones don\u2019t:\n *\n * * `rehype-stringify` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful if\n * you completely trust authors\n * * `rehype-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc);\n * this is a heavy task as it needs a full HTML parser,\n * but it is the only way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark,\n * which we follow by default.\n * They are supported by GitHub,\n * so footnotes can be enabled in markdown with `remark-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes,\n * which is hidden for sighted users but shown to assistive technology.\n * When your page is not in English,\n * you must define translated values.\n *\n * Back references use ARIA attributes,\n * but the section label itself uses a heading that is hidden with an\n * `sr-only` class.\n * To show it to sighted users,\n * define different attributes in `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem,\n * as it links footnote calls to footnote definitions on the page through `id`\n * attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=x></p>\n * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>\n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * *Example: headings (DOM clobbering)* in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn\u2019t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value`\n * (and doesn\u2019t have `data.hName`, `data.hProperties`, or `data.hChildren`,\n * see later),\n * create a hast `text` node\n * * otherwise,\n * create a `<div>` element (which could be changed with `data.hName`),\n * with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @overload\n * @param {Processor} processor\n * @param {Readonly<Options> | null | undefined} [options]\n * @returns {TransformBridge}\n *\n * @overload\n * @param {Readonly<Options> | null | undefined} [options]\n * @returns {TransformMutate}\n *\n * @overload\n * @param {Readonly<Options> | Processor | null | undefined} [destination]\n * @param {Readonly<Options> | null | undefined} [options]\n * @returns {TransformBridge | TransformMutate}\n *\n * @param {Readonly<Options> | Processor | null | undefined} [destination]\n * Processor or configuration (optional).\n * @param {Readonly<Options> | null | undefined} [options]\n * When a processor was given,\n * configuration (optional).\n * @returns {TransformBridge | TransformMutate}\n * Transform.\n */\nexport default function remarkRehype(destination, options) {\n if (destination && 'run' in destination) {\n /**\n * @type {TransformBridge}\n */\n return async function (tree, file) {\n // Cast because root in -> root out.\n const hastTree = /** @type {HastRoot} */ (\n toHast(tree, {file, ...options})\n )\n await destination.run(hastTree, file)\n }\n }\n\n /**\n * @type {TransformMutate}\n */\n return function (tree, file) {\n // Cast because root in -> root out.\n // To do: in the future, disallow ` || options` fallback.\n // With `unified-engine`, `destination` can be `undefined` but\n // `options` will be the file set.\n // We should not pass that as `options`.\n return /** @type {HastRoot} */ (\n toHast(tree, {file, ...(destination || options)})\n )\n }\n}\n", "/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n", "/**\n * @typedef {import('trough').Pipeline} Pipeline\n *\n * @typedef {import('unist').Node} Node\n *\n * @typedef {import('vfile').Compatible} Compatible\n * @typedef {import('vfile').Value} Value\n *\n * @typedef {import('../index.js').CompileResultMap} CompileResultMap\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Settings} Settings\n */\n\n/**\n * @typedef {CompileResultMap[keyof CompileResultMap]} CompileResults\n * Acceptable results from compilers.\n *\n * To register custom results, add them to\n * {@linkcode CompileResultMap}.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the compiler receives (default: `Node`).\n * @template {CompileResults} [Result=CompileResults]\n * The thing that the compiler yields (default: `CompileResults`).\n * @callback Compiler\n * A **compiler** handles the compiling of a syntax tree to something else\n * (in most cases, text) (TypeScript type).\n *\n * It is used in the stringify phase and called with a {@linkcode Node}\n * and {@linkcode VFile} representation of the document to compile.\n * It should return the textual representation of the given tree (typically\n * `string`).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you\u2019re using a compiler that doesn\u2019t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n * @param {Tree} tree\n * Tree to compile.\n * @param {VFile} file\n * File associated with `tree`.\n * @returns {Result}\n * New content: compiled text (`string` or `Uint8Array`, for `file.value`) or\n * something else (for `file.result`).\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the parser yields (default: `Node`)\n * @callback Parser\n * A **parser** handles the parsing of text to a syntax tree.\n *\n * It is used in the parse phase and is called with a `string` and\n * {@linkcode VFile} of the document to parse.\n * It must return the syntax tree representation of the given file\n * ({@linkcode Node}).\n * @param {string} document\n * Document to parse.\n * @param {VFile} file\n * File associated with `document`.\n * @returns {Tree}\n * Node representing the given file.\n */\n\n/**\n * @typedef {(\n * Plugin<Array<any>, any, any> |\n * PluginTuple<Array<any>, any, any> |\n * Preset\n * )} Pluggable\n * Union of the different ways to add plugins and settings.\n */\n\n/**\n * @typedef {Array<Pluggable>} PluggableList\n * List of plugins and presets.\n */\n\n// Note: we can\u2019t use `callback` yet as it messes up `this`:\n// <https://github.com/microsoft/TypeScript/issues/55197>.\n/**\n * @template {Array<unknown>} [PluginParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=Node]\n * Value that is expected as input (default: `Node`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=Input]\n * Value that is yielded as output (default: `Input`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * (this: Processor, ...parameters: PluginParameters) =>\n * Input extends string ? // Parser.\n * Output extends Node | undefined ? undefined | void : never :\n * Output extends CompileResults ? // Compiler.\n * Input extends Node | undefined ? undefined | void : never :\n * Transformer<\n * Input extends Node ? Input : Node,\n * Output extends Node ? Output : Node\n * > | undefined | void\n * )} Plugin\n * Single plugin.\n *\n * Plugins configure the processors they are applied on in the following\n * ways:\n *\n * * they change the processor, such as the parser, the compiler, or by\n * configuring data\n * * they specify how to handle trees and files\n *\n * In practice, they are functions that can receive options and configure the\n * processor (`this`).\n *\n * > **Note**: plugins are called when the processor is *frozen*, not when\n * > they are applied.\n */\n\n/**\n * Tuple of a plugin and its configuration.\n *\n * The first item is a plugin, the rest are its parameters.\n *\n * @template {Array<unknown>} [TupleParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=undefined]\n * Value that is expected as input (optional).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=undefined] (optional).\n * Value that is yielded as output.\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * [\n * plugin: Plugin<TupleParameters, Input, Output>,\n * ...parameters: TupleParameters\n * ]\n * )} PluginTuple\n */\n\n/**\n * @typedef Preset\n * Sharable configuration.\n *\n * They can contain plugins and settings.\n * @property {PluggableList | undefined} [plugins]\n * List of plugins and presets (optional).\n * @property {Settings | undefined} [settings]\n * Shared settings for parsers and compilers (optional).\n */\n\n/**\n * @template {VFile} [File=VFile]\n * The file that the callback receives (default: `VFile`).\n * @callback ProcessCallback\n * Callback called when the process is done.\n *\n * Called with either an error or a result.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {File | undefined} [file]\n * Processed file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The tree that the callback receives (default: `Node`).\n * @callback RunCallback\n * Callback called when transformers are done.\n *\n * Called with either an error or results.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {Tree | undefined} [tree]\n * Transformed tree (optional).\n * @param {VFile | undefined} [file]\n * File (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Output=Node]\n * Node type that the transformer yields (default: `Node`).\n * @callback TransformCallback\n * Callback passed to transforms.\n *\n * If the signature of a `transformer` accepts a third argument, the\n * transformer may perform asynchronous operations, and must call it.\n * @param {Error | undefined} [error]\n * Fatal error to stop the process (optional).\n * @param {Output | undefined} [tree]\n * New, changed, tree (optional).\n * @param {VFile | undefined} [file]\n * New, changed, file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Input=Node]\n * Node type that the transformer expects (default: `Node`).\n * @template {Node} [Output=Input]\n * Node type that the transformer yields (default: `Input`).\n * @callback Transformer\n * Transformers handle syntax trees and files.\n *\n * They are functions that are called each time a syntax tree and file are\n * passed through the run phase.\n * When an error occurs in them (either because it\u2019s thrown, returned,\n * rejected, or passed to `next`), the process stops.\n *\n * The run phase is handled by [`trough`][trough], see its documentation for\n * the exact semantics of these functions.\n *\n * > **Note**: you should likely ignore `next`: don\u2019t accept it.\n * > it supports callback-style async work.\n * > But promises are likely easier to reason about.\n *\n * [trough]: https://github.com/wooorm/trough#function-fninput-next\n * @param {Input} tree\n * Tree to handle.\n * @param {VFile} file\n * File to handle.\n * @param {TransformCallback<Output>} next\n * Callback.\n * @returns {(\n * Promise<Output | undefined | void> |\n * Promise<never> | // For some reason this is needed separately.\n * Output |\n * Error |\n * undefined |\n * void\n * )}\n * If you accept `next`, nothing.\n * Otherwise:\n *\n * * `Error` \u2014 fatal error to stop the process\n * * `Promise<undefined>` or `undefined` \u2014 the next transformer keeps using\n * same tree\n * * `Promise<Node>` or `Node` \u2014 new, changed, tree\n */\n\n/**\n * @template {Node | undefined} ParseTree\n * Output of `parse`.\n * @template {Node | undefined} HeadTree\n * Input for `run`.\n * @template {Node | undefined} TailTree\n * Output for `run`.\n * @template {Node | undefined} CompileTree\n * Input of `stringify`.\n * @template {CompileResults | undefined} CompileResult\n * Output of `stringify`.\n * @template {Node | string | undefined} Input\n * Input of plugin.\n * @template Output\n * Output of plugin (optional).\n * @typedef {(\n * Input extends string\n * ? Output extends Node | undefined\n * ? // Parser.\n * Processor<\n * Output extends undefined ? ParseTree : Output,\n * HeadTree,\n * TailTree,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * : Output extends CompileResults\n * ? Input extends Node | undefined\n * ? // Compiler.\n * Processor<\n * ParseTree,\n * HeadTree,\n * TailTree,\n * Input extends undefined ? CompileTree : Input,\n * Output extends undefined ? CompileResult : Output\n * >\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * : Input extends Node | undefined\n * ? Output extends Node | undefined\n * ? // Transform.\n * Processor<\n * ParseTree,\n * HeadTree extends undefined ? Input : HeadTree,\n * Output extends undefined ? TailTree : Output,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * )} UsePlugin\n * Create a processor based on the input/output of a {@link Plugin plugin}.\n */\n\n/**\n * @template {CompileResults | undefined} Result\n * Node type that the transformer yields.\n * @typedef {(\n * Result extends Value | undefined ?\n * VFile :\n * VFile & {result: Result}\n * )} VFileWithOutput\n * Type to generate a {@linkcode VFile} corresponding to a compiler result.\n *\n * If a result that is not acceptable on a `VFile` is used, that will\n * be stored on the `result` field of {@linkcode VFile}.\n */\n\nimport {bail} from 'bail'\nimport extend from 'extend'\nimport {ok as assert} from 'devlop'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\nimport {CallableInstance} from './callable-instance.js'\n\n// To do: next major: drop `Compiler`, `Parser`: prefer lowercase.\n\n// To do: we could start yielding `never` in TS when a parser is missing and\n// `parse` is called.\n// Currently, we allow directly setting `processor.parser`, which is untyped.\n\nconst own = {}.hasOwnProperty\n\n/**\n * @template {Node | undefined} [ParseTree=undefined]\n * Output of `parse` (optional).\n * @template {Node | undefined} [HeadTree=undefined]\n * Input for `run` (optional).\n * @template {Node | undefined} [TailTree=undefined]\n * Output for `run` (optional).\n * @template {Node | undefined} [CompileTree=undefined]\n * Input of `stringify` (optional).\n * @template {CompileResults | undefined} [CompileResult=undefined]\n * Output of `stringify` (optional).\n * @extends {CallableInstance<[], Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>>}\n */\nexport class Processor extends CallableInstance {\n /**\n * Create a processor.\n */\n constructor() {\n // If `Processor()` is called (w/o new), `copy` is called instead.\n super('copy')\n\n /**\n * Compiler to use (deprecated).\n *\n * @deprecated\n * Use `compiler` instead.\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.Compiler = undefined\n\n /**\n * Parser to use (deprecated).\n *\n * @deprecated\n * Use `parser` instead.\n * @type {(\n * Parser<ParseTree extends undefined ? Node : ParseTree> |\n * undefined\n * )}\n */\n this.Parser = undefined\n\n // Note: the following fields are considered private.\n // However, they are needed for tests, and TSC generates an untyped\n // `private freezeIndex` field for, which trips `type-coverage` up.\n // Instead, we use `@deprecated` to visualize that they shouldn\u2019t be used.\n /**\n * Internal list of configured plugins.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Array<PluginTuple<Array<unknown>>>}\n */\n this.attachers = []\n\n /**\n * Compiler to use.\n *\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.compiler = undefined\n\n /**\n * Internal state to track where we are while freezing.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {number}\n */\n this.freezeIndex = -1\n\n /**\n * Internal state to track whether we\u2019re frozen.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {boolean | undefined}\n */\n this.frozen = undefined\n\n /**\n * Internal state.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Data}\n */\n this.namespace = {}\n\n /**\n * Parser to use.\n *\n * @type {(\n * Parser<ParseTree extends undefined ? Node : ParseTree> |\n * undefined\n * )}\n */\n this.parser = undefined\n\n /**\n * Internal list of configured transformers.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Pipeline}\n */\n this.transformers = trough()\n }\n\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * New *unfrozen* processor ({@linkcode Processor}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\n copy() {\n // Cast as the type parameters will be the same after attaching.\n const destination =\n /** @type {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>} */ (\n new Processor()\n )\n let index = -1\n\n while (++index < this.attachers.length) {\n const attacher = this.attachers[index]\n destination.use(...attacher)\n }\n\n destination.data(extend(true, {}, this.namespace))\n\n return destination\n }\n\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > **Note**: to register custom data in TypeScript, augment the\n * > {@linkcode Data} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */\n data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', this.frozen)\n this.namespace[key] = value\n return this\n }\n\n // Get `key`.\n return (own.call(this.namespace, key) && this.namespace[key]) || undefined\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', this.frozen)\n this.namespace = key\n return this\n }\n\n // Get space.\n return this.namespace\n }\n\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It\u2019s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * The current processor.\n */\n freeze() {\n if (this.frozen) {\n return this\n }\n\n // Cast so that we can type plugins easier.\n // Plugins are supposed to be usable on different processors, not just on\n // this exact processor.\n const self = /** @type {Processor} */ (/** @type {unknown} */ (this))\n\n while (++this.freezeIndex < this.attachers.length) {\n const [attacher, ...options] = this.attachers[this.freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n const transformer = attacher.call(self, ...options)\n\n if (typeof transformer === 'function') {\n this.transformers.use(transformer)\n }\n }\n\n this.frozen = true\n this.freezeIndex = Number.POSITIVE_INFINITY\n\n return this\n }\n\n /**\n * Parse text to a syntax tree.\n *\n * > **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */\n parse(file) {\n this.freeze()\n const realFile = vfile(file)\n const parser = this.parser || this.Parser\n assertParser('parse', parser)\n return parser(String(realFile), realFile)\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * > **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback<VFileWithOutput<CompileResult>>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise<VFileWithOutput<CompileResult>>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback<VFileWithOutput<CompileResult>> | undefined} [done]\n * Callback (optional).\n * @returns {Promise<VFile> | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you\u2019re using a compiler that doesn\u2019t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n process(file, done) {\n const self = this\n\n this.freeze()\n assertParser('process', this.parser || this.Parser)\n assertCompiler('process', this.compiler || this.Compiler)\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {((file: VFileWithOutput<CompileResult>) => undefined | void) | undefined} resolve\n * @param {(error: Error | undefined) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n const realFile = vfile(file)\n // Assume `ParseTree` (the result of the parser) matches `HeadTree` (the\n // input of the first transform).\n const parseTree =\n /** @type {HeadTree extends undefined ? Node : HeadTree} */ (\n /** @type {unknown} */ (self.parse(realFile))\n )\n\n self.run(parseTree, realFile, function (error, tree, file) {\n if (error || !tree || !file) {\n return realDone(error)\n }\n\n // Assume `TailTree` (the output of the last transform) matches\n // `CompileTree` (the input of the compiler).\n const compileTree =\n /** @type {CompileTree extends undefined ? Node : CompileTree} */ (\n /** @type {unknown} */ (tree)\n )\n\n const compileResult = self.stringify(compileTree, file)\n\n if (looksLikeAValue(compileResult)) {\n file.value = compileResult\n } else {\n file.result = compileResult\n }\n\n realDone(error, /** @type {VFileWithOutput<CompileResult>} */ (file))\n })\n\n /**\n * @param {Error | undefined} error\n * @param {VFileWithOutput<CompileResult> | undefined} [file]\n * @returns {undefined}\n */\n function realDone(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, file)\n }\n }\n }\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput<CompileResult>}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you\u2019re using a compiler that doesn\u2019t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n processSync(file) {\n /** @type {boolean} */\n let complete = false\n /** @type {VFileWithOutput<CompileResult> | undefined} */\n let result\n\n this.freeze()\n assertParser('processSync', this.parser || this.Parser)\n assertCompiler('processSync', this.compiler || this.Compiler)\n\n this.process(file, realDone)\n assertDone('processSync', 'process', complete)\n assert(result, 'we either bailed on an error or have a tree')\n\n return result\n\n /**\n * @type {ProcessCallback<VFileWithOutput<CompileResult>>}\n */\n function realDone(error, file) {\n complete = true\n bail(error)\n result = file\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * > **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise<TailTree extends undefined ? Node : TailTree>}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback<TailTree extends undefined ? Node : TailTree> |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} [done]\n * Callback (optional).\n * @returns {Promise<TailTree extends undefined ? Node : TailTree> | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */\n run(tree, file, done) {\n assertNode(tree)\n this.freeze()\n\n const transformers = this.transformers\n\n if (!done && typeof file === 'function') {\n done = file\n file = undefined\n }\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {(\n * ((tree: TailTree extends undefined ? Node : TailTree) => undefined | void) |\n * undefined\n * )} resolve\n * @param {(error: Error) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n assert(\n typeof file !== 'function',\n '`file` can\u2019t be a `done` anymore, we checked'\n )\n const realFile = vfile(file)\n transformers.run(tree, realFile, realDone)\n\n /**\n * @param {Error | undefined} error\n * @param {Node} outputTree\n * @param {VFile} file\n * @returns {undefined}\n */\n function realDone(error, outputTree, file) {\n const resultingTree =\n /** @type {TailTree extends undefined ? Node : TailTree} */ (\n outputTree || tree\n )\n\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(resultingTree)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, resultingTree, file)\n }\n }\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */\n runSync(tree, file) {\n /** @type {boolean} */\n let complete = false\n /** @type {(TailTree extends undefined ? Node : TailTree) | undefined} */\n let result\n\n this.run(tree, file, realDone)\n\n assertDone('runSync', 'run', complete)\n assert(result, 'we either bailed on an error or have a tree')\n return result\n\n /**\n * @type {RunCallback<TailTree extends undefined ? Node : TailTree>}\n */\n function realDone(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * Compile a syntax tree.\n *\n * > **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you\u2019re using a compiler that doesn\u2019t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n stringify(tree, file) {\n this.freeze()\n const realFile = vfile(file)\n const compiler = this.compiler || this.Compiler\n assertCompiler('stringify', compiler)\n assertNode(tree)\n\n return compiler(tree, realFile)\n }\n\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array<unknown>} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {Plugin<Parameters, Input, Output>} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin<ParseTree, HeadTree, TailTree, CompileTree, CompileResult, Input, Output>}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * Current processor.\n */\n use(value, ...parameters) {\n const attachers = this.attachers\n const namespace = this.namespace\n\n assertUnfrozen('use', this.frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, parameters)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n return this\n\n /**\n * @param {Pluggable} value\n * @returns {undefined}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value, [])\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...parameters] =\n /** @type {PluginTuple<Array<unknown>>} */ (value)\n addPlugin(plugin, parameters)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {undefined}\n */\n function addPreset(result) {\n if (!('plugins' in result) && !('settings' in result)) {\n throw new Error(\n 'Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither'\n )\n }\n\n addList(result.plugins)\n\n if (result.settings) {\n namespace.settings = extend(true, namespace.settings, result.settings)\n }\n }\n\n /**\n * @param {PluggableList | null | undefined} plugins\n * @returns {undefined}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {Array<unknown>} parameters\n * @returns {undefined}\n */\n function addPlugin(plugin, parameters) {\n let index = -1\n let entryIndex = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entryIndex = index\n break\n }\n }\n\n if (entryIndex === -1) {\n attachers.push([plugin, ...parameters])\n }\n // Only set if there was at least a `primary` value, otherwise we\u2019d change\n // `arguments.length`.\n else if (parameters.length > 0) {\n let [primary, ...rest] = parameters\n const currentPrimary = attachers[entryIndex][1]\n if (isPlainObj(currentPrimary) && isPlainObj(primary)) {\n primary = extend(true, currentPrimary, primary)\n }\n\n attachers[entryIndex] = [plugin, primary, ...rest]\n }\n }\n }\n}\n\n// Note: this returns a *callable* instance.\n// That\u2019s why it\u2019s documented as a function.\n/**\n * Create a new processor.\n *\n * @example\n * This example shows how a new processor can be created (from `remark`) and linked\n * to **stdin**(4) and **stdout**(4).\n *\n * ```js\n * import process from 'node:process'\n * import concatStream from 'concat-stream'\n * import {remark} from 'remark'\n *\n * process.stdin.pipe(\n * concatStream(function (buf) {\n * process.stdout.write(String(remark().processSync(buf)))\n * })\n * )\n * ```\n *\n * @returns\n * New *unfrozen* processor (`processor`).\n *\n * This processor is configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\nexport const unified = new Processor().freeze()\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is Value}\n */\nfunction looksLikeAValue(value) {\n return typeof value === 'string' || isUint8Array(value)\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n", "export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n", "// To do: remove `void`s\n// To do: remove `null` from output of our APIs, allow it as user APIs.\n\n/**\n * @typedef {(error?: Error | null | undefined, ...output: Array<any>) => void} Callback\n * Callback.\n *\n * @typedef {(...input: Array<any>) => any} Middleware\n * Ware.\n *\n * @typedef Pipeline\n * Pipeline.\n * @property {Run} run\n * Run the pipeline.\n * @property {Use} use\n * Add middleware.\n *\n * @typedef {(...input: Array<any>) => void} Run\n * Call all middleware.\n *\n * Calls `done` on completion with either an error or the output of the\n * last middleware.\n *\n * > \uD83D\uDC49 **Note**: as the length of input defines whether async functions get a\n * > `next` function,\n * > it\u2019s recommended to keep `input` at one value normally.\n\n *\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n * Pipeline.\n */\nexport function trough() {\n /** @type {Array<Middleware>} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we\u2019re done.\n *\n * @param {Error | null | undefined} error\n * @param {Array<any>} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware` into a uniform interface.\n *\n * You can pass all input to the resulting function.\n * `callback` is then called with the output of `middleware`.\n *\n * If `middleware` accepts more arguments than the later given in input,\n * an extra `done` function is passed to it after that input,\n * which must be called by `middleware`.\n *\n * The first value in `input` is the main input value.\n * All other input values are the rest input values.\n * The values given to `callback` are the input values,\n * merged with every non-nullish output value.\n *\n * * if `middleware` throws an error,\n * returns a promise that is rejected,\n * or calls the given `done` function with an error,\n * `callback` is called with that error\n * * if `middleware` returns a value or returns a promise that is resolved,\n * that value is the main output value\n * * if `middleware` calls `done`,\n * all non-nullish values except for the first one (the error) overwrite the\n * output values\n *\n * @param {Middleware} middleware\n * Function to wrap.\n * @param {Callback} callback\n * Callback called with the output of `middleware`.\n * @returns {Run}\n * Wrapped middleware.\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array<any>} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result && result.then && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n *\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n", "// A derivative work based on:\n// <https://github.com/browserify/path-browserify>.\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node\u2019s internal `path` module:\n// <https://github.com/nodejs/node/blob/master/lib/path.js>.\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const minpath = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | null | undefined} [extname]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, extname) {\n if (extname !== undefined && typeof extname !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (\n extname === undefined ||\n extname.length === 0 ||\n extname.length > path.length\n ) {\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (extname === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extnameIndex = extname.length - 1\n\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extnameIndex > -1) {\n // Try to match the explicit extension.\n if (path.codePointAt(index) === extname.codePointAt(extnameIndex--)) {\n if (extnameIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extnameIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.codePointAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.codePointAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.codePointAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array<string>} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.codePointAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.codePointAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number | undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.codePointAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.codePointAt(result.length - 1) !== 46 /* `.` */ ||\n result.codePointAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n", "// Somewhat based on:\n// <https://github.com/defunctzombie/node-process/blob/master/browser.js>.\n// But I don\u2019t think one tiny line of code can be copyrighted. \uD83D\uDE05\nexport const minproc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n", "/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * We check for auth attribute to distinguish legacy url instance with\n * WHATWG URL instance.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it\u2019s a URL.\n */\n// From: <https://github.com/nodejs/node/blob/6a3403c/lib/internal/url.js#L720>\nexport function isUrl(fileUrlOrPath) {\n return Boolean(\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n 'href' in fileUrlOrPath &&\n fileUrlOrPath.href &&\n 'protocol' in fileUrlOrPath &&\n fileUrlOrPath.protocol &&\n // @ts-expect-error: indexing is fine.\n fileUrlOrPath.auth === undefined\n )\n}\n", "import {isUrl} from './minurl.shared.js'\n\nexport {isUrl} from './minurl.shared.js'\n\n// See: <https://github.com/nodejs/node/blob/6a3403c/lib/internal/url.js>\n\n/**\n * @param {URL | string} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.codePointAt(index) === 37 /* `%` */ &&\n pathname.codePointAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.codePointAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n", "/**\n * @import {Node, Point, Position} from 'unist'\n * @import {Options as MessageOptions} from 'vfile-message'\n * @import {Compatible, Data, Map, Options, Value} from 'vfile'\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport {VFileMessage} from 'vfile-message'\nimport {minpath} from '#minpath'\nimport {minproc} from '#minproc'\nimport {urlToPath, isUrl} from '#minurl'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n */\nconst order = /** @type {const} */ ([\n 'history',\n 'path',\n 'basename',\n 'stem',\n 'extname',\n 'dirname'\n])\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` \u2014 `{value: options}`\n * * `URL` \u2014 `{path: options}`\n * * `VFile` \u2014 shallow copies its data over to the new file\n * * `object` \u2014 all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (isUrl(value)) {\n options = {path: value}\n } else if (typeof value === 'string' || isUint8Array(value)) {\n options = {value}\n } else {\n options = value\n }\n\n /* eslint-disable no-unused-expressions */\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n // Prevent calling `cwd` (which could be expensive) if it\u2019s not needed;\n // the empty string will be overridden in the next block.\n this.cwd = 'cwd' in options ? '' : minproc.cwd()\n\n /**\n * Place to store custom info (default: `{}`).\n *\n * It\u2019s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of file paths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array<string>}\n */\n this.history = []\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array<VFileMessage>}\n */\n this.messages = []\n\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are \u201Cwell-known\u201D.\n // As in, used in several tools.\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const field = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n field in options &&\n options[field] !== undefined &&\n options[field] !== null\n ) {\n // @ts-expect-error: TS doesn\u2019t understand basic reality.\n this[field] = field === 'history' ? [...options[field]] : options[field]\n }\n }\n\n /** @type {string} */\n let field\n\n // Set non-path related properties.\n for (field in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(field)) {\n // @ts-expect-error: fine to set other things.\n this[field] = options[field]\n }\n }\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\n */\n get basename() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path)\n : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = minpath.join(this.dirname || '', basename)\n }\n\n /**\n * Get the parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\n */\n get dirname() {\n return typeof this.path === 'string'\n ? minpath.dirname(this.path)\n : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there\u2019s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = minpath.join(dirname || '', this.basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\n */\n get extname() {\n return typeof this.path === 'string'\n ? minpath.extname(this.path)\n : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there\u2019s no `path` yet.\n *\n * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.codePointAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = minpath.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\n */\n get stem() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = minpath.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > \uD83E\uDEA6 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = true\n\n throw message\n }\n\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > \uD83E\uDEA6 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = undefined\n\n return message\n }\n\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > \uD83E\uDEA6 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(causeOrReason, optionsOrParentOrPlace, origin) {\n const message = new VFileMessage(\n // @ts-expect-error: the overloads are fine.\n causeOrReason,\n optionsOrParentOrPlace,\n origin\n )\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > <https://nodejs.org/api/util.html#whatwg-supported-encodings>.\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it\u2019s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n if (this.value === undefined) {\n return ''\n }\n\n if (typeof this.value === 'string') {\n return this.value\n }\n\n const decoder = new TextDecoder(encoding || undefined)\n return decoder.decode(this.value)\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {undefined}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(minpath.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + minpath.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n", "export const CallableInstance =\n /**\n * @type {new <Parameters extends Array<unknown>, Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n */\n (\n /** @type {unknown} */\n (\n /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array<unknown>) => unknown}\n */\n function (property) {\n const self = this\n const constr = self.constructor\n const proto = /** @type {Record<string | symbol, Function>} */ (\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n constr.prototype\n )\n const value = proto[property]\n /** @type {(...parameters: Array<unknown>) => unknown} */\n const apply = function () {\n return value.apply(apply, arguments)\n }\n\n Object.setPrototypeOf(apply, proto)\n\n // Not needed for us in `unified`: we only call this on the `copy`\n // function,\n // and we don't need to add its fields (`length`, `name`)\n // over.\n // See also: GH-246.\n // const names = Object.getOwnPropertyNames(value)\n //\n // for (const p of names) {\n // const descriptor = Object.getOwnPropertyDescriptor(value, p)\n // if (descriptor) Object.defineProperty(apply, p, descriptor)\n // }\n\n return apply\n }\n )\n )\n", "import React from 'react'\nimport * as S from './styles'\nimport { useChatbotTexts } from 'hooks/useChatbotTexts'\nimport { useChatbot } from 'contexts/Chatbot/useChatbot'\n\nexport const WritingIndicator = () => {\n const texts = useChatbotTexts()\n const { locale } = useChatbot()\n\n return (\n <S.Wrapper>\n <S.Label>{texts.CHATBOT_NAME}</S.Label>\n <S.Balloon>\n <S.Text>{texts.WRITING_MESSAGE}</S.Text>\n <S.Dots>\n <S.Dot $delay={0} />\n <S.Dot $delay={0.2} />\n <S.Dot $delay={0.4} />\n </S.Dots>\n </S.Balloon>\n </S.Wrapper>\n )\n}\n\nexport default WritingIndicator\n", "import { css, keyframes, styled } from 'styled-components'\n\nconst dotAnimation = keyframes`\n 0%, 20% {\n opacity: 0;\n transform: scale(0.8);\n }\n 50% {\n opacity: 1;\n transform: scale(1);\n }\n 80%, 100% {\n opacity: 0.3;\n transform: scale(0.8);\n }\n`\n\nexport const Dots = styled.span`\n display: inline-flex;\n gap: 4px;\n align-items: center;\n margin-left: 4px;\n`\n\nexport const Dot = styled.span<{ $delay: number }>`\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: currentColor;\n animation: ${dotAnimation} 1.4s ease-in-out infinite;\n animation-delay: ${props => props.$delay}s;\n`\n\nexport const Text = styled.span`\n display: inline-block;\n`\n\nexport const Balloon = styled.div`\n padding: ${props => props.theme.spacing.components.small};\n width: max-content;\n max-width: 100%;\n border-radius: ${props => props.theme.borderRadius.medium};\n border-top-left-radius: 0;\n position: relative;\n line-height: 1.5em;\n display: flex;\n align-items: center;\n background: ${props => props.theme.colors.layers[2].background};\n color: ${props => props.theme.colors.content.text};\n font-family: 'Montserrat', sans-serif !important;\n font-weight: 600 !important;\n\n * {\n font-family: 'Montserrat', sans-serif !important;\n font-weight: 600 !important;\n }\n\n &::after {\n position: absolute;\n content: '';\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 0px 10px 10px 0;\n border-color: transparent\n ${props => props.theme.colors.layers[2].background} transparent\n transparent;\n top: 0;\n left: -10px;\n }\n`\n\nexport const Label = styled.span`\n font-size: ${props => props.theme.fontSizes.small};\n font-family: 'Montserrat', sans-serif !important;\n font-weight: 600 !important;\n`\n\nexport const Wrapper = styled.div`\n font-size: ${props => props.theme.fontSizes.small};\n display: flex;\n flex-direction: column;\n gap: ${props => props.theme.spacing.components.xsmall};\n font-family: 'Montserrat', sans-serif !important;\n font-weight: 600 !important;\n\n * {\n font-family: 'Montserrat', sans-serif !important;\n font-weight: 600 !important;\n }\n`\n", "import { useEffect, useState, useRef, RefObject } from 'react'\n\nexport const useElementScroll = (elementRef: RefObject<HTMLDivElement>) => {\n const [scrollProgress, setScrollProgress] = useState(0)\n\n const calculateScrollPercentage = () => {\n if (!elementRef.current) return\n\n const element = elementRef.current\n const elementHeight = element.clientHeight\n const elementScrollHeight = element.scrollHeight\n const scrollTop = element.scrollTop\n\n const scrollableHeight = elementScrollHeight - elementHeight\n const scrolled = (scrollTop / scrollableHeight) * 100\n\n const progressValue = Math.min(100, Math.max(0, scrolled))\n\n setScrollProgress(isNaN(progressValue) ? 100 : progressValue)\n }\n\n useEffect(() => {\n if (!elementRef.current) return\n\n const handleIntersection = () => {\n calculateScrollPercentage()\n }\n\n const handleScroll = () => {\n calculateScrollPercentage()\n }\n\n const element = elementRef.current\n\n element.addEventListener('scroll', handleScroll)\n\n const intersectionObserver = new IntersectionObserver(() => {\n handleIntersection()\n })\n\n intersectionObserver.observe(element)\n\n calculateScrollPercentage()\n\n return () => {\n if (!elementRef.current) return\n\n elementRef.current.removeEventListener('scroll', handleScroll)\n intersectionObserver.disconnect()\n }\n }, [elementRef])\n\n const scrollToTop = () => {\n elementRef.current?.scrollTo({ top: elementRef.current.scrollHeight })\n }\n\n const scrollToEnd = () => {\n elementRef.current?.scrollTo(0, elementRef.current.scrollHeight)\n }\n\n return {\n scrollProgress,\n scrollToTop,\n scrollToEnd,\n }\n}\n\nexport default useElementScroll\n", "import { useEffect, useState } from 'react'\n\nexport type UseUpdatedTimeOptions = {\n intervalInSeconds: number\n}\n\nexport const useUpdatedTime = ({\n intervalInSeconds,\n}: UseUpdatedTimeOptions) => {\n const [date, setDate] = useState<Date>(new Date())\n\n useEffect(() => {\n const time = 1000 * intervalInSeconds // 15 seconds\n\n const interval = setInterval(() => {\n const now = new Date()\n setDate(now)\n }, time)\n\n return () => clearInterval(interval)\n }, [])\n\n return {\n dateUTC: date.toUTCString(),\n }\n}\n", "import React from 'react'\nimport * as S from './styles'\nimport { useChatbotTexts } from 'hooks/useChatbotTexts'\nimport useChatbot from 'contexts/Chatbot/useChatbot'\nimport { Button, Menu } from '@ibti-tech/ui'\n\nexport type SuggestedQuestionsProps = {}\n\nexport const SuggestedQuestions = ({ }: SuggestedQuestionsProps) => {\n const texts = useChatbotTexts()\n const { suggestedQuestions, makeQuestion } = useChatbot()\n\n if (suggestedQuestions.data.length === 0) return\n\n return (\n <S.Wrapper>\n <S.Title>{texts.SUGGESTED_QUESTIONS.TITLE}</S.Title>\n <S.QuestionList>\n {suggestedQuestions.data.map(question => (\n <S.QuestionListItem key={question}>\n <S.QuestionButton\n label={question}\n size=\"small\"\n variant=\"layerBased\"\n layer={2}\n onClick={() => {\n makeQuestion(question)\n }}\n fillWidth\n shape=\"rounded\"\n />\n </S.QuestionListItem>\n ))}\n </S.QuestionList>\n </S.Wrapper>\n )\n}\n\nexport default SuggestedQuestions\n", "import { Button } from '@ibti-tech/ui'\nimport { styled } from 'styled-components'\n\nexport const QuestionButton = styled(Button)`\n text-align: left;\n justify-content: flex-start;\n height: auto;\n padding: ${props => props.theme.spacing.components.small};\n font-family: 'Montserrat', sans-serif !important;\n font-weight: 600 !important;\n\n * {\n font-family: 'Montserrat', sans-serif !important;\n font-weight: 600 !important;\n }\n`\n\nexport const QuestionListItem = styled.li``\n\nexport const QuestionList = styled.ul`\n display: flex;\n flex-direction: column;\n gap: ${props => props.theme.spacing.components.small};\n`\n\nexport const Title = styled.span`\n display: block;\n font-size: ${props => props.theme.fontSizes.small};\n font-weight: 700;\n margin-bottom: ${props => props.theme.spacing.components.medium};\n /* text-align: center; */\n`\n\nexport const Wrapper = styled.div`\n padding: ${props => props.theme.spacing.components.medium};\n width: 100%;\n min-width: 0;\n box-sizing: border-box;\n font-family: 'Montserrat', sans-serif !important;\n font-weight: 600 !important;\n\n * {\n font-family: 'Montserrat', sans-serif !important;\n }\n\n *:not(b):not(strong):not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {\n font-weight: 600 !important;\n }\n`\n", "import React, { useState, useRef, useEffect } from 'react'\nimport * as S from './styles'\nimport useChatbot from 'contexts/Chatbot/useChatbot'\nimport {\n ArrowRightIcon,\n ArrowUpIcon,\n Button,\n IconButton,\n Spinner,\n TextArea,\n TextInput,\n} from '@ibti-tech/ui'\nimport { useChatbotTexts } from 'hooks/useChatbotTexts'\n\nexport type ChatbotFooterProps = {}\n\nexport const ChatbotFooter = ({ }: ChatbotFooterProps) => {\n const { makeQuestion, loading, writing, suggestedQuestions } = useChatbot()\n const [questionInput, setQuestionInput] = useState('')\n const wrapperRef = useRef<HTMLDivElement>(null)\n const texts = useChatbotTexts()\n\n const handleSubmit: React.FormEventHandler<HTMLFormElement> = async e => {\n e.preventDefault()\n\n if (!questionInput.trim() || loading || writing) {\n return\n }\n\n const questionToSend = questionInput.trim()\n setQuestionInput('')\n await makeQuestion(questionToSend)\n }\n\n // Auto-resize textarea and add Enter key handler\n useEffect(() => {\n const textarea = wrapperRef.current?.querySelector(\n '.textareaField textarea',\n ) as HTMLTextAreaElement\n if (textarea) {\n // Auto-resize\n textarea.style.height = 'auto'\n textarea.style.height = `${textarea.scrollHeight}px`\n\n // Handle Enter key for submit\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault()\n if (questionInput.trim() && !loading && !writing) {\n const form = textarea.closest('form')\n if (form) {\n form.requestSubmit()\n }\n }\n }\n }\n\n textarea.addEventListener('keydown', handleKeyDown)\n\n return () => {\n textarea.removeEventListener('keydown', handleKeyDown)\n }\n }\n }, [questionInput, loading, writing])\n\n return (\n <S.Wrapper data-testid=\"chatbot-footer\" ref={wrapperRef}>\n {suggestedQuestions.loading && (\n <S.LoadingSuggestedQuestions>\n <Spinner size=\"extra-small\" />\n {texts.SUGGESTED_QUESTIONS.LOADING}\n </S.LoadingSuggestedQuestions>\n )}\n <S.Form onSubmit={handleSubmit}>\n <TextArea\n fillWidth\n disabled={loading || writing}\n value={questionInput}\n onChange={e => setQuestionInput(e.target.value)}\n placeholder={texts.INPUT_PLACEHOLDER}\n className=\"textareaField\"\n rows={1}\n layer={2}\n />\n <IconButton\n icon={ArrowUpIcon}\n loading={loading}\n disabled={loading || writing || !questionInput.trim()}\n type=\"submit\"\n />\n </S.Form>\n </S.Wrapper>\n )\n}\n\nexport default ChatbotFooter\n", "import { styled } from 'styled-components'\n\nexport const LoadingSuggestedQuestions = styled.span`\n display: flex;\n align-items: center;\n gap: ${props => props.theme.spacing.components.small};\n font-size: ${props => props.theme.fontSizes.small};\n font-weight: 600 !important;\n padding: ${props => props.theme.spacing.components.small}\n ${props => props.theme.spacing.components.medium};\n`\n\nexport const Form = styled.form`\n display: flex;\n align-items: flex-end;\n gap: ${props => props.theme.spacing.components.small};\n width: 100%;\n min-width: 0;\n\n /* Remove border from submit button */\n button[type='submit'] {\n border: none !important;\n outline: none !important;\n box-shadow: none !important;\n flex-shrink: 0 !important;\n }\n\n /* Chatbot textarea styles */\n .textareaField {\n font-family: 'Montserrat', sans-serif !important;\n flex: 1 !important;\n min-width: 0 !important;\n\n &,\n *,\n textarea {\n font-size: ${props => props.theme.fontSizes.medium} !important;\n font-family: 'Montserrat', sans-serif !important;\n font-weight: 600 !important;\n }\n\n textarea {\n border-radius: ${props => props.theme.borderRadius.medium} !important;\n border: 1px solid ${props => props.theme.colors.layers[2].border} !important;\n padding: ${props => props.theme.spacing.components.small}\n ${props => props.theme.spacing.components.medium} !important;\n min-height: 40px !important;\n max-height: 200px !important;\n resize: none !important;\n line-height: 1.5 !important;\n width: 100% !important;\n box-sizing: border-box !important;\n font-family: 'Montserrat', sans-serif !important;\n font-weight: 600 !important;\n overflow-y: auto !important;\n overflow-x: hidden !important;\n\n /* Custom scrollbar styles */\n &::-webkit-scrollbar {\n width: 8px;\n }\n\n &::-webkit-scrollbar-track {\n background: transparent;\n }\n\n &::-webkit-scrollbar-thumb {\n background: ${props => props.theme.colors.palette.primary.normal} !important;\n border-radius: 4px;\n }\n\n &::-webkit-scrollbar-thumb:hover {\n opacity: 0.8;\n }\n\n /* Firefox */\n scrollbar-width: thin !important;\n scrollbar-color: ${props => props.theme.colors.palette.primary.normal} transparent !important;\n\n &:focus {\n outline: none !important;\n border-color: ${props => props.theme.colors.palette.primary.normal} !important;\n }\n\n &::placeholder {\n color: ${props => props.theme.colors.content.detail} !important;\n font-size: ${props => props.theme.fontSizes.medium} !important;\n font-family: 'Montserrat', sans-serif !important;\n font-weight: 600 !important;\n }\n }\n\n &:focus-within textarea {\n outline: none !important;\n border-color: ${props => props.theme.colors.palette.primary.normal} !important;\n }\n }\n`\n\nexport const Wrapper = styled.div`\n padding: ${props => props.theme.spacing.components.small};\n width: 100%;\n min-width: 0;\n box-sizing: border-box;\n font-family: 'Montserrat', sans-serif !important;\n font-weight: 600 !important;\n\n * {\n font-family: 'Montserrat', sans-serif !important;\n }\n\n *:not(b):not(strong):not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {\n font-weight: 600 !important;\n }\n`\n", "import { breakpoints, screens } from '@ibti-tech/ui'\nimport { css, styled } from 'styled-components'\n\nexport const ButtonWrapper = styled.button<{\n $opened: boolean\n $verticalPosition: 'top' | 'bottom'\n $pushContentDown?: boolean\n $themeMode?: 'light' | 'dark'\n $barHeight?: number\n}>`\n height: ${p => p.$barHeight ?? 32}px !important;\n min-height: ${p => p.$barHeight ?? 32}px !important;\n max-height: ${p => p.$barHeight ?? 32}px !important;\n width: 100% !important;\n min-width: 100% !important;\n max-width: 100% !important;\n background: transparent;\n color: ${props => props.theme.colors.palette.primary.normal};\n padding: ${props => props.theme.spacing.components.small};\n font-size: ${props => props.theme.fontSizes.small};\n font-family: 'Montserrat', sans-serif !important;\n font-weight: 700 !important;\n\n * {\n font-family: 'Montserrat', sans-serif !important;\n font-weight: 700 !important;\n }\n display: flex;\n align-items: center;\n justify-content: center;\n gap: ${props => props.theme.spacing.components.small};\n border-radius: ${props => props.theme.borderRadius.medium};\n border: none !important;\n outline: none !important;\n box-shadow: none !important;\n flex-shrink: 0 !important;\n box-sizing: border-box;\n\n ${props =>\n !props.$opened &&\n props.$verticalPosition === 'bottom' &&\n css`\n background-color: ${props.theme.colors.layers[1].background};\n cursor: pointer;\n min-height: ${props.$barHeight ?? 32}px;\n height: ${props.$barHeight ?? 32}px;\n width: 100%;\n flex-shrink: 0;\n box-sizing: border-box;\n border-radius: ${props => props.theme.borderRadius.medium} ${props => props.theme.borderRadius.medium} 0 0;\n `}\n\n ${props =>\n !props.$opened &&\n props.$verticalPosition === 'top' &&\n props.$pushContentDown &&\n css`\n background-color: ${props.theme.colors.layers[1].background};\n cursor: pointer;\n border-radius: ${props => props.theme.borderRadius.medium};\n box-shadow: ${props.$themeMode === 'dark'\n ? '0 2px 8px rgba(0,0,0,0.35), 0 0 0 1px rgba(255,255,255,0.08)'\n : '0 2px 8px rgba(0,0,0,0.12), 0 0 0 1px rgba(0,0,0,0.06)'};\n pointer-events: auto;\n color: ${props => props.theme.colors.palette.primary.normal};\n &:hover {\n background-color: ${props => props.theme.colors.layers[1].hoveredBackground};\n color: ${props => props.theme.colors.palette.primary.normal};\n }\n `}\n\n ${screens.tablet} {\n transition: ${props => props.theme.transitionDurations.default};\n\n &:hover {\n background-color: ${props =>\n props.theme.colors.layers[1].hoveredBackground};\n cursor: pointer;\n }\n }\n`\n", "import { BotIcon } from 'components/BotIcon'\nimport * as S from './styles'\nimport useChatbot from 'contexts/Chatbot/useChatbot'\nimport React from 'react'\nimport { useChatbotTexts } from 'hooks/useChatbotTexts'\nimport { ChevronDownIcon, ChevronUpIcon } from '@ibti-tech/ui/dist/icons'\n\nexport type ChatbotToggleProps = {\n verticalPosition?: 'top' | 'bottom'\n opened?: boolean\n pushContentDown?: boolean\n /** Height in px of the bar when closed (pushContentDown or bottom). Default: 32. */\n pushContentDownBarHeight?: number\n}\n\nconst DEFAULT_BAR_HEIGHT = 32\n\nexport const ChatbotToggle = ({\n verticalPosition = 'bottom',\n opened: openedProp,\n pushContentDown = false,\n pushContentDownBarHeight = DEFAULT_BAR_HEIGHT,\n}: ChatbotToggleProps) => {\n const { opened: openedContext, openedToggle, theme: themeMode } = useChatbot()\n const opened = openedProp ?? openedContext\n const texts = useChatbotTexts()\n\n const toggleText = (\n opened ? texts.CHATBOT_BAR.CLOSE : texts.CHATBOT_BAR.OPEN\n ).replace('{{CHATBOT_NAME}}', texts.CHATBOT_NAME)\n\n // Chevron indicates the direction the chatbot will move when toggled\n // If positioned at top: when closed shows down arrow, when opened shows up arrow\n // If positioned at bottom: when closed shows up arrow, when opened shows down arrow\n const Chevron =\n verticalPosition === 'top'\n ? opened\n ? ChevronUpIcon // top + opened: shows up arrow\n : ChevronDownIcon // top + closed: shows down arrow\n : opened\n ? ChevronDownIcon // bottom + opened: shows down arrow\n : ChevronUpIcon // bottom + closed: shows up arrow\n\n return (\n <S.ButtonWrapper\n onClick={openedToggle}\n $opened={opened}\n $verticalPosition={verticalPosition}\n $pushContentDown={pushContentDown}\n $themeMode={themeMode}\n $barHeight={pushContentDownBarHeight}\n >\n <BotIcon />\n <span>{toggleText}</span>\n <Chevron />\n </S.ButtonWrapper>\n )\n}\n\nexport default ChatbotToggle\n", "import React, { FormEventHandler, useState } from 'react'\nimport { Button, RatingStars, TextArea } from '@ibti-tech/ui'\nimport * as S from './styles'\nimport { useChatbotTexts } from 'hooks/useChatbotTexts'\nimport { useChatFeedbackBox } from 'contexts/Chatbot/useChatFeedbackBox'\nimport useChatbot from 'contexts/Chatbot/useChatbot'\nimport { CHATBOT_VERSION } from '../../version'\n\nexport type ChatUserFeedbackRatingProps = {\n chatFeedbackBox: ReturnType<typeof useChatFeedbackBox>\n}\n\nexport const ChatUserFeedbackRating = ({\n chatFeedbackBox,\n}: ChatUserFeedbackRatingProps) => {\n const chatbot = useChatbot()\n const [ratingValue, setRatingValue] = useState(5)\n const [descriptionValue, setDescriptionValue] = useState('')\n const texts = useChatbotTexts()\n\n const handleSubmit: FormEventHandler<HTMLFormElement> = e => {\n e.preventDefault()\n\n chatFeedbackBox.sendUserRating({\n description: descriptionValue,\n ratingScore: ratingValue,\n })\n }\n\n return (\n <S.Wrapper $opened={chatFeedbackBox.opened && chatbot.opened}>\n <S.Box>\n <S.Title>{texts.CHAT_FEEDBACK.TITLE}</S.Title>\n <S.Description>{texts.CHAT_FEEDBACK.DESCRIPTION}</S.Description>\n <S.Form onSubmit={handleSubmit}>\n <RatingStars\n value={ratingValue}\n setValue={setRatingValue}\n layer={2}\n />\n <TextArea\n layer={2}\n placeholder={texts.CHAT_FEEDBACK.MESSAGE_FIELD}\n fillWidth\n value={descriptionValue}\n onChange={e => setDescriptionValue(e.target.value)}\n className=\"feedbackTextarea\"\n />\n <S.ActionRow>\n {CHATBOT_VERSION ? (\n <S.VersionLabel>v{CHATBOT_VERSION}</S.VersionLabel>\n ) : null}\n <S.ActionButtons>\n <Button\n onClick={chatFeedbackBox.close}\n label={texts.CHAT_FEEDBACK.CLOSE_BUTTON}\n size=\"small\"\n variant=\"layerBased\"\n />\n <Button\n type=\"submit\"\n label={texts.CHAT_FEEDBACK.SUBMIT_BUTTON}\n size=\"small\"\n loading={chatFeedbackBox.loading}\n />\n </S.ActionButtons>\n </S.ActionRow>\n </S.Form>\n </S.Box>\n </S.Wrapper>\n )\n}\n", "import { CardBase } from '@ibti-tech/ui'\nimport { css, styled } from 'styled-components'\n\nexport const ActionRow = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: ${props => props.theme.spacing.components.small};\n width: 100%;\n`\n\nexport const VersionLabel = styled.span`\n font-size: ${props => props.theme.fontSizes.small};\n color: ${props => props.theme.colors.content.detail};\n font-weight: 500;\n`\n\nexport const ActionButtons = styled.div`\n display: flex;\n justify-content: flex-end;\n gap: ${props => props.theme.spacing.components.small};\n margin-left: auto;\n\n /* Remove border from submit button */\n button[type='submit'] {\n border: none !important;\n outline: none !important;\n box-shadow: none !important;\n }\n`\n\nexport const Form = styled.form`\n display: flex;\n flex-direction: column;\n gap: ${props => props.theme.spacing.components.medium};\n\n /* Feedback textarea styles */\n .feedbackTextarea {\n font-family: 'Montserrat', sans-serif !important;\n\n &,\n *,\n textarea {\n font-size: ${props => props.theme.fontSizes.medium} !important;\n font-family: 'Montserrat', sans-serif !important;\n font-weight: 600 !important;\n }\n\n textarea {\n border-radius: ${props => props.theme.borderRadius.medium} !important;\n border: 1px solid ${props => props.theme.colors.layers[2].border} !important;\n padding: ${props => props.theme.spacing.components.small}\n ${props => props.theme.spacing.components.medium} !important;\n min-height: 40px !important;\n resize: none !important;\n line-height: 1.5 !important;\n width: 100% !important;\n box-sizing: border-box !important;\n font-family: 'Montserrat', sans-serif !important;\n font-weight: 600 !important;\n color: ${props => props.theme.colors.content.text} !important;\n background-color: ${props => props.theme.colors.layers[2].background} !important;\n\n &:focus {\n outline: none !important;\n border-color: ${props => props.theme.colors.palette.primary.normal} !important;\n }\n\n &::placeholder {\n color: ${props => props.theme.colors.content.detail} !important;\n font-size: ${props => props.theme.fontSizes.medium} !important;\n font-family: 'Montserrat', sans-serif !important;\n font-weight: 600 !important;\n }\n }\n\n &:focus-within textarea {\n outline: none !important;\n border-color: ${props => props.theme.colors.palette.primary.normal} !important;\n }\n }\n`\n\nexport const Description = styled.div`\n font-size: ${props => props.theme.fontSizes.small};\n color: ${props => props.theme.colors.content.text};\n margin-bottom: ${props => props.theme.spacing.components.medium};\n font-weight: 600 !important;\n`\n\nexport const Title = styled.span`\n display: block;\n font-weight: 700;\n color: ${props => props.theme.colors.content.text};\n margin-bottom: ${props => props.theme.spacing.components.small};\n`\n\nexport const Box = styled(CardBase)`\n width: 100%;\n max-width: 100%;\n height: max-content;\n max-height: 100%;\n min-height: 0;\n overflow-y: auto;\n padding: ${props => props.theme.spacing.components.medium};\n transition: ${props => props.theme.transitionDurations.default};\n font-family: 'Montserrat', sans-serif !important;\n font-weight: 600 !important;\n box-sizing: border-box;\n\n * {\n font-family: 'Montserrat', sans-serif !important;\n }\n\n *:not(b):not(strong):not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {\n font-weight: 600 !important;\n }\n`\n\nexport const Wrapper = styled.div<{ $opened: boolean }>`\n position: absolute;\n z-index: 1;\n left: 0;\n top: 0;\n height: 100%;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: ${props => props.theme.spacing.components.medium};\n box-sizing: border-box;\n overflow: auto;\n transition: ${props => props.theme.transitionDurations.default};\n\n ${props =>\n props.$opened\n ? css`\n background-color: rgba(0, 0, 0, 0.15);\n backdrop-filter: blur(3px);\n opacity: 1;\n `\n : css`\n pointer-events: none;\n opacity: 0;\n\n ${Box} {\n transform: scale(0.9);\n }\n `}\n`\n", "{\n \"name\": \"@ibti-tech/chatbot\",\n \"version\": \"0.9.1\",\n \"description\": \"Chatbot system developed to be embedded in any website\",\n \"packageManager\": \"yarn@3.6.4\",\n \"main\": \"./dist/index.mjs\",\n \"types\": \"./dist/index.d.ts\",\n \"files\": [\n \"dist/**/*\"\n ],\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"scripts\": {\n \"dev\": \"node ./build.config.mjs --watch\",\n \"build\": \"node ./build.config.mjs\",\n \"build:embed\": \"node ./build-embed.config.mjs\",\n \"build:all\": \"node ./build.config.mjs && node ./build-embed.config.mjs\",\n \"test\": \"vitest\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/ibti-solutions/ibti-chatbot.git\"\n },\n \"keywords\": [\n \"chatbot\",\n \"openai\",\n \"chat-gpt\",\n \"ibti\"\n ],\n \"author\": \"IBTI Solu\u00E7\u00F5es em TI\",\n \"license\": \"ISC\",\n \"bugs\": {\n \"url\": \"https://github.com/ibti-solutions/ibti-chatbot/issues\"\n },\n \"homepage\": \"https://github.com/ibti-solutions/ibti-chatbot#readme\",\n \"dependencies\": {\n \"@types/node\": \"^20.13.0\",\n \"date-fns\": \"^3.6.0\",\n \"lucide-react\": \"^0.263.1\",\n \"polished\": \"^4.3.1\",\n \"react-markdown\": \"^9.0.1\",\n \"uuid\": \"^9.0.1\"\n },\n \"devDependencies\": {\n \"@ibti-tech/prettier-config\": \"^0.1.6\",\n \"@ibti-tech/tsconfig\": \"^0.0.3\",\n \"@ibti-tech/ui\": \"^0.16.4\",\n \"@testing-library/react\": \"^15.0.7\",\n \"@types/react\": \"^18.3.2\",\n \"@types/uuid\": \"^9.0.8\",\n \"esbuild\": \"0.21.3\",\n \"esbuild-node-externals\": \"^1.13.1\",\n \"esbuild-plugin-clean\": \"^1.0.1\",\n \"esbuild-plugin-external-global\": \"^1.0.1\",\n \"jsdom\": \"^24.0.0\",\n \"lodash\": \"^4.17.21\",\n \"nookies\": \"^2.5.2\",\n \"npm-dts\": \"^1.3.12\",\n \"prettier\": \"3.2.5\",\n \"react\": \"18.2.0\",\n \"react-dom\": \"^18.2.0\",\n \"styled-components\": \"^6.1.11\",\n \"ts-node\": \"^10.9.2\",\n \"typescript\": \"^5.4.5\",\n \"vitest\": \"^1.6.0\"\n },\n \"peerDependencies\": {\n \"lodash\": \"^4.17.21\",\n \"nookies\": \"^2.5.2\",\n \"react\": \"18.2.0\",\n \"react-dom\": \"^18.2.0\"\n }\n}\n", "/** Version from package.json (same package as this frontend). */\nimport pkg from '../package.json'\n\nexport const CHATBOT_VERSION = (pkg as { version?: string }).version ?? ''\n", "import { useState } from 'react'\nimport useChatbot from './useChatbot'\nimport { sendUserChatFeedback } from 'services'\n\n/** Parameters for sendUserRating from useChatFeedbackBox. */\ntype SendUserRatingProps = {\n /** Rating value (e.g. 1\u20135). */\n ratingScore: number\n /** Optional free-text feedback. */\n description: string\n}\n\n/**\n * Hook for the feedback modal: open/close and send rating.\n * Uses useChatbot() for apiURL, locale, publicHash, visitorId.\n *\n * @returns { opened, open, close, sendUserRating, loading } \u2014 loading true while submit in progress\n */\nexport const useChatFeedbackBox = () => {\n const { apiURL, locale, publicHash, visitorId } = useChatbot()\n const [rated, setRated] = useState(false)\n const [opened, setOpened] = useState(false)\n const [loading, setLoading] = useState(false)\n\n const open = () => {\n setOpened(true)\n }\n\n const close = () => {\n setOpened(false)\n setRated(true)\n }\n\n const sendUserRating = async ({\n ratingScore,\n description,\n }: SendUserRatingProps) => {\n try {\n setLoading(true)\n await sendUserChatFeedback({\n apiURL,\n publicHash,\n visitorId,\n locale,\n ratingScore,\n description,\n })\n } finally {\n setLoading(false)\n setRated(true)\n setOpened(false)\n }\n }\n\n return {\n opened,\n open,\n close,\n sendUserRating,\n loading,\n }\n}\n", "import { breakpoints, screens } from '@ibti-tech/ui'\nimport { Container } from '@ibti-tech/ui/dist/components/Container'\nimport { css, styled } from 'styled-components'\n\nexport const BarContainer = styled(Container) <{\n $horizontalPosition: 'left' | 'right'\n $deviceHorizontalPosition?: 'left' | 'right' | 'center' | string\n $opened: boolean\n $verticalPosition: 'top' | 'bottom'\n $pushContentDown?: boolean\n}>`\n font-family: 'Montserrat', sans-serif !important;\n font-weight: 600 !important;\n\n * {\n font-family: 'Montserrat', sans-serif !important;\n }\n\n *:not(b):not(strong):not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {\n font-weight: 600 !important;\n }\n\n @media screen and (max-width: ${breakpoints.tablet}px) {\n padding: 0;\n ${props => props.$opened && props.$verticalPosition === 'top' && css`\n width: 100% !important;\n max-width: 100% !important;\n `}\n /* pushContentDown + top closed, mobile: Wrapper full width \u2192 keep margin for lateral position */\n ${props =>\n props.$pushContentDown && props.$verticalPosition === 'top' && !props.$opened\n ? css`\n width: ${breakpoints.mobileL}px !important;\n max-width: ${breakpoints.mobileL}px !important;\n min-width: ${breakpoints.mobileL}px !important;\n position: relative;\n z-index: 1;\n padding-left: 0;\n padding-right: 0;\n ${props.$horizontalPosition === 'right'\n ? css`margin-left: auto !important; margin-right: 2.5rem !important;`\n : css`margin-left: 2.5rem !important; margin-right: auto !important;`}\n `\n : ''}\n }\n\n ${screens.tablet} {\n display: flex;\n justify-content: ${props => {\n const pos = props.$deviceHorizontalPosition ?? props.$horizontalPosition\n if (pos === 'center') return 'center'\n if (pos === 'right') return 'flex-end'\n if (pos === 'left') return 'flex-start'\n if (typeof pos === 'string') return 'flex-start'\n return props.$horizontalPosition === 'right' ? 'flex-end' : 'flex-start'\n }};\n \n ${props =>\n !props.$opened && props.$verticalPosition === 'bottom' && !props.$pushContentDown\n ? css`\n width: ${breakpoints.mobileL}px;\n max-width: ${breakpoints.mobileL}px;\n min-width: ${breakpoints.mobileL}px;\n padding-left: 0;\n padding-right: 0;\n `\n : ''}\n \n /* pushContentDown + top closed: mobileL bar + 2.5rem lateral margin */\n ${props =>\n props.$pushContentDown && props.$verticalPosition === 'top' && !props.$opened\n ? css`\n width: ${breakpoints.mobileL}px;\n max-width: ${breakpoints.mobileL}px;\n min-width: ${breakpoints.mobileL}px;\n padding-left: 0;\n padding-right: 0;\n position: relative;\n z-index: 1;\n ${props.$horizontalPosition === 'right'\n ? css`margin-left: auto; margin-right: 2.5rem;`\n : css`margin-left: 2.5rem; margin-right: auto;`}\n `\n : ''}\n }\n`\n\n/** Full-width row strip (pushContentDown + top). Background only; device sits on top with theme styles. */\nexport const PushDownRow = styled.div<{ $background: string; $barHeight: number }>`\n position: absolute;\n inset: 0;\n width: 100%;\n height: ${p => p.$barHeight}px;\n min-height: ${p => p.$barHeight}px;\n background-color: ${p => p.$background};\n z-index: 0;\n pointer-events: none;\n`\n\nexport const Wrapper = styled.div<{\n $verticalPosition: 'top' | 'bottom'\n $horizontalPosition: 'left' | 'right'\n $opened: boolean\n $zIndex?: number\n $topOffset?: string | number\n $aboveHeader?: boolean\n $pushContentDown?: boolean\n $pushContentDownBarHeight?: number\n}>`\n ${props => {\n // When pushContentDown is true and positioned at top:\n // Row background via PushDownRow (closed). Wrapper is fixed; no in-flow spacer to avoid page scroll.\n const barH = props.$pushContentDownBarHeight ?? 32\n const topVal =\n props.$topOffset !== undefined\n ? typeof props.$topOffset === 'number'\n ? `${props.$topOffset}px`\n : props.$topOffset\n : '0'\n if (props.$pushContentDown && props.$verticalPosition === 'top') {\n if (props.$opened) {\n return css`\n position: fixed !important;\n width: 100%;\n top: ${topVal} !important;\n bottom: auto !important;\n left: 0 !important;\n right: 0 !important;\n z-index: ${props.$zIndex !== undefined ? props.$zIndex : props.theme.zIndex.modals};\n pointer-events: auto;\n padding-top: ${props.$topOffset !== undefined ? 0 : props.theme.spacing.components.xsmall};\n background-color: transparent;\n ${screens.tablet} {\n width: auto !important;\n height: auto !important;\n min-height: auto !important;\n background-color: transparent;\n border: none;\n padding: 0;\n top: ${topVal} !important;\n bottom: auto !important;\n ${props.$horizontalPosition === 'right'\n ? css`left: auto !important; right: 2.5rem !important;`\n : css`left: 2.5rem !important; right: auto !important;`}\n }\n @media screen and (max-width: ${breakpoints.tablet}px) {\n padding-top: 0 !important;\n top: ${topVal} !important;\n height: 100vh;\n }\n `\n }\n return css`\n position: fixed !important;\n width: 100%;\n top: ${topVal} !important;\n bottom: auto !important;\n left: 0 !important;\n right: 0 !important;\n z-index: ${props.$zIndex !== undefined ? props.$zIndex : props.theme.zIndex.modals};\n pointer-events: auto;\n height: ${barH}px !important;\n min-height: ${barH}px !important;\n background-color: transparent;\n ${screens.tablet} {\n width: 100% !important;\n max-width: 100% !important;\n border: none;\n padding: 0;\n bottom: auto !important;\n top: ${topVal} !important;\n }\n @media screen and (max-width: ${breakpoints.tablet}px) {\n height: ${barH}px !important;\n min-height: ${barH}px !important;\n top: ${topVal} !important;\n }\n `\n }\n\n // Default: fixed positioning (overlay)\n return css`\n position: fixed;\n width: 100%;\n z-index: ${props.$zIndex !== undefined\n ? props.$zIndex\n : props.theme.zIndex.modals};\n pointer-events: none;\n\n ${props.$verticalPosition === 'top'\n ? css`\n top: ${props.$topOffset !== undefined\n ? typeof props.$topOffset === 'number'\n ? `${props.$topOffset}px`\n : props.$topOffset\n : '0'};\n padding-top: ${props.$topOffset !== undefined\n ? 0\n : props.theme.spacing.components.xsmall};\n \n @media screen and (max-width: ${breakpoints.tablet}px) {\n ${props.$opened\n ? css`\n padding-top: 0 !important;\n top: 0 !important;\n height: 100vh;\n `\n : ''}\n }\n `\n : css`\n bottom: 0;\n padding-bottom: ${props => props.theme.spacing.components.xsmall};\n \n @media screen and (max-width: ${breakpoints.tablet}px) {\n ${props.$opened\n ? css`\n padding-bottom: 0;\n `\n : ''}\n }\n `}\n\n ${screens.tablet} {\n width: auto;\n background-color: transparent;\n border: none;\n padding: 0;\n /* Top (portal): 2.5rem to match push-down bar; bottom: theme medium */\n ${props.$horizontalPosition === 'right'\n ? css`right: ${props.$verticalPosition === 'top' ? '2.5rem' : props.theme.spacing.components.medium}; left: auto;`\n : css`left: ${props.$verticalPosition === 'top' ? '2.5rem' : props.theme.spacing.components.medium}; right: auto;`}\n }\n `\n }}\n`\n", "import ChatbotDevice from 'components/ChatbotDevice'\nimport * as S from './styles'\nimport React, { useEffect, useState } from 'react'\nimport { createPortal } from 'react-dom'\nimport useChatbot from 'contexts/Chatbot/useChatbot'\n\n/**\n * Props for the ChatbotBar component (toggle button + floating chat panel).\n * Use with ChatbotProvider; positioning is relative to viewport unless pushContentDown is used.\n */\nexport type ChatbotBarProps = {\n /** Vertical anchor: 'top' | 'bottom'. Default: 'bottom'. */\n verticalPosition?: 'top' | 'bottom'\n /** Horizontal anchor of the bar: 'left' | 'right'. Default: 'right'. */\n horizontalPosition?: 'left' | 'right'\n /**\n * Horizontal position of the chat panel on desktop.\n * Predefined: 'left' | 'right' | 'center', or any CSS length (e.g. '20px', '10%', 'calc(100% - 200px)').\n * Custom values are applied as the 'left' CSS property. Omit to use parent positioning.\n */\n deviceHorizontalPosition?: 'left' | 'right' | 'center' | string\n /** Custom z-index for the bar/panel. If omitted, uses theme.zIndex.modals. Use to appear above headers. */\n zIndex?: number\n /** Offset from top when verticalPosition is 'top'. Number (px) or string (e.g. '100px', '10rem'). Use to sit below a fixed header. */\n topOffset?: string | number\n /** When true, sets z-index to 9999 so the chatbot appears above header elements; use with topOffset. */\n aboveHeader?: boolean\n /**\n * When true and verticalPosition is 'top', the bar takes space in the document flow (pushes content down)\n * instead of overlaying. When false, the bar is fixed and overlays content.\n */\n pushContentDown?: boolean\n /** Background of the push-content-down full-width row (light theme). Hex or rgb(). Default: rgb(230, 230, 230). */\n pushContentDownRowBackgroundLight?: string\n /** Background of the push-content-down full-width row (dark theme). Hex or rgb(). Default: rgb(0, 0, 0). */\n pushContentDownRowBackgroundDark?: string\n /** Height in px of the bar when pushContentDown is true (closed state). Default: 32. */\n pushContentDownBarHeight?: number\n}\n\nconst PUSH_DOWN_ROW_BG_LIGHT = 'rgb(230, 230, 230)'\nconst PUSH_DOWN_ROW_BG_DARK = 'rgb(0, 0, 0)'\n\n/** Bar height in px when pushContentDown (closed state). Used for body class and CSS variable. */\nexport const PUSH_DOWN_BAR_HEIGHT_PX = 32\n\nconst BODY_CLASS_PUSH_DOWN = 'ibti-chatbot-push-down'\nconst BODY_CSS_VAR_BAR_HEIGHT = '--ibti-chatbot-bar-height'\n\nexport const ChatbotBar = ({\n verticalPosition = 'bottom',\n horizontalPosition = 'right',\n deviceHorizontalPosition,\n zIndex,\n topOffset,\n aboveHeader = false,\n pushContentDown = false,\n pushContentDownRowBackgroundLight = PUSH_DOWN_ROW_BG_LIGHT,\n pushContentDownRowBackgroundDark = PUSH_DOWN_ROW_BG_DARK,\n pushContentDownBarHeight = PUSH_DOWN_BAR_HEIGHT_PX,\n}: ChatbotBarProps) => {\n const barHeightPx = Math.max(24, Math.min(120, pushContentDownBarHeight))\n const { opened, theme } = useChatbot()\n const pushDownRowBackground =\n theme === 'dark' ? pushContentDownRowBackgroundDark : pushContentDownRowBackgroundLight\n const [portalContainer, setPortalContainer] = useState<HTMLElement | null>(null)\n\n // Calculate z-index priority: aboveHeader > zIndex prop > theme default\n const calculatedZIndex = aboveHeader ? 9999 : zIndex\n\n // Use portal when verticalPosition is top so bar always renders at body (same DOM).\n // Avoids jump when toggling Push Content Down: in-app vs portal would use different refs (e.g. App.css).\n useEffect(() => {\n if (verticalPosition === 'top' && typeof document !== 'undefined') {\n let container = document.getElementById('chatbot-portal-container')\n\n if (!container) {\n container = document.createElement('div')\n container.id = 'chatbot-portal-container'\n container.style.width = '100%'\n container.style.margin = '0'\n container.style.padding = '0'\n container.style.boxSizing = 'border-box'\n document.body.insertBefore(container, document.body.firstChild)\n }\n\n setPortalContainer(container)\n\n return () => {\n if (container?.parentNode) {\n container.parentNode.removeChild(container)\n }\n }\n } else {\n setPortalContainer(null)\n }\n }, [verticalPosition])\n\n const usePushDown = pushContentDown && verticalPosition === 'top'\n\n // When pushContentDown: add body class and CSS var so client can reserve top space (e.g. main { padding-top: var(--ibti-chatbot-bar-height) }).\n // No in-flow spacer div \u2014 avoids extra vertical scroll on the page.\n useEffect(() => {\n if (!usePushDown || typeof document === 'undefined') return\n const body = document.body\n body.classList.add(BODY_CLASS_PUSH_DOWN)\n body.style.setProperty(BODY_CSS_VAR_BAR_HEIGHT, `${barHeightPx}px`)\n return () => {\n body.classList.remove(BODY_CLASS_PUSH_DOWN)\n body.style.removeProperty(BODY_CSS_VAR_BAR_HEIGHT)\n }\n }, [usePushDown, barHeightPx])\n\n const content = (\n <>\n <S.Wrapper\n $verticalPosition={verticalPosition}\n $horizontalPosition={horizontalPosition}\n $opened={opened}\n $zIndex={calculatedZIndex}\n $topOffset={topOffset}\n $aboveHeader={aboveHeader}\n $pushContentDown={pushContentDown}\n $pushContentDownBarHeight={barHeightPx}\n >\n {usePushDown && !opened && (\n <S.PushDownRow\n $background={pushDownRowBackground}\n $barHeight={barHeightPx}\n aria-hidden\n />\n )}\n <S.BarContainer\n $horizontalPosition={horizontalPosition}\n $deviceHorizontalPosition={deviceHorizontalPosition}\n $opened={opened}\n $verticalPosition={verticalPosition}\n $pushContentDown={usePushDown}\n >\n <ChatbotDevice\n verticalPosition={verticalPosition}\n pushContentDown={usePushDown}\n horizontalPosition={deviceHorizontalPosition}\n pushContentDownBarHeight={barHeightPx}\n />\n </S.BarContainer>\n </S.Wrapper>\n </>\n )\n\n // Use portal for top so positioning is consistent (no jump when toggling Push Content Down)\n if (portalContainer) {\n return createPortal(content, portalContainer)\n }\n\n return content\n}\n"],
5
+ "mappings": "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a,IAMlEC,GAAgBC,GAAAA,QAAMC,gBAAtBF,OAEAG,GAAiBC,GACC,OAAtBC,mBAAsB,UACzBA,kBACmB,OAAZf,QAAY,KACVA,QAAQC,MADVD,QAEEA,QAAQC,IAAIe,8BADJf,QAEfD,QAAQC,IAAIe,8BAAgC,GAC5ChB,QAAQC,IAAIe,8BAAgC,SAE1ChB,QAAQC,IAAIe,4BACK,OAAZhB,QAAY,KACVA,QAAQC,MADVD,QAEEA,QAAQC,IAAIc,oBADJd,QAEfD,QAAQC,IAAIc,oBAAsB,IAClCf,QAAQC,IAAIc,oBAAsB,SAEhCf,QAAQC,IAAIc,mBAnCjB,IEHME,GAAcC,OAAOC,OAAO,CAAA,CAAA,EAC5BC,GAAeF,OAAOC,OAAO,CAAA,CAAA,ECAlB,SAAAE,GACtBC,EACAC,EACAC,EAAAA,CAEA,OAFAA,IAEA,SAFAA,EAAiEJ,IAEzDE,EAAMG,QAAUD,EAAaC,OAASH,EAAMG,OAAUF,GAAiBC,EAAaC,KAC9F,CCTA,IA4JAC,GAAe,IAAIC,IA5JF,CACf,IACA,OACA,UACA,OACA,UACA,QACA,QACA,IACA,MACA,MACA,aACA,OACA,SACA,KACA,SACA,UACA,OACA,OACA,MACA,WACA,OACA,WACA,KACA,MACA,UACA,MACA,SACA,MACA,KACA,KACA,KACA,QACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,KACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,MACA,OACA,OACA,QACA,MACA,SACA,KACA,WACA,SACA,SACA,IACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,OACA,QACA,OACA,SACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,WACA,QACA,KACA,QACA,OACA,KACA,IACA,KACA,MACA,QACA,MACA,SACA,WACA,OACA,UACA,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cA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",
6
+ "names": ["require_react_production_min", "__commonJSMin", "exports", "l", "n", "p", "q", "r", "t", "u", "v", "w", "x", "y", "z", "A", "a", "B", "C", "D", "E", "b", "e", "F", "G", "H", "I", "J", "K", "L", "M", "d", "c", "k", "h", "g", "f", "m", "N", "O", "escape", "P", "Q", "R", "S", "T", "U", "V", "W", "require_react", "__commonJSMin", "exports", "module", "require_scheduler_production_min", "__commonJSMin", "exports", "f", "a", "b", "c", "d", "e", "g", "h", "k", "w", "m", "C", "n", "x", "l", "p", "q", "r", "t", "u", "v", "y", "z", "A", "B", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "require_scheduler", "__commonJSMin", "exports", "module", "require_react_dom_production_min", "__commonJSMin", "exports", "aa", "ca", "p", "a", "b", "c", "da", "ea", "fa", "ha", "ia", "ja", "ka", "la", "ma", "oa", "pa", "d", "qa", "v", "e", "f", "g", "z", "ra", "sa", "ta", "ua", "va", "wa", "ya", "za", "Aa", "Ba", "Ca", "Da", "Ea", "Fa", "Ga", "Ha", "Ia", "Ja", "Ka", "A", "La", "Ma", "Na", "Oa", "l", "h", "k", "Pa", "Qa", "Ra", "Sa", "Ta", "Ua", "Va", "Wa", "Xa", "Ya", "Za", "ab", "bb", "cb", "db", "eb", "fb", "gb", "hb", "ib", "jb", "kb", "lb", "mb", "nb", "ob", "pb", "qb", "rb", "sb", "tb", "ub", "vb", "wb", "xb", "yb", "zb", "Ab", "Bb", "Cb", "Db", "Eb", "Fb", "Gb", "Hb", "Ib", "Jb", "Kb", "Lb", "Mb", "Nb", "m", "Ob", "Pb", "Qb", "Rb", "Sb", "Tb", "Ub", "Vb", "Wb", "Xb", "Yb", "Zb", "$b", "ac", "bc", "cc", "dc", "B", "ec", "fc", "gc", "hc", "ic", "jc", "kc", "lc", "mc", "oc", "nc", "pc", "qc", "rc", "sc", "tc", "uc", "vc", "wc", "xc", "yc", "zc", "Ac", "Bc", "Cc", "C", "Dc", "Ec", "Fc", "Gc", "Hc", "Ic", "Jc", "Kc", "Lc", "Mc", "Nc", "Oc", "Pc", "Qc", "Rc", "Sc", "Tc", "Uc", "Vc", "Wc", "Xc", "Yc", "Zc", "$c", "ad", "bd", "cd", "dd", "ed", "fd", "gd", "hd", "id", "jd", "kd", "ld", "md", "nd", "od", "pd", "qd", "rd", "sd", "td", "ud", "vd", "wd", "xd", "yd", "Ad", "zd", "Bd", "Cd", "Dd", "Ed", "Fd", "Gd", "Hd", "Id", "Jd", "Kd", "Ld", "Md", "Nd", "Od", "Pd", "Qd", "Rd", "Sd", "Td", "Ud", "Vd", "Wd", "Xd", "Yd", "Zd", "$d", "ae", "be", "ce", "de", "ee", "fe", "ge", "he", "ie", "je", "ke", "le", "me", "ne", "oe", "pe", "qe", "re", "se", "te", "ue", "ve", "we", "ye", "ze", "xe", "Ae", "Be", "Ce", "De", "Ee", "Fe", "Ge", "He", "Ie", "Je", "Ke", "Le", "Me", "Ne", "Oe", "Pe", "Qe", "Re", "Se", "Te", "Ue", "Ve", "We", "Xe", "Ye", "Ze", "$e", "af", "bf", "cf", "df", "ef", "ff", "gf", "hf", "jf", "kf", "lf", "mf", "nf", "D", "of", "pf", "qf", "rf", "sf", "n", "t", "J", "x", "w", "u", "F", "tf", "uf", "vf", "wf", "na", "xa", "$a", "ba", "xf", "yf", "zf", "Af", "Bf", "Cf", "Df", "Ef", "Ff", "Gf", "Hf", "Jf", "If", "Kf", "Lf", "Mf", "Nf", "Of", "Pf", "Qf", "Rf", "Sf", "Tf", "Uf", "E", "G", "Vf", "H", "Wf", "Xf", "Yf", "Zf", "$f", "ag", "bg", "cg", "dg", "eg", "fg", "gg", "hg", "ig", "jg", "kg", "lg", "mg", "ng", "og", "pg", "qg", "rg", "sg", "tg", "ug", "vg", "wg", "xg", "yg", "I", "zg", "Ag", "Bg", "Cg", "Dg", "Eg", "Fg", "Gg", "Hg", "Ig", "Jg", "Kg", "Lg", "Mg", "Ng", "Og", "Pg", "Qg", "Rg", "Sg", "Tg", "q", "r", "y", "Ug", "Vg", "Wg", "Xg", "Yg", "Zg", "$g", "ah", "bh", "ch", "dh", "eh", "fh", "gh", "hh", "ih", "jh", "kh", "lh", "mh", "nh", "K", "oh", "ph", "qh", "rh", "sh", "th", "uh", "vh", "wh", "xh", "yh", "zh", "Ah", "Bh", "L", "Ch", "Dh", "Eh", "Fh", "Gh", "Hh", "M", "N", "O", "Ih", "Jh", "Kh", "Lh", "P", "Mh", "Nh", "Oh", "Ph", "Qh", "Rh", "Sh", "Th", "Uh", "Vh", "Wh", "Xh", "Yh", "Zh", "$h", "ai", "bi", "ci", "Q", "di", "ei", "fi", "gi", "hi", "ii", "ji", "ki", "li", "mi", "ni", "oi", "pi", "qi", "ri", "si", "ti", "ui", "vi", "wi", "xi", "yi", "zi", "Ai", "R", "Bi", "Ci", "Di", "Ei", "Fi", "Gi", "Hi", "Ii", "Ji", "Ki", "Li", "Mi", "Ni", "Oi", "Pi", "Qi", "Ri", "Si", "Ti", "Ui", "Vi", "Wi", "Xi", "Yi", "Zi", "$i", "aj", "bj", "cj", "dj", "ej", "fj", "gj", "hj", "ij", "jj", "kj", "lj", "mj", "nj", "oj", "pj", "qj", "rj", "sj", "tj", "uj", "vj", "wj", "xj", "yj", "zj", "Aj", "Bj", "Cj", "Dj", "S", "Ej", "Fj", "T", "Gj", "Hj", "Ij", "Jj", "U", "Kj", "V", "Lj", "W", "Mj", "Nj", "Oj", "Pj", "Qj", "Rj", "Sj", "Tj", "Uj", "Vj", "Wj", "X", "Xj", "Yj", "Zj", "ak", "bk", "ck", "dk", "ek", "fk", "gk", "hk", "ik", "jk", "kk", "lk", "mk", "nk", "ok", "Y", "Z", "pk", "qk", "rk", "sk", "tk", "uk", "vk", "wk", "xk", "yk", "zk", "Ak", "Bk", "Ck", "Dk", "Ek", "Fk", "Gk", "Hk", "Ik", "Jk", "Kk", "Lk", "Mk", "Nk", "Ok", "Pk", "Qk", "Rk", "Sk", "Tk", "Uk", "Vk", "Wk", "Xk", "Yk", "Zk", "$k", "al", "bl", "cl", "dl", "el", "fl", "gl", "hl", "il", "jl", "kl", "ll", "ml", "nl", "ol", "pl", "ql", "rl", "sl", "tl", "ul", "vl", "require_react_dom", "__commonJSMin", "exports", "module", "checkDCE", "err", "require_client", "__commonJSMin", "exports", "m", "i", "require_cookie", "__commonJSMin", "exports", "parse", "serialize", "decode", "encode", "fieldContentRegExp", "str", "options", "obj", "opt", "pairs", "dec", "pair", "index", "key", "val", "tryDecode", "name", "enc", "value", "maxAge", "sameSite", "require_set_cookie", "__commonJSMin", "exports", "module", "defaultParseOptions", "isForbiddenKey", "key", "createNullObj", "isNonEmptyString", "str", "parseString", "setCookieValue", "options", "parts", "nameValuePairStr", "parsed", "parseNameValuePair", "name", "value", "e", "cookie", "part", "sides", "n", "nameValueArr", "parse", "input", "sch", "cookies", "splitCookiesString", "cookiesString", "cookiesStrings", "pos", "start", "ch", "lastComma", "nextStart", "cookiesSeparatorFound", "skipWhitespace", "notSpecialChar", "isBrowser", "exports", "createCookie", "name", "value", "options", "sameSite", "cookieToSet", "__assign", "hasSameProperties", "a", "b", "aProps", "bProps", "i", "propName", "areCookiesEqual", "sameSiteSame", "cookie", "setCookieParser", "utils_1", "parseCookies", "ctx", "options", "_b", "_a", "exports", "setCookie", "name", "value", "cookies", "parsedCookies", "newCookie_1", "cookiesToSet_1", "parsedCookie", "serializedCookie", "__assign", "val", "destroyCookie", "require_react_jsx_runtime_production_min", "__commonJSMin", "exports", "f", "k", "l", "m", "n", "p", "q", "c", "a", "g", "b", "d", "e", "h", "require_jsx_runtime", "__commonJSMin", "exports", "module", "COMMENT_REGEX", "NEWLINE_REGEX", "WHITESPACE_REGEX", "PROPERTY_REGEX", "COLON_REGEX", "VALUE_REGEX", "SEMICOLON_REGEX", "TRIM_REGEX", "NEWLINE", "FORWARD_SLASH", "ASTERISK", "EMPTY_STRING", "TYPE_COMMENT", "TYPE_DECLARATION", "index", "style", "options", "lineno", "column", "updatePosition", "str", "lines", "i", "position", "start", "node", "Position", "whitespace", "error", "msg", "err", "match", "re", "m", "comments", "rules", "c", "comment", "pos", "declaration", "prop", "val", "ret", "trim", "declarations", "decls", "decl", "exports", "StyleToObject", "inline_style_parser_1", "__importDefault", "style", "iterator", "styleObject", "declarations", "hasIterator", "declaration", "property", "value", "CUSTOM_PROPERTY_REGEX", "HYPHEN_REGEX", "NO_HYPHEN_REGEX", "VENDOR_PREFIX_REGEX", "MS_VENDOR_PREFIX_REGEX", "skipCamelCase", "property", "capitalize", "match", "character", "trimHyphen", "prefix", "camelCase", "options", "exports", "style_to_object_1", "__importDefault", "utilities_1", "StyleToJS", "style", "options", "output", "property", "value", "module", "require_extend", "__commonJSMin", "exports", "module", "hasOwn", "toStr", "defineProperty", "gOPD", "isArray", "arr", "isPlainObject", "obj", "hasOwnConstructor", "hasIsPrototypeOf", "key", "setProperty", "target", "options", "getProperty", "name", "extend", "src", "copy", "copyIsArray", "clone", "i", "length", "deep", "import_react", "import_client", "import_react", "React", "ChatbotContext", "import_react", "getRandomValues", "rnds8", "rng", "byteToHex", "i", "unsafeStringify", "arr", "offset", "randomUUID", "native_default", "v4", "options", "buf", "offset", "native_default", "rnds", "rng", "i", "unsafeStringify", "v4_default", "import_react", "useChatbotSuggestedQuestions", "chatContext", "locale", "apiURL", "loading", "setLoading", "data", "setData", "CUSTOM_EVENT_NAMES", "dispatchAssitantAnswer", "evt", "CUSTOM_EVENT_NAMES", "getDefaultHeaders", "CACHE_TTL_MS", "cache", "cacheKey", "apiURL", "publicHash", "getChatbotByPublicHash", "key", "now", "entry", "response", "getDefaultHeaders", "data", "en_default", "pt_BR_default", "i18n", "en_default", "pt_BR_default", "sendChatContext", "chatContext", "locale", "onReceiving", "onDone", "apiURL", "publicHash", "visitorId", "params", "response", "getDefaultHeaders", "i18n", "reader", "decoder", "message", "read", "done", "value", "chunk", "checkApiHealth", "apiUrl", "url", "controller", "timeoutMs", "timeoutId", "fallbackController", "fallbackTimeoutId", "getWelcomeMessage", "sendUserChatFeedback", "apiURL", "locale", "ratingScore", "description", "publicHash", "visitorId", "getDefaultHeaders", "import_nookies", "ChatCookieManager", "keySuffix", "base", "suffix", "data", "createdAt", "now", "created", "maxAgeInMs", "cookie", "c", "equalIndex", "cookieValue", "storageData", "err", "storedValue", "storageValue", "import_react", "useChatbot", "context", "ChatbotContext", "useChatbot_default", "useI18n", "locale", "useChatbot", "i18n", "useChatbotMessages", "apiURL", "locale", "publicHash", "visitorId", "i18n", "useI18n", "cookieKeySuffix", "chatCookie", "ChatCookieManager", "chatMessages", "setChatMessages", "initialized", "setInitialized", "loading", "setLoading", "writing", "setWriting", "error", "setError", "apiConnectionError", "setApiConnectionError", "prevWritingRef", "chatMessagesRef", "saveTimeoutRef", "suggestedQuestions", "useChatbotSuggestedQuestions", "item", "persistMessages", "messages", "immediate", "err", "createQuestionMessageIntoHistory", "question", "id", "timestamp", "messageData", "newHistory", "createOrUpdateAnswerMessageIntoHistory", "answer", "shouldPersist", "prev", "updated", "makeQuestion", "userQuestion", "answerId", "v4_default", "questionId", "chatContext", "sendChatContext", "receivedMessage", "currentMessages", "dispatchAssitantAnswer", "init", "checkApiHealth", "savedData", "firstMessage", "getWelcomeMessage", "useChatbotMessages_default", "import_jsx_runtime", "import_react", "createIconComponent", "content", "viewBox", "size", "color", "componentProps", "props", "__assign", "s", "i", "n", "p", "__spreadArray", "to", "from", "pack", "i", "l", "ar", "MS", "MOZ", "WEBKIT", "COMMENT", "RULESET", "DECLARATION", "IMPORT", "NAMESPACE", "KEYFRAMES", "LAYER", "abs", "from", "assign", "hash", "value", "length", "charat", "trim", "match", "pattern", "replace", "replacement", "indexof", "search", "position", "index", "substr", "begin", "end", "strlen", "sizeof", "append", "array", "combine", "callback", "filter", "line", "column", "length", "position", "character", "characters", "node", "value", "root", "parent", "type", "props", "children", "siblings", "copy", "assign", "lift", "append", "char", "prev", "charat", "next", "peek", "caret", "slice", "begin", "end", "substr", "token", "alloc", "strlen", "dealloc", "delimit", "trim", "delimiter", "whitespace", "type", "character", "peek", "next", "token", "escaping", "index", "count", "next", "character", "slice", "caret", "peek", "delimiter", "type", "position", "commenter", "from", "identifier", "token", "compile", "value", "dealloc", "parse", "alloc", "root", "parent", "rule", "rules", "rulesets", "pseudo", "points", "declarations", "index", "offset", "length", "atrule", "property", "previous", "variable", "scanning", "ampersand", "character", "type", "props", "children", "reference", "characters", "next", "charat", "indexof", "replace", "delimit", "abs", "whitespace", "escaping", "caret", "peek", "append", "comment", "commenter", "token", "strlen", "substr", "declaration", "ruleset", "prev", "from", "identifier", "siblings", "post", "size", "sizeof", "i", "j", "k", "x", "y", "z", "trim", "node", "RULESET", "COMMENT", "char", "DECLARATION", "prefix", "value", "length", "children", "hash", "WEBKIT", "MOZ", "MS", "charat", "replace", "match", "substr", "element", "index", "indexof", "strlen", "_", "a", "b", "c", "d", "e", "f", "serialize", "children", "callback", "output", "i", "stringify", "element", "index", "LAYER", "IMPORT", "NAMESPACE", "DECLARATION", "COMMENT", "KEYFRAMES", "RULESET", "strlen", "middleware", "collection", "length", "sizeof", "element", "index", "children", "callback", "output", "i", "rulesheet", "prefixer", "DECLARATION", "prefix", "KEYFRAMES", "serialize", "copy", "replace", "WEBKIT", "RULESET", "combine", "value", "match", "lift", "MOZ", "assign", "filter", "MS", "unitlessKeys", "SC_ATTR", "process", "env", "REACT_APP_SC_ATTR", "SC_ATTR_ACTIVE", "SC_ATTR_VERSION", "SC_VERSION", "SPLITTER", "IS_BROWSER", "window", "document", "IS_RSC", "React", "createContext", "DISABLE_SPEEDY", "Boolean", "SC_DISABLE_SPEEDY", "REACT_APP_SC_DISABLE_SPEEDY", "EMPTY_ARRAY", "Object", "freeze", "EMPTY_OBJECT", "determineTheme", "props", "providedTheme", "defaultProps", "theme", "domElements", "Set", "escapeRegex", "dashesAtEnds", "escape", "str", "replace", "AD_REPLACER_R", "getAlphabeticChar", "code", "String", "fromCharCode", "generateAlphabeticName", "x", "name", "Math", "abs", "O", "phash", "h", "i", "length", "charCodeAt", "hash", "generateComponentId", "getComponentName", "target", "displayName", "isTag", "hasSymbol", "Symbol", "for", "REACT_MEMO_TYPE", "REACT_FORWARD_REF_TYPE", "REACT_STATICS", "childContextTypes", "contextType", "contextTypes", "getDefaultProps", "getDerivedStateFromError", "getDerivedStateFromProps", "mixins", "propTypes", "type", "KNOWN_STATICS", "prototype", "caller", "callee", "arguments", "arity", "MEMO_STATICS", "$$typeof", "compare", "TYPE_STATICS", "_a", "render", "getStatics", "component", "object", "defineProperty", "getOwnPropertyNames", "getOwnPropertySymbols", "getOwnPropertyDescriptor", "getPrototypeOf", "objectPrototype", "hoistNonReactStatics", "targetComponent", "sourceComponent", "excludelist", "inheritedComponent", "keys", "concat", "targetStatics", "sourceStatics", "key", "descriptor", "e", "isFunction", "test", "isStyledComponent", "joinStrings", "a", "b", "joinStringArray", "arr", "sep", "result", "isPlainObject", "constructor", "mixinRecursively", "source", "forceMerge", "Array", "isArray", "setToString", "toStringFn", "value", "throwStyledComponentsError", "code", "interpolations", "_i", "arguments", "length", "Error", "concat", "join", "DefaultGroupedTag", "tag", "this", "groupSizes", "Uint32Array", "prototype", "indexOfGroup", "group", "index", "i", "insertRules", "rules", "oldBuffer", "oldSize", "newSize", "styledError", "set", "ruleIndex", "l", "insertRule", "clearGroup", "length_1", "startIndex", "endIndex", "deleteRule", "getGroup", "css", "getRule", "SPLITTER", "MAX_SMI", "groupIDRegister", "Map", "reverseRegister", "nextFreeGroup", "getGroupForId", "id", "has", "get", "setGroupForId", "SELECTOR", "SC_ATTR", "SC_ATTR_VERSION", "SC_VERSION", "MARKER_RE", "RegExp", "rehydrateNamesFromContent", "sheet", "content", "name", "names", "split", "registerName", "rehydrateSheetFromTag", "style", "n", "parts", "_a", "textContent", "part", "trim", "marker", "match", "parseInt", "getTag", "push", "rehydrateSheet", "nodes", "document", "querySelectorAll", "node", "getAttribute", "SC_ATTR_ACTIVE", "parentNode", "removeChild", "getNonce", "__webpack_nonce__", "makeStyleTag", "target", "head", "parent", "createElement", "prevStyle", "arr", "Array", "from", "nextSibling", "setAttribute", "nonce", "insertBefore", "CSSOMTag", "element", "appendChild", "createTextNode", "styleSheets", "ownerNode", "rule", "_error", "cssRules", "cssText", "TextTag", "childNodes", "VirtualTag", "_target", "splice", "SHOULD_REHYDRATE", "IS_BROWSER", "defaultOptions", "isServer", "useCSSOMInjection", "DISABLE_SPEEDY", "StyleSheet", "options", "globalStyles", "EMPTY_OBJECT", "_this", "__assign", "gs", "server", "setToString", "r", "size", "selector", "forEach", "registerId", "rehydrate", "reconstructWithOptions", "withNames", "undefined", "allocateGSInstance", "e", "hasNameForId", "add", "groupNames", "Set", "clearNames", "clear", "clearRules", "clearTag", "AMP_REGEX", "SLASH", "hasUnbalancedBraces", "indexOf", "len", "depth", "inString", "inComment", "charCodeAt", "recursivelySetNamepace", "compiled", "namespace", "map", "type", "value", "replaceAll", "props", "prop", "isArray", "children", "createStylisInstance", "_componentId", "_selector", "_selectorRegexp", "_b", "_c", "_d", "plugins", "EMPTY_ARRAY", "selfReferenceReplacer", "offset", "string", "startsWith", "endsWith", "middlewares", "slice", "RULESET", "includes", "replace", "prefix", "prefixer", "stringify", "stringifyRules", "componentId", "flatCSS", "result", "declStart", "braceDepth", "skipEnd", "skipCode", "substring", "remaining", "start", "urlDepth", "compile", "stack", "serialize", "middleware", "rulesheet", "hash", "reduce", "acc", "plugin", "throwStyledError", "phash", "toString", "mainSheet", "mainStylis", "defaultContextValue", "shouldForwardProp", "styleSheet", "stylis", "StyleSheetContext", "IS_RSC", "Provider", "Consumer", "React", "createContext", "StyleSheetConsumer", "StylisContext", "useStyleSheetContext", "useContext", "StyleSheetManager", "useMemo", "resolvedStyleSheet", "disableCSSOMInjection", "enableVendorPrefixes", "stylisPlugins", "styleSheetContextValue", "Keyframes", "inject", "stylisInstance", "resolvedName", "String", "getName", "addUnitIfNeeded", "unitless", "isUpper", "c", "hyphenateStyleName", "output", "toLowerCase", "isFalsish", "chunk", "objToCssArray", "obj", "key", "val", "hasOwnProperty", "isCss", "isFunction", "hyphenate", "isPlainObject", "apply", "flatten", "executionContext", "isStyledComponent", "styledComponentId", "test", "isReactComponent", "chunklet", "isStaticRules", "SEED", "ComponentStyle", "baseStyle", "staticRulesId", "isStatic", "NODE_ENV", "baseHash", "generateAndInjectStyles", "className", "joinStrings", "cssStatic", "joinStringArray", "name_1", "generateName", "cssStaticFormatted", "dynamicHash", "partRule", "partString", "name_2", "cssFormatted", "window", "ThemeContext", "ThemeConsumer", "useTheme", "theme", "ThemeProvider", "outerTheme", "themeContext", "mergedTheme", "identifiers", "createStyledComponent", "target", "options", "rules", "isTargetStyledComp", "isStyledComponent", "styledComponentTarget", "isCompositeComponent", "isTag", "_a", "attrs", "EMPTY_ARRAY", "_b", "componentId", "displayName", "parentComponentId", "name", "escape", "identifiers", "concat", "generateComponentId", "SC_VERSION", "_c", "getComponentName", "styledComponentId", "finalAttrs", "filter", "Boolean", "shouldForwardProp", "shouldForwardPropFn_1", "passedShouldForwardPropFn_1", "prop", "elementToBeCreated", "componentStyle", "ComponentStyle", "undefined", "forwardRefRender", "props", "ref", "forwardedComponent", "forwardedRef", "componentAttrs", "defaultProps", "foldedComponentIds", "contextTheme", "IS_RSC", "React", "useContext", "ThemeContext", "ssc", "useStyleSheetContext", "theme", "determineTheme", "EMPTY_OBJECT", "context", "attrDef", "__assign", "className", "i", "length", "resolvedAttrDef", "isFunction", "key", "joinStrings", "style", "as", "propsForElement", "forwardedAs", "resolvedAttrs", "result", "generateAndInjectStyles", "styleSheet", "stylis", "generatedClassName", "css", "classString", "domElements", "has", "element", "createElement", "Fragment", "precedence", "href", "children", "WrappedStyledComponent", "forwardRef", "Object", "defineProperty", "get", "this", "_foldedDefaultProps", "set", "obj", "sources", "_i", "arguments", "sources_1", "mixinRecursively", "setToString", "hoist", "interleave", "strings", "interpolations", "len", "push", "addTag", "arg", "assign", "isCss", "styles", "isPlainObject", "flatten", "__spreadArray", "styleStringArray", "constructWithOptions", "componentConstructor", "tag", "styledError", "templateFunction", "initialStyles", "apply", "Array", "prototype", "withConfig", "config", "baseStyled", "styled", "forEach", "domElement", "GlobalStyle", "isStatic", "isStaticRules", "StyleSheet", "registerId", "createStyles", "instance", "executionContext", "joinStringArray", "id", "insertRules", "removeStyles", "clearRules", "renderStyles", "hasNameForId", "keyframes", "strings", "interpolations", "_i", "arguments", "length", "rules", "joinStringArray", "css", "apply", "__spreadArray", "name", "generateComponentId", "Keyframes", "ServerStyleSheet", "_this", "this", "_emitSheetCSS", "css", "instance", "toString", "nonce", "getNonce", "htmlAttr", "joinStringArray", "concat", "SC_ATTR", "SC_ATTR_VERSION", "SC_VERSION", "filter", "Boolean", "getStyleTags", "sealed", "styledError", "getStyleElement", "n", "props", "_a", "dangerouslySetInnerHTML", "__html", "React", "key", "seal", "StyleSheet", "isServer", "prototype", "collectStyles", "children", "createElement", "StyleSheetManager", "sheet", "interleaveWithNodeStream", "input", "windowGlobalKey", "concat", "SC_ATTR", "import_jsx_runtime", "ChevronDownIcon", "createIconComponent", "import_jsx_runtime", "import_jsx_runtime", "spinner", "size", "lt", "Circle", "at", "props", "sizes", "Spinner", "size", "className", "color", "style", "sizeWidth", "strokeWidth", "Circle", "import_jsx_runtime", "import_react", "Link", "href", "children", "props", "React", "_extends", "n", "e", "t", "r", "_assertThisInitialized", "_setPrototypeOf", "t", "e", "_inheritsLoose", "t", "o", "_setPrototypeOf", "_getPrototypeOf", "t", "_isNativeFunction", "t", "_isNativeReflectConstruct", "t", "_construct", "t", "e", "_isNativeReflectConstruct", "o", "p", "_setPrototypeOf", "_wrapNativeSuper", "t", "r", "_isNativeFunction", "Wrapper", "_construct", "_getPrototypeOf", "_setPrototypeOf", "PolishedError", "_Error", "_inheritsLoose", "code", "_this", "_len2", "args", "_key2", "_assertThisInitialized", "_wrapNativeSuper", "endsWith", "string", "suffix", "cssRegex$1", "stripUnit", "value", "matchedValue", "pxtoFactory", "to", "pxval", "base", "newPxval", "newBase", "PolishedError", "pixelsto", "em", "rem", "pixelsto", "colorToInt", "color", "convertToInt", "red", "green", "blue", "hslToRgb", "hue", "saturation", "lightness", "convert", "huePrime", "chroma", "secondComponent", "lightnessModification", "finalRed", "finalGreen", "finalBlue", "namedColorMap", "nameToHex", "normalizedColorName", "hexRegex", "hexRgbaRegex", "reducedHexRegex", "reducedRgbaHexRegex", "rgbRegex", "rgbaRegex", "hslRegex", "hslaRegex", "parseToRgb", "PolishedError", "normalizedColor", "alpha", "_alpha", "rgbMatched", "rgbaMatched", "hslMatched", "rgbColorString", "hslRgbMatched", "hslaMatched", "_hue", "_saturation", "_lightness", "_rgbColorString", "_hslRgbMatched", "rgbToHsl", "max", "min", "delta", "parseToHsl", "reduceHexValue", "value", "reduceHexValue$1", "numberToHex", "hex", "colorToHex", "convertToHex", "hslToHex", "hsl", "hsla", "rgb", "rgba", "firstValue", "secondValue", "thirdValue", "fourthValue", "rgbValue", "isRgb", "isRgba", "isHsl", "isHsla", "toColorString", "curried", "f", "length", "acc", "combined", "curry", "adjustHue", "degree", "hslColor", "_extends", "curriedAdjustHue", "guard", "lowerBoundary", "upperBoundary", "value", "darken", "amount", "color", "hslColor", "parseToHsl", "toColorString", "_extends", "curriedDarken", "curry", "curriedDarken$1", "desaturate", "curriedDesaturate", "getLuminance", "color", "rgbColor", "parseToRgb", "_Object$keys$map", "key", "channel", "r", "g", "b", "getContrast", "color1", "color2", "luminance1", "luminance2", "grayscale", "toColorString", "_extends", "parseToHsl", "lighten", "amount", "color", "hslColor", "parseToHsl", "toColorString", "_extends", "guard", "curriedLighten", "curry", "curriedLighten$1", "mix", "weight", "color", "otherColor", "parsedColor1", "parseToRgb", "color1", "_extends", "parsedColor2", "color2", "alphaDelta", "x", "y", "z", "weight1", "weight2", "mixedColor", "rgba", "curriedMix", "curry", "mix$1", "opacify", "amount", "parsedColor", "alpha", "colorWithAlpha", "guard", "curriedOpacify", "curriedOpacify$1", "defaultReturnIfLightColor", "defaultReturnIfDarkColor", "readableColor", "returnIfLightColor", "returnIfDarkColor", "strict", "isColorLight", "getLuminance", "preferredReturnColor", "getContrast", "saturate", "amount", "color", "hslColor", "parseToHsl", "toColorString", "_extends", "guard", "curriedSaturate", "curry", "setHue", "hue", "color", "toColorString", "_extends", "parseToHsl", "curriedSetHue", "curry", "setLightness", "lightness", "color", "toColorString", "_extends", "parseToHsl", "curriedSetLightness", "curry", "setSaturation", "saturation", "color", "toColorString", "_extends", "parseToHsl", "curriedSetSaturation", "curry", "shade", "percentage", "color", "mix$1", "curriedShade", "curry", "tint", "percentage", "color", "mix$1", "curriedTint", "curry", "transparentize", "amount", "color", "parsedColor", "parseToRgb", "alpha", "colorWithAlpha", "_extends", "guard", "rgba", "curriedTransparentize", "curry", "React", "React2", "import_react", "specialChars", "uppercaseLetters", "lowecaseLetters", "numbers", "chars", "objectKeys", "obj", "regexPatterns", "mergeObjects", "obj1", "obj2", "merged", "key", "value", "constructThemeColorsContent", "baseColor", "increment", "curriedLighten$1", "colors", "breakpoints", "validBreakpointNames", "breakpointUp", "value", "screens", "layout", "constructThemeColorsPalette", "newColors", "colors", "constructThemeColorsLayer", "baseColor", "increment", "curriedLighten$1", "constructThemeColorsLayers", "alternate", "reverse", "currentBaseColor", "layers", "layerProps", "constructFontFamily", "name", "weights", "file", "bankGothicFontFamily", "constructFontFamily", "montserratFontFamily", "fontFamily", "fontFamilyToken", "fontFamily", "defaultThemeTokens", "constructThemeTokens", "customTokens", "mergeObjects", "defaultThemeTokens", "constructTheme", "args", "constructThemeColorsPalette", "constructThemeColorsContent", "constructThemeColorsLayers", "constructThemeTokens", "constructThemeColorPalette", "baseColor", "increment", "light", "curriedLighten$1", "dark", "curriedDarken$1", "defaultDarkTheme", "constructTheme", "colors", "defaultLightTheme", "constructTheme", "colors", "Wrapper", "at", "props", "$shape", "theme", "defaultShape", "rt", "$variant", "$color", "$layer", "$active", "palleteColor", "colorObj", "isHexColor", "regexPatterns", "constructThemeColorPalette", "readableColor", "grayscale", "$transparent", "$borderLess", "ButtonBase", "children", "isExternal", "layer", "type", "variant", "color", "shape", "setRef", "borderLess", "transparent", "active", "loading", "props", "Wrapper", "Link", "horizontalPadding", "size", "rt", "Label", "at", "props", "Wrapper", "ButtonBase", "$fillWidth", "$size", "theme", "Button", "size", "suffix", "prefix", "fillWidth", "props", "Wrapper", "Label", "Spinner", "breakpoints", "validBreakpointNames", "objectKeys", "breakpointUp", "value", "screens", "import_jsx_runtime", "Wrapper", "at", "props", "$hoverable", "theme", "$layer", "rt", "$roundedCorners", "$boxShadow", "curriedOpacify$1", "CardBase", "layer", "hoverable", "children", "roundedCorners", "tag", "boxShadow", "props", "Wrapper", "import_jsx_runtime", "CheckIcon", "createIconComponent", "import_jsx_runtime", "Limit", "at", "Count", "$limitExceeded", "rt", "props", "Wrapper", "FormFieldCharsLimit", "charsCount", "limit", "props", "Wrapper", "Count", "Limit", "import_jsx_runtime", "Wrapper", "at", "props", "FormFieldLabel", "children", "Wrapper", "import_jsx_runtime", "Wrapper", "at", "props", "$fillWidth", "rt", "FormFieldRoot", "fillWidth", "children", "props", "Wrapper", "import_jsx_runtime", "import_jsx_runtime", "CircleExclamationIcon", "createIconComponent", "import_jsx_runtime", "InfoCircleIcon", "createIconComponent", "Wrapper", "at", "props", "rt", "iconsByType", "InfoCircleIcon", "CircleExclamationIcon", "CheckIcon", "FormFieldStatus", "type", "text", "Icon", "Wrapper", "handleFormFieldStatus", "error", "success", "info", "type", "text", "FormField", "FormFieldRoot", "FormFieldLabel", "FormFieldStatus", "FormFieldCharsLimit", "import_jsx_runtime", "Wrapper", "at", "props", "breakpoints", "Container", "children", "className", "style", "variant", "Wrapper", "textFieldSharedStyle", "rt", "props", "TextArea", "at", "Input", "Wrapper", "$shape", "$focused", "$disabled", "$layer", "theme", "mix$1", "$hasError", "$hasSuccess", "$hasCharsCounter", "FormTextField", "import_jsx_runtime", "Wrapper", "at", "ButtonBase", "$imageSrc", "$imagePositionY", "$imagePositionX", "$imageFit", "rt", "$size", "theme", "IconButton", "Icon", "size", "image", "props", "Wrapper", "Spinner", "import_jsx_runtime", "import_react", "import_jsx_runtime", "Svg", "at", "$filled", "$layer", "theme", "rt", "Wrapper", "props", "RatingStar", "filled", "onMouseOver", "onMouseLeave", "onClick", "readOnly", "layer", "Wrapper", "Svg", "Wrapper", "at", "rateNumbers", "RatingStars", "value", "setValue", "readOnly", "layer", "rateValue", "setRateValue", "hoverValue", "setHoverValue", "Wrapper", "rateNumber", "RatingStar", "import_jsx_runtime", "import_react", "TextArea", "label", "fillWidth", "layer", "setRef", "info", "error", "success", "showCharsCount", "value", "max", "onFocused", "onBlur", "onFocus", "onChange", "rows", "resize", "props", "focused", "setFocused", "internalValue", "setInternalValue", "fieldStatus", "handleFormFieldStatus", "handledValue", "FormField", "FormTextField", "e", "import_jsx_runtime", "ArrowUpIcon", "createIconComponent", "import_jsx_runtime", "ChevronUpIcon", "createIconComponent", "themes", "defaultLightTheme", "defaultDarkTheme", "mergeThemeWithCustomColors", "baseTheme", "customColors", "has", "v", "primary", "headerBg", "userBalloon", "ALLOWED_ORIGINS_WITHOUT_DOMAIN_CHECK", "normalizeHost", "host", "lower", "normalizeDomainName", "domainName", "getHostname", "value", "trimmed", "isOriginAllowedWithoutCheck", "originOrHost", "customAllowedOrigins", "list", "normalized", "hostname", "allowed", "a", "aHostname", "isDomainAllowed", "currentOriginOrHost", "origin", "current", "currentHostname", "STORAGE_PREFIX", "storageKey", "apiURL", "publicHash", "base", "getOrCreateVisitorId", "v4_default", "key", "existing", "newId", "ChatbotProvider", "locale", "children", "apiURL", "publicHash", "theme", "isOpen", "texts", "allowedOriginsWithoutCheck", "skipDomainCheck", "customColors", "customIcon", "initializationStatus", "setInitializationStatus", "chatbot", "setChatbot", "domainAllowed", "setDomainAllowed", "visitorId", "setVisitorId", "isReady", "makeQuestion", "chatMessages", "loading", "writing", "error", "apiConnectionError", "suggestedQuestions", "useChatbotMessages_default", "opened", "setOpened", "scrollRef", "openedToggle", "state", "status", "cancelled", "data", "getChatbotByPublicHash", "vid", "getOrCreateVisitorId", "currentOrigin", "allowed", "isDomainAllowed", "React", "ChatbotContext", "Ke", "mergeThemeWithCustomColors", "themes", "import_react", "Wrapper", "at", "props", "barH", "rt", "breakpoints", "screens", "import_react", "Name", "at", "props", "ProfileInfo", "ProfileImage", "Wrapper", "import_react", "defaultAttributes", "toKebabCase", "string", "createLucideIcon", "iconName", "iconNode", "Component", "color", "size", "strokeWidth", "absoluteStrokeWidth", "children", "rest", "ref", "defaultAttributes", "tag", "attrs", "createLucideIcon$1", "Bot", "createLucideIcon$1", "Copy", "createLucideIcon$1", "Headphones", "createLucideIcon$1", "HelpCircle", "createLucideIcon$1", "MessageCircle", "createLucideIcon$1", "MessageSquareDashed", "createLucideIcon$1", "MessageSquarePlus", "createLucideIcon$1", "MessageSquare", "createLucideIcon$1", "RotateCw", "createLucideIcon$1", "Share2", "createLucideIcon$1", "Sparkles", "createLucideIcon$1", "EMBED_ICON_MAP", "Bot", "MessageCircle", "MessageSquare", "MessageSquarePlus", "MessageSquareDashed", "Sparkles", "Headphones", "HelpCircle", "getEmbedIconComponent", "name", "DefaultBotSvg", "React", "BotIcon", "iconName", "useChatbot_default", "IconComponent", "getEmbedIconComponent", "useChatbotTexts", "locale", "texts", "useChatbot", "defaultTexts", "i18n", "customTexts", "getText", "custom", "defaultValue", "import_react", "Wrapper", "at", "props", "ChatbotStatusLabel", "status", "apiConnectionError", "useChatbot_default", "texts", "useChatbotTexts", "theme", "Ze", "statusLabel", "statusColor", "React", "Wrapper", "ChatbotStatusLabel_default", "ChatbotHeader", "chatFeedbackBox", "texts", "useChatbotTexts", "React", "Wrapper", "ProfileImage", "BotIcon", "ProfileInfo", "Name", "ChatbotStatusLabel_default", "Button", "ChatbotHeader_default", "import_react", "ChatbotInput", "at", "MessagesList", "props", "Wrapper", "import_react", "Time", "at", "props", "$type", "rt", "Balloon", "$error", "Label", "BalloonAndActionsWrapper", "BalloonContainer", "TimestampAndActionsRow", "ActionsContainer", "ActionButton", "Tooltip", "mix$1", "Wrapper", "toDate", "argument", "argStr", "maxTime", "minTime", "millisecondsInWeek", "millisecondsInDay", "millisecondsInMinute", "millisecondsInHour", "secondsInHour", "secondsInMinute", "secondsInDay", "secondsInWeek", "secondsInYear", "secondsInMonth", "secondsInQuarter", "defaultOptions", "getDefaultOptions", "startOfWeek", "date", "options", "defaultOptions", "getDefaultOptions", "weekStartsOn", "_date", "toDate", "day", "diff", "startOfDay", "date", "_date", "toDate", "getTimezoneOffsetInMilliseconds", "date", "_date", "toDate", "utcDate", "differenceInCalendarDays", "dateLeft", "dateRight", "startOfDayLeft", "startOfDay", "startOfDayRight", "timestampLeft", "getTimezoneOffsetInMilliseconds", "timestampRight", "millisecondsInDay", "differenceInCalendarMonths", "dateLeft", "dateRight", "_dateLeft", "toDate", "_dateRight", "yearDiff", "monthDiff", "getQuarter", "date", "_date", "toDate", "differenceInCalendarQuarters", "dateLeft", "dateRight", "_dateLeft", "toDate", "_dateRight", "yearDiff", "quarterDiff", "getQuarter", "differenceInCalendarWeeks", "dateLeft", "dateRight", "options", "startOfWeekLeft", "startOfWeek", "startOfWeekRight", "timestampLeft", "getTimezoneOffsetInMilliseconds", "timestampRight", "millisecondsInWeek", "differenceInCalendarYears", "dateLeft", "dateRight", "_dateLeft", "toDate", "_dateRight", "getRoundingMethod", "method", "number", "result", "differenceInMilliseconds", "dateLeft", "dateRight", "toDate", "differenceInHours", "dateLeft", "dateRight", "options", "diff", "differenceInMilliseconds", "millisecondsInHour", "getRoundingMethod", "differenceInMinutes", "dateLeft", "dateRight", "options", "diff", "differenceInMilliseconds", "millisecondsInMinute", "getRoundingMethod", "differenceInSeconds", "dateLeft", "dateRight", "options", "diff", "differenceInMilliseconds", "getRoundingMethod", "intlFormatDistance", "date", "baseDate", "options", "value", "unit", "dateLeft", "toDate", "dateRight", "differenceInSeconds", "differenceInMinutes", "differenceInHours", "differenceInCalendarDays", "differenceInCalendarWeeks", "differenceInCalendarMonths", "differenceInCalendarQuarters", "differenceInCalendarYears", "diffInSeconds", "secondsInMinute", "secondsInHour", "secondsInDay", "secondsInWeek", "secondsInMonth", "secondsInQuarter", "secondsInYear", "formatMessageTime", "dateUTC", "currentDateUTC", "locale", "intlFormatDistance", "stringify", "values", "options", "settings", "nameRe", "nameReJsx", "emptyOptions", "name", "options", "emptyOptions", "nameReJsx", "nameRe", "re", "whitespace", "thing", "empty", "value", "Schema", "property", "normal", "space", "merge", "definitions", "space", "property", "normal", "definition", "Schema", "normalize", "value", "Info", "property", "attribute", "types_exports", "__export", "boolean", "booleanish", "commaOrSpaceSeparated", "commaSeparated", "number", "overloadedBoolean", "spaceSeparated", "powers", "increment", "checks", "types_exports", "DefinedInfo", "Info", "property", "attribute", "mask", "space", "index", "mark", "check", "values", "key", "value", "create", "definition", "properties", "normals", "property", "value", "info", "DefinedInfo", "normalize", "Schema", "aria", "create", "booleanish", "number", "spaceSeparated", "_", "property", "caseSensitiveTransform", "attributes", "attribute", "caseInsensitiveTransform", "attributes", "property", "caseSensitiveTransform", "html", "create", "commaSeparated", "spaceSeparated", "boolean", "number", "booleanish", "overloadedBoolean", "caseInsensitiveTransform", "svg", "create", "commaOrSpaceSeparated", "number", "spaceSeparated", "boolean", "commaSeparated", "caseSensitiveTransform", "xlink", "create", "_", "property", "xmlns", "create", "caseInsensitiveTransform", "xml", "create", "_", "property", "hastToReact", "cap", "dash", "valid", "find", "schema", "value", "normal", "normalize", "property", "Type", "Info", "rest", "camelcase", "dashes", "kebab", "DefinedInfo", "$0", "html", "merge", "aria", "xlink", "xmlns", "xml", "svg", "stringify", "values", "import_style_to_js", "pointEnd", "point", "pointStart", "type", "node", "position", "start", "end", "stringifyPosition", "value", "position", "point", "index", "pos", "VFileMessage", "causeOrReason", "optionsOrParentOrPlace", "origin", "reason", "options", "legacyCause", "index", "parent", "start", "stringifyPosition", "own", "emptyMap", "cap", "tableElements", "tableCellElement", "docs", "toJsxRuntime", "tree", "options", "filePath", "create", "developmentCreate", "productionCreate", "state", "svg", "html", "result", "one", "node", "key", "element", "mdxExpression", "mdxJsxElement", "mdxEsm", "root", "text", "parentSchema", "schema", "type", "findComponentFromName", "props", "createElementProps", "children", "createChildren", "child", "whitespace", "addNode", "addChildren", "expression", "crashEstree", "createJsxElementProps", "_", "value", "jsx", "jsxs", "fn", "jsxDEV", "isStaticChildren", "point", "pointStart", "alignValue", "prop", "createProperty", "style", "attribute", "objectExpression", "property", "name", "index", "countsByName", "count", "info", "find", "stringify", "styleObject", "parseStyle", "transformStylesToCssCasing", "hastToReact", "styleToJs", "error", "cause", "message", "VFileMessage", "allowExpression", "identifiers", "place", "domCasing", "cssCasing", "from", "transformStyleToCssCasing", "to", "toDash", "$0", "urlAttributes", "import_jsx_runtime", "import_react", "emptyOptions", "toString", "value", "options", "settings", "includeImageAlt", "includeHtml", "one", "node", "all", "values", "result", "index", "element", "decodeNamedCharacterReference", "value", "characterReference", "character", "splice", "list", "start", "remove", "items", "end", "chunkStart", "parameters", "push", "hasOwnProperty", "combineExtensions", "extensions", "all", "index", "syntaxExtension", "extension", "hook", "left", "right", "code", "value", "constructs", "existing", "list", "before", "splice", "decodeNumericCharacterReference", "value", "base", "code", "normalizeIdentifier", "value", "asciiAlpha", "regexCheck", "asciiAlphanumeric", "asciiAtext", "asciiControl", "code", "asciiDigit", "asciiHexDigit", "asciiPunctuation", "markdownLineEnding", "markdownLineEndingOrSpace", "markdownSpace", "unicodePunctuation", "unicodeWhitespace", "regex", "check", "normalizeUri", "value", "result", "index", "start", "skip", "code", "replace", "asciiAlphanumeric", "next", "factorySpace", "effects", "ok", "type", "max", "limit", "size", "start", "code", "markdownSpace", "prefix", "content", "initializeContent", "effects", "contentStart", "afterContentStartConstruct", "paragraphInitial", "previous", "code", "factorySpace", "lineStart", "token", "data", "markdownLineEnding", "document", "initializeDocument", "containerConstruct", "tokenizeContainer", "effects", "self", "stack", "continued", "childFlow", "childToken", "lineStartOffset", "start", "code", "item", "documentContinue", "checkNewContainers", "closeFlow", "indexBeforeExits", "indexBeforeFlow", "point", "exitContainers", "index", "splice", "documentContinued", "flowStart", "thereIsANewContainer", "thereIsNoNewContainer", "containerContinue", "flowContinue", "writeToChild", "markdownLineEnding", "token", "endOfFile", "stream", "seen", "size", "entry", "ok", "nok", "factorySpace", "classifyCharacter", "code", "markdownLineEndingOrSpace", "unicodeWhitespace", "unicodePunctuation", "resolveAll", "constructs", "events", "context", "called", "index", "resolve", "attention", "resolveAllAttention", "tokenizeAttention", "events", "context", "index", "open", "group", "text", "openingSequence", "closingSequence", "use", "nextEvents", "offset", "start", "end", "movePoint", "push", "resolveAll", "splice", "effects", "ok", "attentionMarkers", "previous", "before", "classifyCharacter", "marker", "code", "inside", "token", "after", "close", "point", "autolink", "tokenizeAutolink", "effects", "ok", "nok", "size", "start", "code", "open", "asciiAlpha", "schemeOrEmailAtext", "emailAtext", "asciiAlphanumeric", "schemeInsideOrEmailAtext", "urlInside", "asciiControl", "emailAtSignOrDot", "asciiAtext", "emailLabel", "emailValue", "next", "blankLine", "tokenizeBlankLine", "effects", "ok", "nok", "start", "code", "markdownSpace", "factorySpace", "after", "markdownLineEnding", "blockQuote", "tokenizeBlockQuoteContinuation", "exit", "tokenizeBlockQuoteStart", "effects", "ok", "nok", "self", "start", "code", "state", "after", "markdownSpace", "contStart", "factorySpace", "contBefore", "characterEscape", "tokenizeCharacterEscape", "effects", "ok", "nok", "start", "code", "inside", "asciiPunctuation", "characterReference", "tokenizeCharacterReference", "effects", "ok", "nok", "self", "size", "max", "test", "start", "code", "open", "numeric", "asciiAlphanumeric", "value", "asciiHexDigit", "asciiDigit", "token", "decodeNamedCharacterReference", "nonLazyContinuation", "tokenizeNonLazyContinuation", "codeFenced", "tokenizeCodeFenced", "effects", "ok", "nok", "self", "closeStart", "tokenizeCloseStart", "initialPrefix", "sizeOpen", "marker", "start", "code", "beforeSequenceOpen", "tail", "sequenceOpen", "markdownSpace", "factorySpace", "infoBefore", "markdownLineEnding", "atNonLazyBreak", "after", "info", "metaBefore", "meta", "contentBefore", "contentStart", "beforeContentChunk", "contentChunk", "size", "startBefore", "beforeSequenceClose", "sequenceClose", "sequenceCloseAfter", "lineStart", "codeIndented", "tokenizeCodeIndented", "furtherStart", "tokenizeFurtherStart", "effects", "ok", "nok", "self", "start", "code", "factorySpace", "afterPrefix", "tail", "atBreak", "after", "markdownLineEnding", "inside", "codeText", "previous", "resolveCodeText", "tokenizeCodeText", "events", "tailExitIndex", "headEnterIndex", "index", "enter", "code", "effects", "ok", "nok", "self", "sizeOpen", "size", "token", "start", "sequenceOpen", "between", "sequenceClose", "markdownLineEnding", "data", "SpliceBuffer", "initial", "index", "start", "end", "stop", "deleteCount", "items", "count", "removed", "chunkedPush", "item", "n", "list", "right", "chunkStart", "subtokenize", "eventsArray", "jumps", "index", "event", "lineIndex", "otherIndex", "otherEvent", "parameters", "subevents", "more", "events", "SpliceBuffer", "subcontent", "splice", "eventIndex", "token", "context", "startPosition", "startPositions", "tokenizer", "childEvents", "gaps", "stream", "previous", "current", "adjust", "start", "breaks", "slice", "content", "resolveContent", "tokenizeContent", "continuationConstruct", "tokenizeContinuation", "events", "subtokenize", "effects", "ok", "previous", "chunkStart", "code", "chunkInside", "contentEnd", "markdownLineEnding", "contentContinue", "nok", "self", "startLookahead", "factorySpace", "prefixed", "tail", "factoryDestination", "effects", "ok", "nok", "type", "literalType", "literalMarkerType", "rawType", "stringType", "max", "limit", "balance", "start", "code", "enclosedBefore", "asciiControl", "raw", "enclosed", "markdownLineEnding", "enclosedEscape", "markdownLineEndingOrSpace", "rawEscape", "factoryLabel", "effects", "ok", "nok", "type", "markerType", "stringType", "self", "size", "seen", "start", "code", "atBreak", "markdownLineEnding", "labelInside", "markdownSpace", "labelEscape", "factoryTitle", "effects", "ok", "nok", "type", "markerType", "stringType", "marker", "start", "code", "begin", "atBreak", "markdownLineEnding", "factorySpace", "inside", "escape", "factoryWhitespace", "effects", "ok", "seen", "start", "code", "markdownLineEnding", "markdownSpace", "factorySpace", "definition", "tokenizeDefinition", "titleBefore", "tokenizeTitleBefore", "effects", "ok", "nok", "self", "identifier", "start", "code", "before", "factoryLabel", "labelAfter", "normalizeIdentifier", "markerAfter", "markdownLineEndingOrSpace", "factoryWhitespace", "destinationBefore", "factoryDestination", "destinationAfter", "after", "markdownSpace", "factorySpace", "afterWhitespace", "markdownLineEnding", "beforeMarker", "factoryTitle", "titleAfter", "titleAfterOptionalWhitespace", "hardBreakEscape", "tokenizeHardBreakEscape", "effects", "ok", "nok", "start", "code", "after", "markdownLineEnding", "headingAtx", "resolveHeadingAtx", "tokenizeHeadingAtx", "events", "context", "contentEnd", "contentStart", "content", "text", "splice", "effects", "ok", "nok", "size", "start", "code", "before", "sequenceOpen", "markdownLineEndingOrSpace", "atBreak", "sequenceFurther", "markdownLineEnding", "markdownSpace", "factorySpace", "data", "htmlBlockNames", "htmlRawNames", "htmlFlow", "resolveToHtmlFlow", "tokenizeHtmlFlow", "blankLineBefore", "tokenizeBlankLineBefore", "nonLazyContinuationStart", "tokenizeNonLazyContinuationStart", "events", "index", "effects", "ok", "nok", "self", "marker", "closingTag", "buffer", "markerB", "start", "code", "before", "open", "declarationOpen", "tagCloseStart", "continuationDeclarationInside", "asciiAlpha", "tagName", "commentOpenInside", "cdataOpenInside", "value", "continuation", "markdownLineEndingOrSpace", "slash", "name", "htmlRawNames", "htmlBlockNames", "basicSelfClosing", "completeClosingTagAfter", "completeAttributeNameBefore", "asciiAlphanumeric", "markdownSpace", "completeEnd", "completeAttributeName", "completeAttributeNameAfter", "completeAttributeValueBefore", "completeAttributeValueQuoted", "completeAttributeValueUnquoted", "completeAttributeValueQuotedAfter", "markdownLineEnding", "completeAfter", "continuationCommentInside", "continuationRawTagOpen", "continuationClose", "continuationCdataInside", "continuationAfter", "continuationStart", "continuationStartNonLazy", "continuationBefore", "continuationRawEndTag", "after", "blankLine", "htmlText", "tokenizeHtmlText", "effects", "ok", "nok", "self", "marker", "index", "returnState", "start", "code", "open", "declarationOpen", "tagCloseStart", "instruction", "asciiAlpha", "tagOpen", "commentOpenInside", "cdataOpenInside", "declaration", "commentEnd", "comment", "commentClose", "markdownLineEnding", "lineEndingBefore", "end", "value", "cdata", "cdataClose", "cdataEnd", "instructionClose", "tagClose", "asciiAlphanumeric", "tagCloseBetween", "markdownSpace", "markdownLineEndingOrSpace", "tagOpenBetween", "tagOpenAttributeName", "tagOpenAttributeNameAfter", "tagOpenAttributeValueBefore", "tagOpenAttributeValueQuoted", "tagOpenAttributeValueUnquoted", "tagOpenAttributeValueQuotedAfter", "lineEndingAfter", "factorySpace", "lineEndingAfterPrefix", "labelEnd", "resolveAllLabelEnd", "resolveToLabelEnd", "tokenizeLabelEnd", "resourceConstruct", "tokenizeResource", "referenceFullConstruct", "tokenizeReferenceFull", "referenceCollapsedConstruct", "tokenizeReferenceCollapsed", "events", "index", "newEvents", "token", "offset", "splice", "context", "open", "close", "media", "group", "label", "text", "push", "resolveAll", "effects", "ok", "nok", "self", "labelStart", "defined", "start", "code", "labelEndNok", "normalizeIdentifier", "after", "labelEndOk", "referenceNotFull", "resourceStart", "resourceBefore", "markdownLineEndingOrSpace", "factoryWhitespace", "resourceOpen", "resourceEnd", "factoryDestination", "resourceDestinationAfter", "resourceDestinationMissing", "resourceBetween", "factoryTitle", "resourceTitleAfter", "referenceFull", "factoryLabel", "referenceFullAfter", "referenceFullMissing", "referenceCollapsedStart", "referenceCollapsedOpen", "labelStartImage", "labelEnd", "tokenizeLabelStartImage", "effects", "ok", "nok", "self", "start", "code", "open", "after", "labelStartLink", "labelEnd", "tokenizeLabelStartLink", "effects", "ok", "nok", "self", "start", "code", "after", "lineEnding", "tokenizeLineEnding", "effects", "ok", "start", "code", "factorySpace", "thematicBreak", "tokenizeThematicBreak", "effects", "ok", "nok", "size", "marker", "start", "code", "before", "atBreak", "sequence", "markdownLineEnding", "markdownSpace", "factorySpace", "list", "tokenizeListContinuation", "tokenizeListEnd", "tokenizeListStart", "listItemPrefixWhitespaceConstruct", "tokenizeListItemPrefixWhitespace", "indentConstruct", "tokenizeIndent", "effects", "ok", "nok", "self", "tail", "initialSize", "size", "start", "code", "kind", "asciiDigit", "thematicBreak", "atMarker", "inside", "blankLine", "onBlank", "endOfPrefix", "otherPrefix", "markdownSpace", "notBlank", "factorySpace", "notInCurrentItem", "afterPrefix", "setextUnderline", "resolveToSetextUnderline", "tokenizeSetextUnderline", "events", "context", "index", "content", "text", "definition", "heading", "effects", "ok", "nok", "self", "marker", "start", "code", "paragraph", "before", "inside", "markdownSpace", "factorySpace", "after", "markdownLineEnding", "flow", "initializeFlow", "effects", "self", "initial", "blankLine", "atBlankEnding", "afterConstruct", "factorySpace", "content", "code", "resolver", "createResolver", "string", "initializeFactory", "text", "field", "resolveAllLineSuffixes", "initializeText", "effects", "self", "constructs", "start", "notText", "code", "atBreak", "data", "list", "index", "item", "extraResolver", "resolveAllText", "events", "context", "enter", "eventIndex", "chunks", "bufferIndex", "size", "tabs", "chunk", "token", "constructs_exports", "__export", "attentionMarkers", "contentInitial", "disable", "document", "flow", "flowInitial", "insideSpan", "string", "text", "document", "list", "blockQuote", "contentInitial", "definition", "flowInitial", "codeIndented", "flow", "headingAtx", "thematicBreak", "setextUnderline", "htmlFlow", "codeFenced", "string", "characterReference", "characterEscape", "text", "lineEnding", "labelStartImage", "attention", "autolink", "htmlText", "labelStartLink", "hardBreakEscape", "labelEnd", "codeText", "insideSpan", "resolver", "attentionMarkers", "disable", "createTokenizer", "parser", "initialize", "from", "point", "columnStart", "resolveAllConstructs", "chunks", "stack", "consumed", "effects", "constructFactory", "onsuccessfulconstruct", "onsuccessfulcheck", "consume", "enter", "exit", "context", "defineSkip", "now", "sliceSerialize", "sliceStream", "write", "state", "expectedCode", "slice", "push", "main", "addResult", "resolveAll", "token", "expandTabs", "serializeChunks", "sliceChunks", "_bufferIndex", "_index", "line", "column", "offset", "value", "accountForPotentialSkip", "chunkIndex", "chunk", "go", "code", "markdownLineEnding", "type", "fields", "construct", "info", "_", "onreturn", "hook", "constructs", "returnState", "bogusState", "listOfConstructs", "constructIndex", "currentConstruct", "handleListOfConstructs", "handleMapOfConstructs", "map", "start", "left", "all", "list", "handleConstruct", "store", "nok", "ok", "splice", "startPoint", "startPrevious", "startCurrentConstruct", "startEventsIndex", "startStack", "restore", "startIndex", "startBufferIndex", "endIndex", "endBufferIndex", "view", "head", "index", "result", "atTab", "parse", "options", "parser", "combineExtensions", "constructs_exports", "create", "content", "document", "flow", "string", "text", "initial", "creator", "from", "createTokenizer", "postprocess", "events", "subtokenize", "search", "preprocess", "column", "buffer", "start", "atCarriageReturn", "preprocessor", "value", "encoding", "end", "chunks", "match", "next", "startPosition", "endPosition", "code", "characterEscapeOrReference", "decodeString", "value", "decode", "$0", "$1", "$2", "head", "hex", "decodeNumericCharacterReference", "decodeNamedCharacterReference", "own", "fromMarkdown", "value", "encoding", "options", "compiler", "postprocess", "parse", "preprocess", "config", "opener", "link", "onenterdata", "heading", "blockQuote", "codeFlow", "buffer", "codeText", "definition", "emphasis", "hardBreak", "html", "image", "listItem", "onenterlistitemvalue", "list", "onenterlistordered", "paragraph", "onenterreference", "strong", "thematicBreak", "closer", "onexitatxheadingsequence", "onexitautolinkemail", "onexitautolinkprotocol", "onexitdata", "onexitcharacterreferencemarker", "onexitcharacterreferencevalue", "onexitcharacterreference", "onexitcodefenced", "onexitcodefencedfence", "onexitcodefencedfenceinfo", "onexitcodefencedfencemeta", "onexitcodeindented", "onexitcodetext", "onexitdefinitiondestinationstring", "onexitdefinitionlabelstring", "onexitdefinitiontitlestring", "onexithardbreak", "onexithtmlflow", "onexithtmltext", "onexitimage", "onexitlabel", "onexitlabeltext", "onexitlineending", "onexitlink", "onexitreferencestring", "onexitresourcedestinationstring", "onexitresourcetitlestring", "onexitresource", "onexitsetextheading", "onexitsetextheadinglinesequence", "onexitsetextheadingtext", "configure", "data", "compile", "events", "tree", "context", "enter", "exit", "resume", "listStack", "index", "tail", "prepareList", "handler", "defaultOnError", "point", "start", "length", "containerBalance", "listSpread", "lineIndex", "firstBlankLineIndex", "atMarker", "event", "tailIndex", "tailEvent", "item", "create", "and", "open", "token", "node", "errorHandler", "close", "onExitError", "stringifyPosition", "toString", "ancestor", "label", "normalizeIdentifier", "depth", "siblings", "text", "referenceType", "string", "decodeString", "fragment", "children", "type", "decodeNumericCharacterReference", "decodeNamedCharacterReference", "d", "combined", "extensions", "extension", "key", "right", "left", "remarkParse", "options", "self", "parser", "doc", "fromMarkdown", "blockquote", "state", "node", "result", "hardBreak", "state", "node", "result", "code", "state", "node", "value", "properties", "language", "result", "strikethrough", "state", "node", "result", "emphasis", "state", "node", "result", "footnoteReference", "state", "node", "clobberPrefix", "id", "safeId", "normalizeUri", "index", "counter", "reuseCounter", "link", "sup", "heading", "state", "node", "result", "html", "state", "node", "result", "revert", "state", "node", "subtype", "suffix", "contents", "head", "tail", "imageReference", "state", "node", "id", "definition", "revert", "properties", "normalizeUri", "result", "image", "state", "node", "properties", "normalizeUri", "result", "inlineCode", "state", "node", "text", "result", "linkReference", "state", "node", "id", "definition", "revert", "properties", "normalizeUri", "result", "link", "state", "node", "properties", "normalizeUri", "result", "listItem", "state", "node", "parent", "results", "loose", "listLoose", "listItemLoose", "properties", "children", "head", "paragraph", "index", "child", "tail", "result", "spread", "list", "state", "node", "properties", "results", "index", "child", "result", "paragraph", "state", "node", "result", "root", "state", "node", "result", "strong", "state", "node", "result", "table", "state", "node", "rows", "firstRow", "tableContent", "head", "body", "start", "pointStart", "end", "pointEnd", "result", "tableRow", "state", "node", "parent", "siblings", "tagName", "align", "length", "cellIndex", "cells", "cell", "properties", "alignValue", "result", "tableCell", "state", "node", "result", "trimLines", "value", "source", "search", "match", "last", "lines", "trimLine", "start", "end", "startIndex", "endIndex", "code", "text", "state", "node", "result", "trimLines", "thematicBreak", "state", "node", "result", "handlers", "blockquote", "hardBreak", "code", "strikethrough", "emphasis", "footnoteReference", "heading", "html", "imageReference", "image", "inlineCode", "linkReference", "link", "listItem", "list", "paragraph", "root", "strong", "table", "tableCell", "tableRow", "text", "thematicBreak", "ignore", "env", "deserializer", "$", "_", "as", "out", "index", "unpair", "type", "value", "arr", "object", "key", "source", "flags", "map", "set", "name", "message", "buffer", "deserialize", "serialized", "EMPTY", "toString", "keys", "typeOf", "value", "type", "asString", "shouldSkip", "TYPE", "serializer", "strict", "json", "$", "_", "as", "out", "index", "pair", "entry", "spread", "arr", "entries", "key", "source", "flags", "message", "serialize", "lossy", "esm_default", "any", "options", "deserialize", "serialize", "defaultFootnoteBackContent", "_", "rereferenceIndex", "result", "defaultFootnoteBackLabel", "referenceIndex", "footer", "state", "clobberPrefix", "footnoteBackContent", "footnoteBackLabel", "footnoteLabel", "footnoteLabelTagName", "footnoteLabelProperties", "listItems", "definition", "content", "id", "safeId", "normalizeUri", "backReferences", "counts", "children", "tail", "tailTail", "listItem", "esm_default", "convert", "test", "ok", "castFactory", "anyFactory", "propertiesFactory", "typeFactory", "tests", "checks", "index", "any", "parameters", "check", "checkAsRecord", "all", "node", "nodeAsRecord", "key", "type", "testFunction", "value", "parent", "looksLikeANode", "empty", "CONTINUE", "EXIT", "SKIP", "visitParents", "tree", "test", "visitor", "reverse", "check", "is", "convert", "step", "factory", "node", "index", "parents", "value", "name", "visit", "result", "subresult", "offset", "grandparents", "toResult", "nodeAsParent", "child", "visit", "tree", "testOrVisitor", "visitorOrReverse", "maybeReverse", "reverse", "test", "visitor", "visitParents", "overload", "node", "parents", "parent", "index", "own", "emptyOptions", "createState", "tree", "options", "settings", "definitionById", "footnoteById", "footnoteCounts", "handlers", "state", "all", "applyData", "one", "patch", "wrap", "visit", "node", "map", "id", "parent", "type", "handle", "children", "shallow", "result", "esm_default", "defaultUnknownHandler", "values", "nodes", "index", "trimMarkdownSpaceStart", "head", "from", "to", "position", "hName", "hChildren", "hProperties", "data", "loose", "value", "code", "toHast", "tree", "options", "state", "createState", "node", "foot", "footer", "result", "remarkRehype", "destination", "options", "tree", "file", "hastTree", "toHast", "bail", "error", "import_extend", "isPlainObject", "value", "prototype", "trough", "fns", "pipeline", "run", "use", "values", "middlewareIndex", "callback", "next", "error", "output", "fn", "index", "wrap", "middelware", "middleware", "called", "wrapped", "parameters", "fnExpectsCallback", "result", "done", "exception", "then", "value", "minpath", "basename", "dirname", "extname", "join", "path", "assertPath", "start", "end", "index", "seenNonSlash", "firstNonSlashEnd", "extnameIndex", "unmatchedSlash", "startPart", "startDot", "preDotState", "code", "segments", "joined", "normalize", "absolute", "value", "normalizeString", "allowAboveRoot", "result", "lastSegmentLength", "lastSlash", "dots", "lastSlashIndex", "minproc", "cwd", "isUrl", "fileUrlOrPath", "urlToPath", "path", "isUrl", "error", "getPathFromURLPosix", "url", "pathname", "index", "third", "order", "VFile", "value", "options", "isUrl", "isUint8Array", "minproc", "index", "field", "minpath", "basename", "assertNonEmpty", "assertPart", "dirname", "assertPath", "extname", "path", "urlToPath", "stem", "causeOrReason", "optionsOrParentOrPlace", "origin", "message", "VFileMessage", "encoding", "part", "name", "CallableInstance", "property", "proto", "value", "apply", "own", "Processor", "_Processor", "CallableInstance", "trough", "destination", "index", "attacher", "extend", "key", "value", "assertUnfrozen", "self", "options", "transformer", "file", "realFile", "vfile", "parser", "assertParser", "done", "assertCompiler", "executor", "resolve", "reject", "parseTree", "error", "tree", "realDone", "compileTree", "compileResult", "looksLikeAValue", "complete", "result", "assertDone", "bail", "assertNode", "transformers", "outputTree", "resultingTree", "compiler", "parameters", "attachers", "namespace", "addPlugin", "addList", "addPreset", "add", "plugin", "plugins", "thing", "entryIndex", "primary", "rest", "currentPrimary", "isPlainObject", "unified", "name", "frozen", "node", "asyncName", "looksLikeAVFile", "VFile", "isUint8Array", "changelog", "emptyPlugins", "emptyRemarkRehypeOptions", "safeProtocol", "deprecations", "Markdown", "options", "processor", "createProcessor", "file", "createFile", "post", "createProcessor", "options", "rehypePlugins", "emptyPlugins", "remarkPlugins", "remarkRehypeOptions", "emptyRemarkRehypeOptions", "unified", "remarkParse", "remarkRehype", "createFile", "children", "file", "VFile", "post", "tree", "allowedElements", "allowElement", "components", "disallowedElements", "skipHtml", "unwrapDisallowed", "urlTransform", "defaultUrlTransform", "deprecation", "deprecations", "changelog", "visit", "transform", "toJsxRuntime", "node", "index", "parent", "key", "urlAttributes", "value", "test", "remove", "colon", "questionMark", "numberSign", "slash", "safeProtocol", "messageTypes", "MessageBalloon", "data", "currentDateUTC", "messageType", "texts", "useChatbotTexts", "locale", "makeQuestion", "useChatbot_default", "isHovered", "setIsHovered", "showTooltip", "setShowTooltip", "copied", "setCopied", "copyTimeoutRef", "handleCopy", "prev", "err", "handleShare", "handleResend", "React", "Wrapper", "Label", "BalloonAndActionsWrapper", "BalloonContainer", "Balloon", "CircleExclamationIcon", "Markdown", "TimestampAndActionsRow", "ActionsContainer", "ActionButton", "RotateCw", "Tooltip", "Copy", "Share2", "Time", "formatMessageTime", "MessageBalloon_default", "import_react", "dotAnimation", "lt", "Dots", "at", "Dot", "props", "Text", "Balloon", "Label", "Wrapper", "WritingIndicator", "texts", "useChatbotTexts", "locale", "useChatbot", "React", "Wrapper", "Label", "Balloon", "Text", "Dots", "Dot", "WritingIndicator_default", "import_react", "useElementScroll", "elementRef", "scrollProgress", "setScrollProgress", "calculateScrollPercentage", "element", "elementHeight", "elementScrollHeight", "scrollTop", "scrollableHeight", "scrolled", "progressValue", "handleIntersection", "handleScroll", "intersectionObserver", "import_react", "useUpdatedTime", "intervalInSeconds", "date", "setDate", "time", "interval", "import_react", "QuestionButton", "at", "Button", "props", "QuestionListItem", "QuestionList", "Title", "Wrapper", "SuggestedQuestions", "texts", "useChatbotTexts", "suggestedQuestions", "makeQuestion", "useChatbot_default", "React", "Wrapper", "Title", "QuestionList", "question", "QuestionListItem", "QuestionButton", "SuggestedQuestions_default", "ChatbotBody", "chatMessages", "suggestedQuestions", "loading", "initializationStatus", "domainAllowed", "useChatbot", "i18n", "useI18n", "scrollableElementRef", "scrollProgress", "scrollToEnd", "useElementScroll", "dateUTC", "useUpdatedTime", "showDomainError", "showInitError", "showLoading", "CUSTOM_EVENT_NAMES", "React", "Wrapper", "MessagesList", "WritingIndicator_default", "errorMessage", "MessageBalloon_default", "msgData", "SuggestedQuestions_default", "ChatbotBody_default", "import_react", "LoadingSuggestedQuestions", "at", "props", "Form", "Wrapper", "ChatbotFooter", "makeQuestion", "loading", "writing", "suggestedQuestions", "useChatbot_default", "questionInput", "setQuestionInput", "wrapperRef", "texts", "useChatbotTexts", "handleSubmit", "e", "questionToSend", "textarea", "handleKeyDown", "form", "React", "Wrapper", "LoadingSuggestedQuestions", "Spinner", "Form", "TextArea", "IconButton", "ArrowUpIcon", "ChatbotFooter_default", "ButtonWrapper", "at", "p", "props", "rt", "screens", "import_react", "DEFAULT_BAR_HEIGHT", "ChatbotToggle", "verticalPosition", "openedProp", "pushContentDown", "pushContentDownBarHeight", "openedContext", "openedToggle", "themeMode", "useChatbot_default", "opened", "texts", "useChatbotTexts", "toggleText", "React", "ButtonWrapper", "BotIcon", "ChevronUpIcon", "ChevronDownIcon", "ChatbotToggle_default", "import_react", "ActionRow", "at", "props", "VersionLabel", "ActionButtons", "Form", "Description", "Title", "Box", "CardBase", "Wrapper", "rt", "package_default", "CHATBOT_VERSION", "package_default", "ChatUserFeedbackRating", "chatFeedbackBox", "chatbot", "useChatbot_default", "ratingValue", "setRatingValue", "descriptionValue", "setDescriptionValue", "texts", "useChatbotTexts", "handleSubmit", "e", "React", "Wrapper", "Box", "Title", "Description", "Form", "RatingStars", "TextArea", "ActionRow", "CHATBOT_VERSION", "VersionLabel", "ActionButtons", "Button", "import_react", "useChatFeedbackBox", "apiURL", "locale", "publicHash", "visitorId", "useChatbot_default", "rated", "setRated", "opened", "setOpened", "loading", "setLoading", "ratingScore", "description", "sendUserChatFeedback", "DEFAULT_PUSH_DOWN_BAR_HEIGHT", "ChatbotDevice", "verticalPosition", "pushContentDown", "horizontalPosition", "pushContentDownBarHeight", "opened", "useChatbot_default", "chatFeedbackBox", "useChatFeedbackBox", "barH", "React", "Wrapper", "ChatUserFeedbackRating", "ChatbotHeader_default", "ChatbotBody_default", "ChatbotFooter_default", "ChatbotToggle_default", "ChatbotDevice_default", "BarContainer", "at", "Container", "breakpoints", "props", "rt", "screens", "pos", "PushDownRow", "p", "Wrapper", "barH", "topVal", "import_react", "import_react_dom", "PUSH_DOWN_ROW_BG_LIGHT", "PUSH_DOWN_ROW_BG_DARK", "PUSH_DOWN_BAR_HEIGHT_PX", "BODY_CLASS_PUSH_DOWN", "BODY_CSS_VAR_BAR_HEIGHT", "ChatbotBar", "verticalPosition", "horizontalPosition", "deviceHorizontalPosition", "zIndex", "topOffset", "aboveHeader", "pushContentDown", "pushContentDownRowBackgroundLight", "pushContentDownRowBackgroundDark", "pushContentDownBarHeight", "barHeightPx", "opened", "theme", "useChatbot_default", "pushDownRowBackground", "portalContainer", "setPortalContainer", "calculatedZIndex", "container", "usePushDown", "body", "content", "React", "Wrapper", "PushDownRow", "BarContainer", "ChatbotDevice_default", "POSITION_MAP", "DEFAULT_CONFIG", "getConfigFromDataAttributes", "script", "config", "apiUrl", "publicHash", "locale", "theme", "position", "colorsJson", "icon", "textsJson", "resolveConfig", "globalConfig", "dataConfig", "merged", "rootElement", "reactRoot", "init", "configOverride", "scriptEl", "verticalPosition", "horizontalPosition", "containerId", "container", "usePushDown", "React", "ChatbotProvider", "ChatbotBar", "destroy", "mountEmbed", "currentScript"]
7
+ }