@vacano/ui 1.12.1 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/README.md +6 -5
  2. package/dist/ToggleGroup-DCWH4ngK.cjs +1283 -0
  3. package/dist/ToggleGroup-DCWH4ngK.cjs.map +1 -0
  4. package/dist/ToggleGroup-DYePk1bM.js +3935 -0
  5. package/dist/ToggleGroup-DYePk1bM.js.map +1 -0
  6. package/dist/{X-BIgkmQPR.cjs → X-CI1qRJDP.cjs} +4 -4
  7. package/dist/X-CI1qRJDP.cjs.map +1 -0
  8. package/dist/{X-Dyq6IJZW.js → X-Cm-i8Bh7.js} +195 -219
  9. package/dist/X-Cm-i8Bh7.js.map +1 -0
  10. package/dist/form.cjs +2 -0
  11. package/dist/form.cjs.map +1 -0
  12. package/dist/form.d.ts +540 -0
  13. package/dist/form.js +428 -0
  14. package/dist/form.js.map +1 -0
  15. package/dist/icons.cjs +1 -1
  16. package/dist/icons.cjs.map +1 -1
  17. package/dist/icons.js +1253 -1230
  18. package/dist/icons.js.map +1 -1
  19. package/dist/index-Abn5L42P.js +42 -0
  20. package/dist/index-Abn5L42P.js.map +1 -0
  21. package/dist/index-GSZAZ6Cz.cjs +2 -0
  22. package/dist/index-GSZAZ6Cz.cjs.map +1 -0
  23. package/dist/index.cjs +235 -1393
  24. package/dist/index.cjs.map +1 -1
  25. package/dist/index.d.ts +126 -43
  26. package/dist/index.js +1324 -4875
  27. package/dist/index.js.map +1 -1
  28. package/dist/{media-CWK1OED-.js → keyboard-D00e_brg.js} +63 -66
  29. package/dist/keyboard-D00e_brg.js.map +1 -0
  30. package/dist/{media-BuwIclXE.cjs → keyboard-D8zOi0jU.cjs} +3 -3
  31. package/dist/keyboard-D8zOi0jU.cjs.map +1 -0
  32. package/dist/lib.cjs +1 -1
  33. package/dist/lib.d.ts +38 -0
  34. package/dist/lib.js +15 -13
  35. package/dist/lib.js.map +1 -1
  36. package/package.json +25 -3
  37. package/dist/X-BIgkmQPR.cjs.map +0 -1
  38. package/dist/X-Dyq6IJZW.js.map +0 -1
  39. package/dist/media-BuwIclXE.cjs.map +0 -1
  40. package/dist/media-CWK1OED-.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToggleGroup-DYePk1bM.js","sources":["../node_modules/.pnpm/@babel+runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/.pnpm/@emotion+is-prop-valid@1.4.0/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../node_modules/.pnpm/@emotion+styled@11.14.1_@emotion+react@11.14.0_@types+react@19.2.7_react@19.2.3__@types+react@19.2.7_react@19.2.3/node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../node_modules/.pnpm/@emotion+styled@11.14.1_@emotion+react@11.14.0_@types+react@19.2.7_react@19.2.3__@types+react@19.2.7_react@19.2.3/node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../src/components/FieldLabel/styled.ts","../src/components/FieldLabel/FieldLabel.tsx","../src/components/FieldMessage/styled.ts","../src/components/FieldMessage/FieldMessage.tsx","../src/components/Autocomplete/styled.ts","../src/components/Spinner/constants.ts","../src/components/Spinner/helpers.ts","../src/components/Spinner/styled.ts","../src/components/Spinner/Spinner.tsx","../src/components/Autocomplete/Autocomplete.tsx","../src/components/Button/constants.ts","../src/components/Button/helpers.ts","../src/components/Button/styled.ts","../src/components/KeysBindings/styled.ts","../src/components/KeySymbol/styled.ts","../src/components/KeySymbol/KeySymbol.tsx","../src/components/KeysBindings/KeysBindings.tsx","../src/components/Button/Button.tsx","../src/components/Checkbox/constants.ts","../src/components/Checkbox/helpers.ts","../src/components/Checkbox/styled.ts","../src/components/Checkbox/Checkbox.tsx","../src/components/CheckboxCard/constants.ts","../src/components/CheckboxCard/helpers.ts","../src/components/CheckboxCard/styled.ts","../src/components/CheckboxCard/CheckboxCard.tsx","../src/components/CheckboxGroup/constants.ts","../src/components/CheckboxGroup/styled.ts","../src/components/CheckboxGroup/CheckboxGroup.tsx","../src/components/Chip/constants.ts","../src/components/Chip/helpers.ts","../src/components/Chip/styled.ts","../src/components/Chip/Chip.tsx","../src/components/DatePicker/constants.ts","../src/components/DatePicker/helpers.ts","../src/components/DatePicker/styled.ts","../src/components/DatePicker/DatePicker.tsx","../src/components/Input/constants.ts","../src/components/Input/helpers.ts","../src/components/Input/styled.ts","../src/components/Input/Input.tsx","../src/components/Modal/styled.ts","../src/components/Modal/Modal.tsx","../src/components/MultiSelect/constants.ts","../src/components/MultiSelect/styled.ts","../src/components/MultiSelect/MultiSelect.tsx","../src/components/OtpCode/constants.ts","../src/components/OtpCode/helpers.ts","../src/components/OtpCode/styled.ts","../src/components/OtpCode/OtpCode.tsx","../src/components/Radio/constants.ts","../src/components/Radio/helpers.ts","../src/components/Radio/styled.ts","../src/components/Radio/Radio.tsx","../src/components/RadioCard/constants.ts","../src/components/RadioCard/helpers.ts","../src/components/RadioCard/styled.ts","../src/components/RadioCard/RadioCard.tsx","../src/components/RadioGroup/constants.ts","../src/components/RadioGroup/styled.ts","../src/components/RadioGroup/RadioGroup.tsx","../src/components/Select/constants.ts","../src/components/Select/helpers.ts","../src/components/Select/styled.ts","../src/components/Select/Select.tsx","../src/components/Tags/constants.ts","../src/components/Tags/styled.ts","../src/components/Tags/Tags.tsx","../src/components/Textarea/constants.ts","../src/components/Textarea/helpers.ts","../src/components/Textarea/styled.ts","../src/components/Textarea/Textarea.tsx","../src/components/Toggle/constants.ts","../src/components/Toggle/helpers.ts","../src/components/Toggle/styled.ts","../src/components/Toggle/Toggle.tsx","../src/components/ToggleCard/constants.ts","../src/components/ToggleCard/helpers.ts","../src/components/ToggleCard/styled.ts","../src/components/ToggleCard/ToggleCard.tsx","../src/components/ToggleGroup/constants.ts","../src/components/ToggleGroup/styled.ts","../src/components/ToggleGroup/ToggleGroup.tsx"],"sourcesContent":["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 };","import memoize from '@emotion/memoize';\n\n// eslint-disable-next-line no-undef\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|popover|popoverTarget|popoverTargetAction|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport * as React from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\n\nvar isDevelopment = false;\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n // eslint-disable-next-line prefer-rest-params\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n // eslint-disable-next-line prefer-spread\n styles.push.apply(styles, args);\n } else {\n var templateStringsArr = args[0];\n\n styles.push(templateStringsArr[0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n\n styles.push(args[i], templateStringsArr[i]);\n }\n }\n\n var Styled = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = React.useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if (finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n\n if (ref) {\n newProps.ref = ref;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/React.createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && isDevelopment) {\n return 'NO_COMPONENT_SELECTOR';\n }\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n var newStyled = createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n }));\n return newStyled.apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport { createStyled as default };\n","import createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/react';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\nimport '@emotion/utils';\nimport 'react';\nimport '@emotion/is-prop-valid';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\n// bind it to avoid mutating the original function\nvar styled = createStyled.bind(null);\ntags.forEach(function (tagName) {\n styled[tagName] = styled(tagName);\n});\n\nexport { styled as default };\n","import styled from '@emotion/styled'\n\nimport { FieldLabelVariant } from './types'\nimport { COLORS } from '../../lib'\n\nexport const StyledFieldLabel = styled.span<{ $variant: FieldLabelVariant }>`\n font-size: 12px;\n font-weight: 500;\n color: ${(props) => (props.$variant === 'normal' ? COLORS['black'] : COLORS['red'])};\n`\n","import { StyledFieldLabel } from './styled'\nimport { FieldLabelProps } from './types'\nimport { newClassNameGetter } from '../../lib'\n\nconst css = newClassNameGetter('field-label')\nexport const FieldLabel = ({\n children,\n className,\n ref,\n required,\n variant = 'normal',\n ...rest\n}: FieldLabelProps) => {\n if (!children) {\n return null\n }\n\n return (\n <StyledFieldLabel\n {...rest}\n ref={ref}\n className={css('container', className)}\n $variant={variant}\n >\n {children} {required && '*'}\n </StyledFieldLabel>\n )\n}\n","import styled from '@emotion/styled'\n\nimport { FieldMessageVariant } from './types'\nimport { COLORS } from '../../lib'\n\nconst VARIANT_COLORS: Record<FieldMessageVariant, string> = {\n normal: COLORS['iron-grey'],\n error: COLORS['red'],\n success: COLORS['green'],\n warning: COLORS['yellow'],\n}\n\nexport const StyledFieldMessage = styled.span<{ $variant: FieldMessageVariant }>`\n display: block;\n font-size: 12px;\n font-weight: 500;\n line-height: 1.4;\n color: ${(props) => VARIANT_COLORS[props.$variant]};\n`\n","import { StyledFieldMessage } from './styled'\nimport { FieldMessageProps } from './types'\nimport { newClassNameGetter } from '../../lib'\n\nconst css = newClassNameGetter('field-message')\n\nexport const FieldMessage = ({\n children,\n className,\n ref,\n variant = 'normal',\n ...rest\n}: FieldMessageProps) => {\n if (!children) {\n return null\n }\n\n return (\n <StyledFieldMessage\n {...rest}\n ref={ref}\n className={css('container', className)}\n $variant={variant}\n >\n {children}\n </StyledFieldMessage>\n )\n}\n","import styled from '@emotion/styled'\n\nimport { AutocompleteVariant } from './types'\nimport { FieldLabel } from '../FieldLabel'\nimport { FieldMessage } from '../FieldMessage'\nimport { alpha, COLORS, VacanoComponentSize } from '../../lib'\n\nconst SIZE_PROPS: Record<VacanoComponentSize, { height: string; padding: string; radius: string }> =\n {\n compact: {\n height: '32px',\n padding: '0 10px',\n radius: '14px',\n },\n default: {\n height: '40px',\n padding: '0 14px',\n radius: '16px',\n },\n }\n\nconst VARIANT_PROPS: Record<\n AutocompleteVariant,\n {\n border: { static: string; disabled: string }\n background: { static: string; disabled: string }\n color: { static: string; disabled: string }\n placeholder: { static: string; disabled: string }\n focus: string\n }\n> = {\n normal: {\n background: {\n static: alpha(COLORS['black'], 2),\n disabled: alpha(COLORS['black'], 10),\n },\n border: {\n static: alpha(COLORS['black'], 60),\n disabled: alpha(COLORS['black'], 10),\n },\n color: {\n static: COLORS['black'],\n disabled: alpha(COLORS['black'], 65),\n },\n placeholder: {\n static: alpha(COLORS['black'], 40),\n disabled: alpha(COLORS['black'], 65),\n },\n focus: alpha(COLORS['iron-grey'], 30),\n },\n error: {\n background: {\n static: alpha(COLORS['red'], 2),\n disabled: alpha(COLORS['red'], 10),\n },\n border: {\n static: alpha(COLORS['red'], 60),\n disabled: alpha(COLORS['red'], 10),\n },\n color: {\n static: COLORS['red'],\n disabled: alpha(COLORS['red'], 65),\n },\n placeholder: {\n static: alpha(COLORS['red'], 40),\n disabled: alpha(COLORS['red'], 65),\n },\n focus: alpha(COLORS['red'], 30),\n },\n}\n\nexport const StyledContainer = styled.div<{ $fullWidth: boolean }>`\n position: relative;\n display: grid;\n gap: 2px;\n width: ${(props) => (props.$fullWidth ? '100%' : 'fit-content')};\n`\n\nexport const StyledLabel = styled(FieldLabel)`\n margin-left: 6px;\n`\n\nexport const StyledMessage = styled(FieldMessage)`\n margin-left: 6px;\n`\n\nexport const StyledInputWrapper = styled.div`\n position: relative;\n display: flex;\n align-items: center;\n`\n\ntype StyledInputProps = {\n $size: VacanoComponentSize\n $variant: AutocompleteVariant\n}\n\nexport const StyledInput = styled.input<StyledInputProps>`\n flex: 1;\n min-width: 0;\n width: 100%;\n outline: none;\n font-size: 14px;\n font-weight: 500;\n height: ${(props) => SIZE_PROPS[props.$size].height};\n padding: ${(props) => SIZE_PROPS[props.$size].padding};\n padding-right: 40px;\n border-radius: ${(props) => SIZE_PROPS[props.$size].radius};\n\n color: ${(props) => VARIANT_PROPS[props.$variant].color.static};\n border: 1px solid ${(props) => VARIANT_PROPS[props.$variant].border.static};\n background-color: ${(props) => VARIANT_PROPS[props.$variant].background.static};\n\n &::placeholder {\n color: ${(props) => VARIANT_PROPS[props.$variant].placeholder.static};\n }\n\n &:disabled {\n cursor: not-allowed;\n color: ${(props) => VARIANT_PROPS[props.$variant].color.disabled};\n background-color: ${(props) => VARIANT_PROPS[props.$variant].background.disabled};\n border-color: ${(props) => VARIANT_PROPS[props.$variant].border.disabled};\n\n &::placeholder {\n color: ${(props) => VARIANT_PROPS[props.$variant].placeholder.disabled};\n }\n }\n`\n\nexport const StyledSpinnerWrapper = styled.div`\n position: absolute;\n right: 12px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n`\n\nexport const StyledDropdown = styled.div<{ $open: boolean }>`\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n z-index: 100;\n margin-top: 4px;\n max-height: 240px;\n overflow-y: auto;\n background-color: ${COLORS.white};\n border: 1px solid ${COLORS.gray};\n border-radius: 12px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n opacity: ${({ $open }) => ($open ? 1 : 0)};\n visibility: ${({ $open }) => ($open ? 'visible' : 'hidden')};\n transform: ${({ $open }) => ($open ? 'translateY(0)' : 'translateY(-8px)')};\n transition:\n opacity 0.15s ease,\n transform 0.15s ease,\n visibility 0.15s;\n`\n\nexport const StyledItem = styled.div`\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 14px;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n color: ${COLORS.black};\n transition: background-color 0.1s ease;\n\n &:first-of-type {\n border-radius: 12px 12px 0 0;\n }\n\n &:last-of-type {\n border-radius: 0 0 12px 12px;\n }\n\n &:only-child {\n border-radius: 12px;\n }\n\n &:hover {\n background-color: ${alpha(COLORS.black, 5)};\n }\n`\n\nexport const StyledItemImage = styled.img`\n width: 24px;\n height: 24px;\n border-radius: 6px;\n object-fit: cover;\n`\n\nexport const StyledItemText = styled.span`\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`\n\nexport const StyledEmpty = styled.div`\n padding: 12px 14px;\n font-size: 14px;\n color: ${alpha(COLORS.black, 50)};\n text-align: center;\n`\n","import { SpinnerSize } from './types'\nimport { alpha, COLORS } from '../../lib'\n\ntype SpinnerSizeProps = {\n size: string\n borderWidth: string\n}\n\nexport const SPINNER_SIZE_PROPS: Record<SpinnerSize, SpinnerSizeProps> = {\n xs: { size: '16px', borderWidth: '2px' },\n sm: { size: '20px', borderWidth: '2px' },\n md: { size: '32px', borderWidth: '3px' },\n lg: { size: '48px', borderWidth: '4px' },\n}\n\nexport const SPINNER_COLORS = {\n track: alpha(COLORS['black'], 15),\n indicator: COLORS['black'],\n}\n","import { SPINNER_SIZE_PROPS } from './constants'\nimport { SpinnerSize } from './types'\n\nexport const getSpinnerSizeProps = (size: SpinnerSize) => {\n return SPINNER_SIZE_PROPS[size] ?? SPINNER_SIZE_PROPS['md']\n}\n","import { keyframes } from '@emotion/react'\nimport styled from '@emotion/styled'\n\nimport { SPINNER_COLORS } from './constants'\nimport { getSpinnerSizeProps } from './helpers'\nimport { SpinnerSize } from './types'\n\nconst spin = keyframes`\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n`\n\ntype StyledSpinnerProps = {\n $size: SpinnerSize\n}\n\nexport const StyledSpinner = styled.div<StyledSpinnerProps>`\n display: inline-block;\n width: ${(props) => getSpinnerSizeProps(props.$size).size};\n height: ${(props) => getSpinnerSizeProps(props.$size).size};\n border: ${(props) => getSpinnerSizeProps(props.$size).borderWidth} solid ${SPINNER_COLORS.track};\n border-top-color: ${SPINNER_COLORS.indicator};\n border-radius: 50%;\n animation: ${spin} 0.8s linear infinite;\n`\n","import { StyledSpinner } from './styled'\nimport { SpinnerProps } from './types'\nimport { newClassNameGetter } from '../../lib'\n\nconst css = newClassNameGetter('spinner')\n\nexport const Spinner = ({\n 'aria-label': ariaLabel = 'Loading',\n className,\n ref,\n size = 'md',\n ...rest\n}: SpinnerProps) => {\n return (\n <StyledSpinner\n {...rest}\n ref={ref}\n className={css('container', className)}\n role=\"status\"\n aria-label={ariaLabel}\n $size={size}\n />\n )\n}\n","import { useCallback, useEffect, useRef, useState } from 'react'\n\nimport {\n StyledContainer,\n StyledDropdown,\n StyledEmpty,\n StyledInput,\n StyledInputWrapper,\n StyledItem,\n StyledItemImage,\n StyledItemText,\n StyledLabel,\n StyledMessage,\n StyledSpinnerWrapper,\n} from './styled'\nimport type { AutocompleteProps, AutocompleteSuggestion } from './types'\nimport { Spinner } from '../Spinner'\nimport { newClassNameGetter } from '../../lib'\n\nconst css = newClassNameGetter('autocomplete')\n\nexport const Autocomplete = ({\n className,\n classnames,\n disabled,\n fullWidth,\n label,\n ref,\n message,\n size = 'default',\n variant = 'normal',\n value,\n onChange,\n onSearch,\n debounceMs = 300,\n minChars = 1,\n noResultsMessage = 'No results found',\n ...rest\n}: AutocompleteProps) => {\n const [inputValue, setInputValue] = useState(value?.value ?? '')\n const [suggestions, setSuggestions] = useState<AutocompleteSuggestion[]>([])\n const [isLoading, setIsLoading] = useState(false)\n const [isOpen, setIsOpen] = useState(false)\n const [hasSearched, setHasSearched] = useState(false)\n\n const containerRef = useRef<HTMLDivElement>(null)\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n\n useEffect(() => {\n if (value?.value !== undefined) {\n setInputValue(value.value)\n }\n }, [value?.value])\n\n const handleSearch = useCallback(\n async (query: string) => {\n if (query.length < minChars) {\n setSuggestions([])\n setHasSearched(false)\n return\n }\n\n setIsLoading(true)\n setHasSearched(true)\n\n try {\n const results = await onSearch(query)\n setSuggestions(results)\n setIsOpen(true)\n } catch {\n setSuggestions([])\n } finally {\n setIsLoading(false)\n }\n },\n [onSearch, minChars],\n )\n\n const handleInputChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value\n setInputValue(newValue)\n\n onChange?.({ value: newValue, image_url: null })\n\n if (debounceRef.current) {\n clearTimeout(debounceRef.current)\n }\n\n debounceRef.current = setTimeout(() => {\n handleSearch(newValue)\n }, debounceMs)\n },\n [onChange, handleSearch, debounceMs],\n )\n\n const handleSelect = useCallback(\n (suggestion: AutocompleteSuggestion) => {\n setInputValue(suggestion.value)\n setSuggestions([])\n setIsOpen(false)\n setHasSearched(false)\n\n onChange?.({ value: suggestion.value, image_url: suggestion.image_url })\n },\n [onChange],\n )\n\n const handleBlur = useCallback(() => {\n setTimeout(() => {\n setIsOpen(false)\n }, 150)\n }, [])\n\n const handleFocus = useCallback(() => {\n if (suggestions.length > 0) {\n setIsOpen(true)\n }\n }, [suggestions.length])\n\n useEffect(() => {\n return () => {\n if (debounceRef.current) {\n clearTimeout(debounceRef.current)\n }\n }\n }, [])\n\n return (\n <StyledContainer\n ref={containerRef}\n className={css('container', className)}\n $fullWidth={Boolean(fullWidth)}\n >\n {label && (\n <StyledLabel variant={variant} className={css('label', classnames?.label)}>\n {label}\n </StyledLabel>\n )}\n <StyledInputWrapper>\n <StyledInput\n {...rest}\n ref={ref}\n type=\"text\"\n value={inputValue}\n onChange={handleInputChange}\n onBlur={handleBlur}\n onFocus={handleFocus}\n disabled={disabled}\n $size={size}\n $variant={variant}\n className={css('input', classnames?.input)}\n />\n {isLoading && (\n <StyledSpinnerWrapper>\n <Spinner size=\"xs\" />\n </StyledSpinnerWrapper>\n )}\n </StyledInputWrapper>\n {message && <StyledMessage variant={variant}>{message}</StyledMessage>}\n <StyledDropdown\n $open={isOpen && hasSearched && !isLoading}\n className={css('dropdown', classnames?.dropdown)}\n >\n {suggestions.length > 0\n ? suggestions.map((suggestion) => (\n <StyledItem\n key={suggestion.id}\n onClick={() => handleSelect(suggestion)}\n className={css('item', classnames?.item)}\n >\n {suggestion.image_url && (\n <StyledItemImage src={suggestion.image_url} alt={suggestion.value} />\n )}\n <StyledItemText>{suggestion.value}</StyledItemText>\n </StyledItem>\n ))\n : !isLoading && <StyledEmpty>{noResultsMessage}</StyledEmpty>}\n </StyledDropdown>\n </StyledContainer>\n )\n}\n","import { ButtonVariant } from './types'\nimport { alpha, COLORS, VacanoComponentSize, VacanoInteractiveElementState } from '../../lib'\n\nexport const BUTTON_SIZE_PROPS: Record<\n VacanoComponentSize,\n {\n height: string\n padding: string\n radius: string\n iconSize: string\n }\n> = {\n compact: {\n height: '32px',\n padding: '0 8px',\n radius: '12px',\n iconSize: '16px',\n },\n default: {\n height: '40px',\n padding: '0 12px',\n radius: '16px',\n iconSize: '20px',\n },\n}\n\nexport const BUTTON_VARIANT_PROPS: Record<\n ButtonVariant,\n {\n color: VacanoInteractiveElementState\n background: VacanoInteractiveElementState\n borderColor: VacanoInteractiveElementState\n }\n> = {\n normal: {\n background: {\n static: COLORS['steel-blue'],\n hover: alpha(COLORS['steel-blue'], 90),\n active: alpha(COLORS['steel-blue'], 80),\n disabled: alpha(COLORS['steel-blue'], 50),\n },\n color: {\n static: COLORS['white'],\n hover: COLORS['white'],\n active: COLORS['white'],\n disabled: COLORS['white'],\n },\n borderColor: {\n static: 'transparent',\n hover: 'transparent',\n active: 'transparent',\n disabled: 'transparent',\n },\n },\n system: {\n background: {\n static: COLORS['black'],\n hover: alpha(COLORS['black'], 90),\n active: alpha(COLORS['black'], 80),\n disabled: alpha(COLORS['black'], 50),\n },\n color: {\n static: COLORS['white'],\n hover: COLORS['white'],\n active: COLORS['white'],\n disabled: COLORS['white'],\n },\n borderColor: {\n static: 'transparent',\n hover: 'transparent',\n active: 'transparent',\n disabled: 'transparent',\n },\n },\n success: {\n background: {\n static: COLORS['green'],\n hover: alpha(COLORS['green'], 90),\n active: alpha(COLORS['green'], 80),\n disabled: alpha(COLORS['green'], 50),\n },\n color: {\n static: COLORS['white'],\n hover: COLORS['white'],\n active: COLORS['white'],\n disabled: COLORS['white'],\n },\n borderColor: {\n static: 'transparent',\n hover: 'transparent',\n active: 'transparent',\n disabled: 'transparent',\n },\n },\n warning: {\n background: {\n static: COLORS['yellow'],\n hover: alpha(COLORS['yellow'], 90),\n active: alpha(COLORS['yellow'], 80),\n disabled: alpha(COLORS['yellow'], 50),\n },\n color: {\n static: COLORS['black'],\n hover: COLORS['black'],\n active: COLORS['black'],\n disabled: COLORS['black'],\n },\n borderColor: {\n static: 'transparent',\n hover: 'transparent',\n active: 'transparent',\n disabled: 'transparent',\n },\n },\n danger: {\n background: {\n static: COLORS['red'],\n hover: alpha(COLORS['red'], 90),\n active: alpha(COLORS['red'], 80),\n disabled: alpha(COLORS['red'], 50),\n },\n color: {\n static: COLORS['white'],\n hover: COLORS['white'],\n active: COLORS['white'],\n disabled: COLORS['white'],\n },\n borderColor: {\n static: 'transparent',\n hover: 'transparent',\n active: 'transparent',\n disabled: 'transparent',\n },\n },\n transparent: {\n background: {\n static: alpha(COLORS['iron-grey'], 1),\n hover: alpha(COLORS['iron-grey'], 5),\n active: alpha(COLORS['iron-grey'], 10),\n disabled: alpha(COLORS['iron-grey'], 5),\n },\n color: {\n static: COLORS['black'],\n hover: COLORS['black'],\n active: COLORS['black'],\n disabled: alpha(COLORS['black'], 30),\n },\n borderColor: {\n static: alpha(COLORS['iron-grey'], 20),\n hover: alpha(COLORS['iron-grey'], 20),\n active: alpha(COLORS['iron-grey'], 20),\n disabled: alpha(COLORS['iron-grey'], 10),\n },\n },\n}\n","import { BUTTON_SIZE_PROPS, BUTTON_VARIANT_PROPS } from './constants'\nimport { ButtonVariant } from './types'\nimport { VacanoComponentSize } from '../../lib'\n\nexport const getButtonVariantProps = (variant: ButtonVariant) => {\n const result = BUTTON_VARIANT_PROPS[variant]\n if (!result) {\n return BUTTON_VARIANT_PROPS['normal']\n }\n\n return result\n}\n\nexport const getButtonSizeProps = (size: VacanoComponentSize) => {\n const result = BUTTON_SIZE_PROPS[size]\n if (!result) {\n return BUTTON_SIZE_PROPS['default']\n }\n\n return result\n}\n\nexport const getButtonWidthProps = (fullWidth: boolean) => {\n if (fullWidth) {\n return 'auto'\n }\n\n return 'fit-content'\n}\n","import styled from '@emotion/styled'\n\nimport { getButtonSizeProps, getButtonVariantProps, getButtonWidthProps } from './helpers'\nimport { ButtonVariant } from './types'\nimport { LoaderCircle } from '../../icons/Lucide'\nimport { KEYFRAMES, VacanoComponentSize } from '../../lib'\n\ntype StyledButtonProps = {\n $variant: ButtonVariant\n $size: VacanoComponentSize\n $fullWidth: boolean\n $iconOnly: boolean\n}\n\nexport const StyledButton = styled.button<StyledButtonProps>`\n display: flex;\n gap: 6px;\n text-decoration: none;\n align-items: center;\n justify-content: center;\n width: ${(props) =>\n !props.$iconOnly\n ? getButtonWidthProps(Boolean(props.$fullWidth))\n : getButtonSizeProps(props.$size).height};\n color: ${(props) => getButtonVariantProps(props.$variant).color.static};\n background-color: ${(props) => getButtonVariantProps(props.$variant).background.static};\n height: ${(props) => getButtonSizeProps(props.$size).height};\n padding: ${(props) => (!props.$iconOnly ? getButtonSizeProps(props.$size).padding : '0')};\n border-radius: ${(props) => getButtonSizeProps(props.$size).radius};\n border: 1px solid ${(props) => getButtonVariantProps(props.$variant).borderColor.static};\n\n &:hover:not(:disabled) {\n color: ${(props) => getButtonVariantProps(props.$variant).color.hover};\n background-color: ${(props) => getButtonVariantProps(props.$variant).background.hover};\n border-color: ${(props) => getButtonVariantProps(props.$variant).borderColor.hover};\n }\n\n &:active:not(:disabled) {\n color: ${(props) => getButtonVariantProps(props.$variant).color.active};\n background-color: ${(props) => getButtonVariantProps(props.$variant).background.active};\n border-color: ${(props) => getButtonVariantProps(props.$variant).borderColor.active};\n }\n\n &:disabled {\n cursor: not-allowed;\n color: ${(props) => getButtonVariantProps(props.$variant).color.disabled};\n background-color: ${(props) => getButtonVariantProps(props.$variant).background.disabled};\n border-color: ${(props) => getButtonVariantProps(props.$variant).borderColor.disabled};\n }\n`\n\nexport const StyledIcon = styled.div<{ $size: VacanoComponentSize }>`\n display: grid;\n place-items: center;\n width: ${(props) => getButtonSizeProps(props.$size).iconSize};\n height: ${(props) => getButtonSizeProps(props.$size).iconSize};\n\n & svg {\n width: ${(props) => getButtonSizeProps(props.$size).iconSize};\n height: ${(props) => getButtonSizeProps(props.$size).iconSize};\n }\n`\n\nexport const StyledLabel = styled.span`\n font-weight: 600;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n`\n\nexport const StyledLoading = styled(LoaderCircle)<{ $size: VacanoComponentSize }>`\n width: ${(props) => getButtonSizeProps(props.$size).iconSize};\n height: ${(props) => getButtonSizeProps(props.$size).iconSize};\n animation: ${KEYFRAMES.rotate} 0.8s linear infinite;\n`\n","import styled from '@emotion/styled'\n\nexport const StyledKeyBindings = styled.div`\n display: flex;\n gap: 3px;\n`\n","import styled from '@emotion/styled'\n\nimport { KeySymbolVariant } from './types'\nimport { alpha, COLORS } from '../../lib'\n\nexport const StyledKeySymbol = styled.span<{ $variant: KeySymbolVariant }>`\n text-align: center;\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 12px;\n height: 18px;\n min-width: 18px;\n line-height: 1.6;\n padding: 2px 4px;\n border-radius: 4px;\n width: fit-content;\n background-color: ${(props) =>\n props.$variant === 'light' ? alpha(COLORS['white'], 25) : alpha(COLORS['black'], 25)};\n`\n","import { StyledKeySymbol } from './styled'\nimport { KeySymbolProps } from './types'\nimport { newClassNameGetter } from '../../lib'\n\nconst css = newClassNameGetter('key-symbol')\nexport const KeySymbol = ({\n className,\n ref,\n symbol,\n variant = 'light',\n ...rest\n}: KeySymbolProps) => {\n if (!symbol) {\n return null\n }\n\n return (\n <StyledKeySymbol {...rest} ref={ref} className={css('container', className)} $variant={variant}>\n {symbol}\n </StyledKeySymbol>\n )\n}\n","import { useMemo } from 'react'\n\nimport { StyledKeyBindings } from './styled'\nimport { KeysBindingsProps } from './types'\nimport { KeySymbol } from '../KeySymbol'\nimport { getKeySymbols, newClassNameGetter } from '../../lib'\n\nconst css = newClassNameGetter('key-bindings')\nexport const KeysBindings = ({\n className,\n classnames,\n keys,\n ref,\n variant,\n ...rest\n}: KeysBindingsProps) => {\n const symbols = useMemo(() => getKeySymbols(keys), [keys])\n if (symbols.length === 0) {\n return null\n }\n\n return (\n <StyledKeyBindings {...rest} ref={ref} className={css('container', className)}>\n {symbols.map((item) => (\n <KeySymbol\n key={item}\n symbol={item}\n className={css('item', classnames?.item)}\n variant={variant}\n />\n ))}\n </StyledKeyBindings>\n )\n}\n","import { useImperativeHandle, useMemo, useRef } from 'react'\n\nimport { StyledButton, StyledIcon, StyledLabel, StyledLoading } from './styled'\nimport { ButtonProps } from './types'\nimport { KeysBindings } from '../KeysBindings'\nimport { newClassNameGetter, useKeyBinding } from '../../lib'\n\nconst css = newClassNameGetter('button')\nexport const Button = ({\n children,\n className,\n classnames,\n disabled,\n fullWidth,\n icon,\n loading,\n onClick,\n ref = null,\n keyBindings = [],\n size = 'default',\n type = 'button',\n variant = 'normal',\n ...rest\n}: ButtonProps) => {\n const buttonRef = useRef<HTMLButtonElement>(null)\n\n useImperativeHandle(ref, () => buttonRef.current!, [])\n useKeyBinding(keyBindings, () => {\n buttonRef.current?.click()\n })\n\n const computedType = useMemo(() => {\n switch (type) {\n case 'link':\n return 'button'\n\n default:\n return type\n }\n }, [type])\n\n return (\n <StyledButton\n {...rest}\n onClick={onClick}\n ref={buttonRef}\n type={computedType}\n disabled={disabled}\n className={css('container', className)}\n $variant={variant}\n $size={size}\n $fullWidth={Boolean(fullWidth)}\n $iconOnly={Boolean(icon) && !(children || keyBindings?.length > 0)}\n >\n {loading && <StyledLoading $size={size} />}\n {icon && !loading && <StyledIcon $size={size}>{icon}</StyledIcon>}\n {children && (\n <StyledLabel className={css('label', classnames?.label)}>{children}</StyledLabel>\n )}\n <KeysBindings keys={keyBindings} variant={variant === 'system' ? 'light' : 'dark'} />\n </StyledButton>\n )\n}\n","import { CheckboxVariant } from './types'\nimport { alpha, COLORS } from '../../lib'\n\nexport const CHECKBOX_VARIANT_PROPS: Record<\n CheckboxVariant,\n {\n box: {\n border: string\n borderChecked: string\n background: string\n backgroundChecked: string\n focusShadow: string\n }\n label: string\n icon: string\n }\n> = {\n normal: {\n box: {\n border: alpha(COLORS['iron-grey'], 30),\n borderChecked: COLORS['iron-grey'],\n background: COLORS['white'],\n backgroundChecked: COLORS['black'],\n focusShadow: alpha(COLORS['iron-grey'], 30),\n },\n label: COLORS['black'],\n icon: COLORS['white'],\n },\n error: {\n box: {\n border: COLORS['red'],\n borderChecked: COLORS['red'],\n background: COLORS['white'],\n backgroundChecked: COLORS['red'],\n focusShadow: alpha(COLORS['red'], 30),\n },\n label: COLORS['red'],\n icon: COLORS['white'],\n },\n}\n","import { CHECKBOX_VARIANT_PROPS } from './constants'\nimport { CheckboxVariant } from './types'\n\nexport const getCheckboxVariantProps = (variant: CheckboxVariant) => {\n return CHECKBOX_VARIANT_PROPS[variant] ?? CHECKBOX_VARIANT_PROPS['normal']\n}\n","import styled from '@emotion/styled'\n\nimport { getCheckboxVariantProps } from './helpers'\nimport { CheckboxVariant } from './types'\n\ntype StyledContainerProps = {\n $disabled: boolean\n $variant: CheckboxVariant\n}\n\ntype StyledBoxProps = {\n $checked: boolean\n $indeterminate: boolean\n $variant: CheckboxVariant\n}\n\ntype StyledIconProps = {\n $visible: boolean\n $variant: CheckboxVariant\n}\n\ntype StyledLabelProps = {\n $variant: CheckboxVariant\n}\n\nexport const StyledContainer = styled.label<StyledContainerProps>`\n display: inline-flex;\n align-items: flex-start;\n gap: 8px;\n cursor: ${(props) => (props.$disabled ? 'not-allowed' : 'pointer')};\n opacity: ${(props) => (props.$disabled ? 0.5 : 1)};\n`\n\nexport const StyledInput = styled.input`\n position: absolute;\n opacity: 0;\n width: 0;\n height: 0;\n pointer-events: none;\n`\n\nexport const StyledBox = styled.span<StyledBoxProps>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 18px;\n height: 18px;\n border-radius: 6px;\n border: 1.5px solid\n ${(props) =>\n props.$checked || props.$indeterminate\n ? getCheckboxVariantProps(props.$variant).box.borderChecked\n : getCheckboxVariantProps(props.$variant).box.border};\n background-color: ${(props) =>\n props.$checked || props.$indeterminate\n ? getCheckboxVariantProps(props.$variant).box.backgroundChecked\n : getCheckboxVariantProps(props.$variant).box.background};\n transition:\n border-color 0.15s ease,\n background-color 0.15s ease,\n box-shadow 0.15s ease;\n`\n\nexport const StyledIcon = styled.span<StyledIconProps>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n color: ${(props) => getCheckboxVariantProps(props.$variant).icon};\n opacity: ${(props) => (props.$visible ? 1 : 0)};\n transform: ${(props) => (props.$visible ? 'scale(1)' : 'scale(0.5)')};\n transition:\n opacity 0.15s ease,\n transform 0.15s ease;\n\n & svg {\n width: 12px;\n height: 12px;\n }\n`\n\nexport const StyledLabel = styled.span<StyledLabelProps>`\n font-size: 14px;\n font-weight: 500;\n line-height: 1.3;\n color: ${(props) => getCheckboxVariantProps(props.$variant).label};\n user-select: none;\n\n a {\n color: inherit;\n text-decoration: underline;\n cursor: pointer;\n\n &:hover {\n text-decoration: none;\n }\n }\n`\n","import { StyledBox, StyledContainer, StyledIcon, StyledInput, StyledLabel } from './styled'\nimport { CheckboxProps } from './types'\nimport { Check, Minus } from '../../icons/Lucide'\nimport { newClassNameGetter } from '../../lib'\n\nconst css = newClassNameGetter('checkbox')\n\nexport const Checkbox = ({\n checked,\n className,\n classnames,\n disabled,\n indeterminate = false,\n label,\n onChange,\n ref,\n variant = 'normal',\n ...rest\n}: CheckboxProps) => {\n return (\n <StyledContainer\n className={css('container', className)}\n $disabled={Boolean(disabled)}\n $variant={variant}\n >\n <StyledInput\n {...rest}\n ref={ref}\n type=\"checkbox\"\n className={css('input', classnames?.input)}\n checked={checked}\n disabled={disabled}\n onChange={onChange}\n />\n <StyledBox\n className={css('box', classnames?.box)}\n $checked={checked}\n $indeterminate={indeterminate}\n $variant={variant}\n >\n <StyledIcon\n className={css('icon', classnames?.icon)}\n $visible={indeterminate || checked}\n $variant={variant}\n >\n {indeterminate ? <Minus /> : <Check />}\n </StyledIcon>\n </StyledBox>\n {label && (\n <StyledLabel className={css('label', classnames?.label)} $variant={variant}>\n {label}\n </StyledLabel>\n )}\n </StyledContainer>\n )\n}\n","import { CheckboxCardVariant } from './types'\nimport { alpha, COLORS, VacanoInteractiveElementState } from '../../lib'\n\ntype CheckboxCardVariantProps = {\n border: VacanoInteractiveElementState\n borderChecked: string\n background: VacanoInteractiveElementState\n backgroundChecked: string\n focusRing: string\n label: VacanoInteractiveElementState\n description: VacanoInteractiveElementState\n}\n\nexport const CHECKBOX_CARD_VARIANT_PROPS: Record<CheckboxCardVariant, CheckboxCardVariantProps> = {\n normal: {\n border: {\n static: alpha(COLORS['black'], 20),\n hover: alpha(COLORS['black'], 40),\n active: alpha(COLORS['black'], 40),\n disabled: alpha(COLORS['black'], 10),\n },\n borderChecked: COLORS['black'],\n background: {\n static: COLORS['white'],\n hover: COLORS['white'],\n active: COLORS['white'],\n disabled: alpha(COLORS['black'], 5),\n },\n backgroundChecked: alpha(COLORS['black'], 5),\n focusRing: alpha(COLORS['black'], 20),\n label: {\n static: COLORS['black'],\n hover: COLORS['black'],\n active: COLORS['black'],\n disabled: alpha(COLORS['black'], 40),\n },\n description: {\n static: alpha(COLORS['black'], 60),\n hover: alpha(COLORS['black'], 60),\n active: alpha(COLORS['black'], 60),\n disabled: alpha(COLORS['black'], 30),\n },\n },\n error: {\n border: {\n static: COLORS['red'],\n hover: COLORS['red'],\n active: COLORS['red'],\n disabled: alpha(COLORS['red'], 30),\n },\n borderChecked: COLORS['red'],\n background: {\n static: COLORS['white'],\n hover: COLORS['white'],\n active: COLORS['white'],\n disabled: alpha(COLORS['red'], 5),\n },\n backgroundChecked: alpha(COLORS['red'], 5),\n focusRing: alpha(COLORS['red'], 20),\n label: {\n static: COLORS['red'],\n hover: COLORS['red'],\n active: COLORS['red'],\n disabled: alpha(COLORS['red'], 40),\n },\n description: {\n static: alpha(COLORS['red'], 70),\n hover: alpha(COLORS['red'], 70),\n active: alpha(COLORS['red'], 70),\n disabled: alpha(COLORS['red'], 40),\n },\n },\n}\n","import { CHECKBOX_CARD_VARIANT_PROPS } from './constants'\nimport { CheckboxCardVariant } from './types'\n\nexport const getCheckboxCardVariantProps = (variant: CheckboxCardVariant) => {\n return CHECKBOX_CARD_VARIANT_PROPS[variant] ?? CHECKBOX_CARD_VARIANT_PROPS['normal']\n}\n","import styled from '@emotion/styled'\n\nimport { getCheckboxCardVariantProps } from './helpers'\nimport { CheckboxCardVariant } from './types'\n\ntype StyledContainerProps = {\n $checked: boolean\n $disabled: boolean\n $fullWidth: boolean\n $variant: CheckboxCardVariant\n}\n\ntype StyledLabelProps = {\n $variant: CheckboxCardVariant\n}\n\ntype StyledDescriptionProps = {\n $variant: CheckboxCardVariant\n}\n\nexport const StyledContainer = styled.label<StyledContainerProps>`\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: start;\n gap: 8px;\n padding: 12px;\n background-color: ${(props) => {\n const variantProps = getCheckboxCardVariantProps(props.$variant)\n if (props.$disabled) return variantProps.background.disabled\n if (props.$checked) return variantProps.backgroundChecked\n return variantProps.background.static\n }};\n border: 1px solid\n ${(props) => {\n const variantProps = getCheckboxCardVariantProps(props.$variant)\n if (props.$disabled) return variantProps.border.disabled\n if (props.$checked) return variantProps.borderChecked\n return variantProps.border.static\n }};\n border-radius: 12px;\n cursor: ${(props) => (props.$disabled ? 'not-allowed' : 'pointer')};\n transition:\n border-color 0.15s ease,\n background-color 0.15s ease;\n width: ${(props) => (props.$fullWidth ? '100%' : 'fit-content')};\n min-width: 0;\n\n &:hover:not([data-disabled='true']) {\n border-color: ${(props) => {\n const variantProps = getCheckboxCardVariantProps(props.$variant)\n if (props.$checked) return variantProps.borderChecked\n return variantProps.border.hover\n }};\n }\n\n .vacano_checkbox_container {\n pointer-events: none;\n }\n`\n\nexport const StyledInput = styled.input`\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n`\n\nexport const StyledContent = styled.div`\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n`\n\nexport const StyledLabel = styled.span<StyledLabelProps>`\n font-size: 14px;\n font-weight: 500;\n line-height: 1.4;\n color: ${(props) => getCheckboxCardVariantProps(props.$variant).label.static};\n\n label[data-disabled='true'] & {\n color: ${(props) => getCheckboxCardVariantProps(props.$variant).label.disabled};\n }\n`\n\nexport const StyledDescription = styled.span<StyledDescriptionProps>`\n font-size: 12px;\n font-weight: 400;\n line-height: 1.4;\n color: ${(props) => getCheckboxCardVariantProps(props.$variant).description.static};\n\n label[data-disabled='true'] & {\n color: ${(props) => getCheckboxCardVariantProps(props.$variant).description.disabled};\n }\n`\n","import {\n StyledContainer,\n StyledContent,\n StyledDescription,\n StyledInput,\n StyledLabel,\n} from './styled'\nimport { CheckboxCardProps } from './types'\nimport { Checkbox } from '../Checkbox'\nimport { newClassNameGetter } from '../../lib'\n\nconst css = newClassNameGetter('checkbox-card')\n\nexport const CheckboxCard = ({\n checked,\n className,\n classnames,\n description,\n disabled,\n fullWidth = false,\n label,\n onChange,\n ref,\n variant = 'normal',\n ...rest\n}: CheckboxCardProps) => {\n return (\n <StyledContainer\n className={css('container', className)}\n $checked={checked}\n $disabled={Boolean(disabled)}\n $fullWidth={fullWidth}\n $variant={variant}\n data-disabled={disabled}\n >\n <StyledInput\n {...rest}\n ref={ref}\n type=\"checkbox\"\n checked={checked}\n disabled={disabled}\n onChange={onChange}\n />\n <Checkbox\n className={classnames?.checkbox}\n checked={checked}\n disabled={disabled}\n variant={variant}\n onChange={() => {}}\n tabIndex={-1}\n aria-hidden\n />\n <StyledContent className={css('content', classnames?.content)}>\n <StyledLabel className={css('label', classnames?.label)} $variant={variant}>\n {label}\n </StyledLabel>\n {description && (\n <StyledDescription\n className={css('description', classnames?.description)}\n $variant={variant}\n >\n {description}\n </StyledDescription>\n )}\n </StyledContent>\n </StyledContainer>\n )\n}\n","import { alpha, COLORS } from '../../lib'\n\nexport const CHECKBOX_GROUP_PROPS = {\n label: {\n color: COLORS['black'],\n disabledColor: alpha(COLORS['black'], 40),\n },\n}\n","import styled from '@emotion/styled'\n\nimport { CHECKBOX_GROUP_PROPS } from './constants'\n\ntype StyledLabelProps = {\n $disabled?: boolean\n}\n\nexport const StyledContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 8px;\n`\n\nexport const StyledLabel = styled.span<StyledLabelProps>`\n font-size: 13px;\n font-weight: 500;\n line-height: 1.5;\n color: ${(props) =>\n props.$disabled ? CHECKBOX_GROUP_PROPS.label.disabledColor : CHECKBOX_GROUP_PROPS.label.color};\n margin-bottom: 4px;\n`\n\nexport const StyledOptions = styled.div`\n display: flex;\n flex-direction: column;\n gap: 12px;\n`\n","import { StyledContainer, StyledLabel, StyledOptions } from './styled'\nimport { CheckboxGroupProps } from './types'\nimport { Checkbox } from '../Checkbox'\nimport { newClassNameGetter } from '../../lib'\n\nconst css = newClassNameGetter('checkbox-group')\n\nexport const CheckboxGroup = ({\n className,\n classnames,\n disabled,\n label,\n onChange,\n options,\n ref,\n value,\n variant = 'normal',\n ...rest\n}: CheckboxGroupProps) => {\n const handleChange = (optionValue: string, checked: boolean) => {\n if (checked) {\n onChange([...value, optionValue])\n } else {\n onChange(value.filter((v) => v !== optionValue))\n }\n }\n\n return (\n <StyledContainer {...rest} ref={ref} className={css('container', className)}>\n {label && (\n <StyledLabel className={css('label', classnames?.label)} $disabled={disabled}>\n {label}\n </StyledLabel>\n )}\n <StyledOptions className={css('options', classnames?.options)}>\n {options.map((option) => (\n <Checkbox\n key={option.value}\n className={classnames?.checkbox}\n checked={value.includes(option.value)}\n label={option.label}\n disabled={disabled}\n variant={variant}\n onChange={(e) => handleChange(option.value, e.target.checked)}\n />\n ))}\n </StyledOptions>\n </StyledContainer>\n )\n}\n","import { ChipVariant } from './types'\nimport { alpha, COLORS } from '../../lib'\n\nexport const CHIP_VARIANT_PROPS: Record<\n ChipVariant,\n {\n background: string\n color: string\n deleteHover: string\n }\n> = {\n gray: {\n background: alpha(COLORS['iron-grey'], 10),\n color: COLORS['iron-grey'],\n deleteHover: alpha(COLORS['iron-grey'], 20),\n },\n red: {\n background: alpha(COLORS['red'], 10),\n color: COLORS['red'],\n deleteHover: alpha(COLORS['red'], 20),\n },\n blue: {\n background: alpha(COLORS['steel-blue'], 10),\n color: COLORS['steel-blue'],\n deleteHover: alpha(COLORS['steel-blue'], 20),\n },\n black: {\n background: COLORS['black'],\n color: COLORS['white'],\n deleteHover: alpha(COLORS['white'], 20),\n },\n}\n","import { CHIP_VARIANT_PROPS } from './constants'\nimport { ChipVariant } from './types'\n\nexport const getChipVariantProps = (variant: ChipVariant) => {\n return CHIP_VARIANT_PROPS[variant] ?? CHIP_VARIANT_PROPS['gray']\n}\n","import styled from '@emotion/styled'\n\nimport { getChipVariantProps } from './helpers'\nimport { ChipVariant } from './types'\n\ntype StyledContainerProps = {\n $variant: ChipVariant\n $deletable: boolean\n}\n\ntype StyledDeleteProps = {\n $variant: ChipVariant\n}\n\nexport const StyledContainer = styled.span<StyledContainerProps>`\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 0 ${(props) => (props.$deletable ? '7px' : '10px')} 0 10px;\n border-radius: 12px;\n height: 24px;\n font-size: 12px;\n font-weight: 500;\n line-height: 1.5;\n background-color: ${(props) => getChipVariantProps(props.$variant).background};\n color: ${(props) => getChipVariantProps(props.$variant).color};\n`\n\nexport const StyledDelete = styled.button<StyledDeleteProps>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n margin: 0;\n margin-left: 2px;\n border: none;\n background: transparent;\n color: inherit;\n cursor: pointer;\n border-radius: 4px;\n transition: background-color 0.15s ease;\n\n &:hover {\n background-color: ${(props) => getChipVariantProps(props.$variant).deleteHover};\n }\n\n & svg {\n width: 14px;\n height: 14px;\n }\n`\n\nexport const StyledLabel = styled.span`\n flex: 1 0 auto;\n text-align: center;\n`\n","import { StyledContainer, StyledDelete, StyledLabel } from './styled'\nimport { ChipProps } from './types'\nimport { X } from '../../icons/Lucide'\nimport { newClassNameGetter } from '../../lib'\n\nconst css = newClassNameGetter('chip')\n\nexport const Chip = ({\n children,\n className,\n classnames,\n deletable,\n onDelete,\n ref,\n variant = 'gray',\n ...rest\n}: ChipProps) => {\n return (\n <StyledContainer\n {...rest}\n ref={ref}\n className={css('container', className)}\n $variant={variant}\n $deletable={Boolean(deletable)}\n >\n <StyledLabel className={css('label', classnames?.label)}>{children}</StyledLabel>\n {deletable && (\n <StyledDelete\n type=\"button\"\n className={css('delete', classnames?.delete)}\n $variant={variant}\n onClick={onDelete}\n >\n <X />\n </StyledDelete>\n )}\n </StyledContainer>\n )\n}\n","import { DatePickerVariant } from './types'\nimport { alpha, COLORS, VacanoComponentSize, VacanoInteractiveElementState } from '../../lib'\n\nexport const DATE_PICKER_SIZE_PROPS: Record<\n VacanoComponentSize,\n {\n height: string\n padding: string\n radius: string\n iconSize: number\n }\n> = {\n compact: {\n height: '32px',\n padding: '0 10px',\n radius: '14px',\n iconSize: 16,\n },\n default: {\n height: '40px',\n padding: '0 14px',\n radius: '16px',\n iconSize: 20,\n },\n}\n\nexport const DATE_PICKER_VARIANT_PROPS: Record<\n DatePickerVariant,\n {\n border: VacanoInteractiveElementState\n background: VacanoInteractiveElementState\n color: VacanoInteractiveElementState\n placeholder: VacanoInteractiveElementState\n focus: string\n }\n> = {\n normal: {\n background: {\n static: alpha(COLORS['black'], 2),\n disabled: alpha(COLORS['black'], 10),\n },\n border: {\n static: alpha(COLORS['black'], 60),\n disabled: alpha(COLORS['black'], 10),\n },\n color: {\n static: COLORS['black'],\n disabled: alpha(COLORS['black'], 65),\n },\n placeholder: {\n static: alpha(COLORS['black'], 40),\n disabled: alpha(COLORS['black'], 65),\n },\n focus: alpha(COLORS['iron-grey'], 30),\n },\n error: {\n background: {\n static: alpha(COLORS['red'], 2),\n disabled: alpha(COLORS['red'], 10),\n },\n border: {\n static: alpha(COLORS['red'], 60),\n disabled: alpha(COLORS['red'], 10),\n },\n color: {\n static: COLORS['red'],\n disabled: alpha(COLORS['red'], 65),\n },\n placeholder: {\n static: alpha(COLORS['red'], 40),\n disabled: alpha(COLORS['red'], 65),\n },\n focus: alpha(COLORS['red'], 30),\n },\n}\n\nexport const CALENDAR_CELL_SIZE = 36\nexport const CALENDAR_GAP = 2\nexport const CALENDAR_PADDING = 12\n","/**\n * Go-style date formatting\n * Reference time: Mon Jan 2 15:04:05 MST 2006\n *\n * Tokens:\n * - 2006: 4-digit year\n * - 06: 2-digit year\n * - January: full month name\n * - Jan: short month name\n * - 01: zero-padded month (01-12)\n * - 1: month (1-12)\n * - Monday: full weekday name\n * - Mon: short weekday name\n * - 02: zero-padded day (01-31)\n * - 2: day (1-31)\n * - _2: space-padded day\n * - 15: 24-hour hour (00-23)\n * - 03: 12-hour hour zero-padded (01-12)\n * - 3: 12-hour hour (1-12)\n * - 04: minute (00-59)\n * - 05: second (00-59)\n * - PM: AM/PM uppercase\n * - pm: am/pm lowercase\n */\nexport const formatDateGo = (date: Date, format: string, locale: string = 'en'): string => {\n const year = date.getFullYear()\n const month = date.getMonth()\n const day = date.getDate()\n const hours = date.getHours()\n const minutes = date.getMinutes()\n const seconds = date.getSeconds()\n\n const hour12 = hours % 12 || 12\n const isPM = hours >= 12\n\n const monthLong = new Intl.DateTimeFormat(locale, { month: 'long' }).format(date)\n const monthShort = new Intl.DateTimeFormat(locale, { month: 'short' }).format(date)\n const weekdayLong = new Intl.DateTimeFormat(locale, { weekday: 'long' }).format(date)\n const weekdayShort = new Intl.DateTimeFormat(locale, { weekday: 'short' }).format(date)\n\n const pad = (n: number): string => n.toString().padStart(2, '0')\n const spacePad = (n: number): string => n.toString().padStart(2, ' ')\n\n // Use placeholder approach to avoid token collision\n // First replace tokens with unique placeholders, then replace placeholders with values\n // Placeholder IDs use only letters to avoid being matched by digit tokens\n const placeholder = (id: string) => `\\x00${id}\\x00`\n\n // Tokens ordered by length (longest first) to avoid partial matches\n // Each token maps to [placeholder_id, actual_value]\n const tokens: [string, string, string][] = [\n ['2006', 'YEARFOUR', year.toString()],\n ['January', 'MONTHLONG', monthLong],\n ['Monday', 'WEEKDAYLONG', weekdayLong],\n ['Jan', 'MONTHSHORT', monthShort],\n ['Mon', 'WEEKDAYSHORT', weekdayShort],\n ['06', 'YEARTWO', year.toString().slice(-2)],\n ['01', 'MONTHPAD', pad(month + 1)],\n ['_2', 'DAYSPACE', spacePad(day)],\n ['02', 'DAYPAD', pad(day)],\n ['15', 'HOURTWENTYFOUR', pad(hours)],\n ['03', 'HOURTWELVEPAD', pad(hour12)],\n ['04', 'MINUTE', pad(minutes)],\n ['05', 'SECOND', pad(seconds)],\n ['PM', 'AMPMUP', isPM ? 'PM' : 'AM'],\n ['pm', 'AMPMLOW', isPM ? 'pm' : 'am'],\n // Single character tokens must come last\n ['1', 'MONTH', (month + 1).toString()],\n ['2', 'DAY', day.toString()],\n ['3', 'HOURTWELVE', hour12.toString()],\n ]\n\n let result = format\n\n // First pass: replace all tokens with placeholders\n for (const [token, id] of tokens) {\n result = result.split(token).join(placeholder(id))\n }\n\n // Second pass: replace all placeholders with actual values\n for (const [, id, value] of tokens) {\n result = result.split(placeholder(id)).join(value)\n }\n\n return result\n}\n\n/**\n * Get days in a month\n */\nexport const getDaysInMonth = (year: number, month: number): number => {\n return new Date(year, month + 1, 0).getDate()\n}\n\n/**\n * Get the first day of the month (0 = Sunday, 6 = Saturday)\n */\nexport const getFirstDayOfMonth = (year: number, month: number): number => {\n return new Date(year, month, 1).getDay()\n}\n\n/**\n * Generate calendar grid for a month\n */\nexport const generateCalendarDays = (\n year: number,\n month: number,\n weekStartsOn: 0 | 1 = 1,\n): (number | null)[] => {\n const daysInMonth = getDaysInMonth(year, month)\n const firstDay = getFirstDayOfMonth(year, month)\n\n // Adjust for week start\n let leadingEmptyDays = firstDay - weekStartsOn\n if (leadingEmptyDays < 0) {\n leadingEmptyDays += 7\n }\n\n const days: (number | null)[] = []\n\n // Leading empty cells\n for (let i = 0; i < leadingEmptyDays; i++) {\n days.push(null)\n }\n\n // Days of the month\n for (let day = 1; day <= daysInMonth; day++) {\n days.push(day)\n }\n\n // Trailing empty cells to complete the grid (6 rows × 7 days = 42)\n while (days.length < 42) {\n days.push(null)\n }\n\n return days\n}\n\n/**\n * Get localized weekday names\n */\nexport const getWeekdayNames = (locale: string, weekStartsOn: 0 | 1 = 1): string[] => {\n const weekdays: string[] = []\n\n for (let i = 0; i < 7; i++) {\n const dayIndex = (weekStartsOn + i) % 7\n const date = new Date(2024, 0, 7 + dayIndex)\n weekdays.push(new Intl.DateTimeFormat(locale, { weekday: 'short' }).format(date))\n }\n\n return weekdays\n}\n\n/**\n * Get localized month names\n */\nexport const getMonthNames = (locale: string): string[] => {\n const months: string[] = []\n for (let i = 0; i < 12; i++) {\n const date = new Date(2024, i, 1)\n months.push(new Intl.DateTimeFormat(locale, { month: 'long' }).format(date))\n }\n return months\n}\n\n/**\n * Get short month names\n */\nexport const getShortMonthNames = (locale: string): string[] => {\n const months: string[] = []\n for (let i = 0; i < 12; i++) {\n const date = new Date(2024, i, 1)\n months.push(new Intl.DateTimeFormat(locale, { month: 'short' }).format(date))\n }\n return months\n}\n\n/**\n * Check if two dates are the same day\n */\nexport const isSameDay = (a: Date, b: Date): boolean => {\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n )\n}\n\n/**\n * Check if two dates are in the same month\n */\nexport const isSameMonth = (a: Date, b: Date): boolean => {\n return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth()\n}\n\n/**\n * Check if two dates are in the same year\n */\nexport const isSameYear = (a: Date, b: Date): boolean => {\n return a.getFullYear() === b.getFullYear()\n}\n\n/**\n * Check if a date is within a range\n */\nexport const isDateInRange = (date: Date, minDate?: Date, maxDate?: Date): boolean => {\n if (minDate && date < minDate) return false\n if (maxDate && date > maxDate) return false\n return true\n}\n\n/**\n * Check if a day is disabled based on min/max dates\n */\nexport const isDayDisabled = (\n year: number,\n month: number,\n day: number,\n minDate?: Date,\n maxDate?: Date,\n): boolean => {\n const date = new Date(year, month, day)\n\n if (minDate) {\n const minDay = new Date(minDate.getFullYear(), minDate.getMonth(), minDate.getDate())\n if (date < minDay) return true\n }\n\n if (maxDate) {\n const maxDay = new Date(maxDate.getFullYear(), maxDate.getMonth(), maxDate.getDate())\n if (date > maxDay) return true\n }\n\n return false\n}\n\n/**\n * Check if a month is disabled based on min/max dates\n */\nexport const isMonthDisabled = (\n year: number,\n month: number,\n minDate?: Date,\n maxDate?: Date,\n): boolean => {\n if (minDate) {\n const minYear = minDate.getFullYear()\n const minMonth = minDate.getMonth()\n if (year < minYear || (year === minYear && month < minMonth)) return true\n }\n\n if (maxDate) {\n const maxYear = maxDate.getFullYear()\n const maxMonth = maxDate.getMonth()\n if (year > maxYear || (year === maxYear && month > maxMonth)) return true\n }\n\n return false\n}\n\n/**\n * Check if a year is disabled based on min/max dates\n */\nexport const isYearDisabled = (year: number, minDate?: Date, maxDate?: Date): boolean => {\n if (minDate && year < minDate.getFullYear()) return true\n if (maxDate && year > maxDate.getFullYear()) return true\n return false\n}\n\n/**\n * Generate year range for year picker\n */\nexport const generateYearRange = (centerYear: number, range: number = 12): number[] => {\n const startYear = centerYear - Math.floor(range / 2)\n const years: number[] = []\n for (let i = 0; i < range; i++) {\n years.push(startYear + i)\n }\n return years\n}\n\n/**\n * Get default display format based on mode\n */\nexport const getDefaultDisplayFormat = (mode: 'date' | 'month' | 'year'): string => {\n switch (mode) {\n case 'date':\n return '02.01.2006'\n case 'month':\n return 'January 2006'\n case 'year':\n return '2006'\n }\n}\n","import styled from '@emotion/styled'\n\nimport {\n CALENDAR_CELL_SIZE,\n CALENDAR_GAP,\n CALENDAR_PADDING,\n DATE_PICKER_SIZE_PROPS,\n DATE_PICKER_VARIANT_PROPS,\n} from './constants'\nimport { DatePickerPosition, DatePickerVariant } from './types'\nimport { FieldLabel } from '../FieldLabel'\nimport { FieldMessage } from '../FieldMessage'\nimport { alpha, COLORS, VacanoComponentSize } from '../../lib'\n\nexport const StyledContainer = styled.div<{ $fullWidth: boolean }>`\n position: relative;\n display: inline-flex;\n flex-direction: column;\n gap: 2px;\n min-width: 180px;\n width: ${({ $fullWidth }) => ($fullWidth ? '100%' : 'fit-content')};\n`\n\nexport const StyledLabel = styled(FieldLabel)`\n margin-left: 6px;\n`\n\nexport const StyledMessage = styled(FieldMessage)`\n margin-left: 6px;\n`\n\nexport const StyledTrigger = styled.button<{\n $size: VacanoComponentSize\n $variant: DatePickerVariant\n $disabled: boolean\n $open: boolean\n $hasValue: boolean\n}>`\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n width: 100%;\n cursor: ${({ $disabled }) => ($disabled ? 'not-allowed' : 'pointer')};\n outline: none;\n font-size: 14px;\n font-weight: 500;\n text-align: left;\n height: ${({ $size }) => DATE_PICKER_SIZE_PROPS[$size].height};\n padding: ${({ $size }) => DATE_PICKER_SIZE_PROPS[$size].padding};\n border-radius: ${({ $size }) => DATE_PICKER_SIZE_PROPS[$size].radius};\n color: ${({ $variant, $disabled, $hasValue }) =>\n $hasValue\n ? DATE_PICKER_VARIANT_PROPS[$variant].color[$disabled ? 'disabled' : 'static']\n : DATE_PICKER_VARIANT_PROPS[$variant].placeholder[$disabled ? 'disabled' : 'static']};\n border: 1px solid\n ${({ $variant, $disabled }) =>\n DATE_PICKER_VARIANT_PROPS[$variant].border[$disabled ? 'disabled' : 'static']};\n background-color: ${({ $variant, $disabled }) =>\n DATE_PICKER_VARIANT_PROPS[$variant].background[$disabled ? 'disabled' : 'static']};\n\n ${({ $open, $variant }) =>\n $open &&\n `\n outline: 2px solid ${DATE_PICKER_VARIANT_PROPS[$variant].focus};\n `}\n`\n\nexport const StyledTriggerText = styled.span`\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`\n\nexport const StyledTriggerIcon = styled.span<{ $open: boolean }>`\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n transition: transform 0.15s ease;\n transform: ${({ $open }) => ($open ? 'rotate(180deg)' : 'rotate(0deg)')};\n`\n\nconst calendarStyles = `\n z-index: 100;\n background-color: ${COLORS.white};\n border: 1px solid ${alpha(COLORS.black, 15)};\n border-radius: 12px;\n box-shadow: 0 4px 16px ${alpha(COLORS.black, 12)};\n padding: ${CALENDAR_PADDING}px;\n`\n\nconst getCalendarTransform = ($open: boolean, $position: DatePickerPosition) => {\n if (!$open) {\n return $position === 'bottom' ? 'translateY(-8px)' : 'translateY(8px)'\n }\n return 'translateY(0)'\n}\n\nexport const StyledCalendar = styled.div<{ $open: boolean; $position: DatePickerPosition }>`\n position: absolute;\n ${({ $position }) =>\n $position === 'bottom' ? 'top: calc(100% + 4px);' : 'bottom: calc(100% + 4px);'}\n left: 0;\n ${calendarStyles}\n opacity: ${({ $open }) => ($open ? 1 : 0)};\n visibility: ${({ $open }) => ($open ? 'visible' : 'hidden')};\n transform: ${({ $open, $position }) => getCalendarTransform($open, $position)};\n transition:\n opacity 0.15s ease,\n transform 0.15s ease,\n visibility 0.15s;\n`\n\nexport const StyledPortalCalendar = styled.div<{ $open: boolean; $position: DatePickerPosition }>`\n position: fixed;\n ${calendarStyles}\n opacity: ${({ $open }) => ($open ? 1 : 0)};\n visibility: ${({ $open }) => ($open ? 'visible' : 'hidden')};\n transform: ${({ $open, $position }) => getCalendarTransform($open, $position)};\n transition:\n opacity 0.15s ease,\n transform 0.15s ease,\n visibility 0.15s;\n`\n\nexport const StyledCalendarHeader = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 8px;\n`\n\nexport const StyledCalendarTitle = styled.button`\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n border: none;\n background: transparent;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 600;\n color: ${COLORS.black};\n cursor: pointer;\n\n &:hover {\n background-color: ${alpha(COLORS.black, 5)};\n }\n`\n\nexport const StyledNavButton = styled.button`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n background: transparent;\n border-radius: 6px;\n color: ${COLORS.black};\n cursor: pointer;\n\n &:hover {\n background-color: ${alpha(COLORS.black, 5)};\n }\n\n &:disabled {\n opacity: 0.3;\n cursor: not-allowed;\n\n &:hover {\n background: transparent;\n }\n }\n`\n\nexport const StyledNavButtons = styled.div`\n display: flex;\n gap: 4px;\n`\n\nexport const StyledWeekdays = styled.div`\n display: grid;\n grid-template-columns: repeat(7, ${CALENDAR_CELL_SIZE}px);\n gap: ${CALENDAR_GAP}px;\n margin-bottom: 4px;\n`\n\nexport const StyledWeekday = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n height: ${CALENDAR_CELL_SIZE}px;\n font-size: 12px;\n font-weight: 500;\n color: ${alpha(COLORS.black, 50)};\n text-transform: uppercase;\n`\n\nexport const StyledDaysGrid = styled.div`\n display: grid;\n grid-template-columns: repeat(7, ${CALENDAR_CELL_SIZE}px);\n gap: ${CALENDAR_GAP}px;\n`\n\nexport const StyledDayCell = styled.button<{\n $selected: boolean\n $today: boolean\n $disabled: boolean\n}>`\n display: flex;\n align-items: center;\n justify-content: center;\n width: ${CALENDAR_CELL_SIZE}px;\n height: ${CALENDAR_CELL_SIZE}px;\n border: none;\n border-radius: 8px;\n font-size: 13px;\n font-weight: ${({ $selected, $today }) => ($selected || $today ? 600 : 500)};\n cursor: ${({ $disabled }) => ($disabled ? 'not-allowed' : 'pointer')};\n background-color: ${({ $selected }) => ($selected ? COLORS.black : 'transparent')};\n color: ${({ $selected, $disabled }) =>\n $selected ? COLORS.white : $disabled ? alpha(COLORS.black, 30) : COLORS.black};\n\n ${({ $today, $selected }) =>\n $today &&\n !$selected &&\n `\n box-shadow: inset 0 0 0 1px ${COLORS.black};\n `}\n\n &:hover:not(:disabled) {\n background-color: ${({ $selected }) => ($selected ? COLORS.black : alpha(COLORS.black, 8))};\n }\n\n &:disabled {\n cursor: not-allowed;\n }\n`\n\nexport const StyledMonthsGrid = styled.div`\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 8px;\n width: ${7 * CALENDAR_CELL_SIZE + 6 * CALENDAR_GAP}px;\n`\n\nexport const StyledMonthCell = styled.button<{\n $selected: boolean\n $current: boolean\n $disabled: boolean\n}>`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 12px 8px;\n border: none;\n border-radius: 8px;\n font-size: 14px;\n font-weight: ${({ $selected, $current }) => ($selected || $current ? 600 : 400)};\n cursor: ${({ $disabled }) => ($disabled ? 'not-allowed' : 'pointer')};\n background-color: ${({ $selected }) => ($selected ? COLORS.black : 'transparent')};\n color: ${({ $selected, $disabled }) =>\n $selected ? COLORS.white : $disabled ? alpha(COLORS.black, 30) : COLORS.black};\n\n ${({ $current, $selected }) =>\n $current &&\n !$selected &&\n `\n box-shadow: inset 0 0 0 1px ${COLORS.black};\n `}\n\n &:hover:not(:disabled) {\n background-color: ${({ $selected }) => ($selected ? COLORS.black : alpha(COLORS.black, 8))};\n }\n`\n\nexport const StyledYearsGrid = styled.div`\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 8px;\n width: ${7 * CALENDAR_CELL_SIZE + 6 * CALENDAR_GAP}px;\n`\n\nexport const StyledYearCell = styled.button<{\n $selected: boolean\n $current: boolean\n $disabled: boolean\n}>`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 12px 8px;\n border: none;\n border-radius: 8px;\n font-size: 14px;\n font-weight: ${({ $selected, $current }) => ($selected || $current ? 600 : 400)};\n cursor: ${({ $disabled }) => ($disabled ? 'not-allowed' : 'pointer')};\n background-color: ${({ $selected }) => ($selected ? COLORS.black : 'transparent')};\n color: ${({ $selected, $disabled }) =>\n $selected ? COLORS.white : $disabled ? alpha(COLORS.black, 30) : COLORS.black};\n\n ${({ $current, $selected }) =>\n $current &&\n !$selected &&\n `\n box-shadow: inset 0 0 0 1px ${COLORS.black};\n `}\n\n &:hover:not(:disabled) {\n background-color: ${({ $selected }) => ($selected ? COLORS.black : alpha(COLORS.black, 8))};\n }\n`\n\nexport const StyledEmptyCell = styled.div`\n width: ${CALENDAR_CELL_SIZE}px;\n height: ${CALENDAR_CELL_SIZE}px;\n`\n","import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport { DATE_PICKER_SIZE_PROPS } from './constants'\nimport {\n formatDateGo,\n generateCalendarDays,\n generateYearRange,\n getDefaultDisplayFormat,\n getShortMonthNames,\n getWeekdayNames,\n isDayDisabled,\n isMonthDisabled,\n isSameDay,\n isSameMonth,\n isSameYear,\n isYearDisabled,\n} from './helpers'\nimport {\n StyledCalendar,\n StyledCalendarHeader,\n StyledCalendarTitle,\n StyledContainer,\n StyledDayCell,\n StyledDaysGrid,\n StyledEmptyCell,\n StyledLabel,\n StyledMessage,\n StyledMonthCell,\n StyledMonthsGrid,\n StyledNavButton,\n StyledNavButtons,\n StyledPortalCalendar,\n StyledTrigger,\n StyledTriggerIcon,\n StyledTriggerText,\n StyledWeekday,\n StyledWeekdays,\n StyledYearCell,\n StyledYearsGrid,\n} from './styled'\nimport { CalendarView, DatePickerPosition, DatePickerProps } from './types'\nimport { ChevronDown, ChevronLeft, ChevronRight } from '../../icons/Lucide'\nimport { newClassNameGetter } from '../../lib'\n\nconst css = newClassNameGetter('date-picker')\n\nconst CALENDAR_GAP = 4\nconst CALENDAR_MIN_HEIGHT = 300\n\ntype PortalPosition = {\n top: number\n left: number\n}\n\nexport const DatePicker = ({\n value,\n onChange,\n mode = 'date',\n displayFormat,\n placeholder,\n locale = 'en',\n weekStartsOn = 1,\n minDate,\n maxDate,\n size = 'default',\n variant = 'normal',\n disabled = false,\n fullWidth = false,\n label,\n message,\n portalRenderNode,\n open: controlledOpen,\n onOpen,\n onClose,\n className,\n classnames,\n ref,\n ...rest\n}: DatePickerProps) => {\n const today = useMemo(() => new Date(), [])\n const [internalOpen, setInternalOpen] = useState(false)\n const [portalPosition, setPortalPosition] = useState<PortalPosition>({ top: 0, left: 0 })\n const [position, setPosition] = useState<DatePickerPosition>('bottom')\n const [view, setView] = useState<CalendarView>(() => {\n if (mode === 'year') return 'years'\n if (mode === 'month') return 'months'\n return 'days'\n })\n\n const [viewDate, setViewDate] = useState<Date>(() => value ?? today)\n const [yearRangeStart, setYearRangeStart] = useState(() => {\n const year = value?.getFullYear() ?? today.getFullYear()\n return year - 6\n })\n\n const containerRef = useRef<HTMLDivElement>(null)\n const triggerRef = useRef<HTMLButtonElement>(null)\n const calendarRef = useRef<HTMLDivElement>(null)\n\n const isControlled = controlledOpen !== undefined\n const open = isControlled ? controlledOpen : internalOpen\n\n const format = displayFormat ?? getDefaultDisplayFormat(mode)\n const weekdays = useMemo(() => getWeekdayNames(locale, weekStartsOn), [locale, weekStartsOn])\n const monthNames = useMemo(() => getShortMonthNames(locale), [locale])\n\n const calendarDays = useMemo(\n () => generateCalendarDays(viewDate.getFullYear(), viewDate.getMonth(), weekStartsOn),\n [viewDate, weekStartsOn],\n )\n\n const yearRange = useMemo(() => generateYearRange(yearRangeStart + 6, 12), [yearRangeStart])\n\n const displayValue = useMemo(() => {\n if (!value) return null\n return formatDateGo(value, format, locale)\n }, [value, format, locale])\n\n const placeholderText = placeholder ?? format.replace(/2006|06|January|Jan|01|02/g, '__')\n\n const updatePosition = useCallback(() => {\n if (!triggerRef.current) return\n\n const triggerRect = triggerRef.current.getBoundingClientRect()\n const calendarHeight = calendarRef.current?.offsetHeight ?? CALENDAR_MIN_HEIGHT\n\n const spaceBelow = window.innerHeight - triggerRect.bottom - CALENDAR_GAP\n const spaceAbove = triggerRect.top - CALENDAR_GAP\n\n const newPosition: DatePickerPosition =\n spaceBelow < calendarHeight && spaceAbove > spaceBelow ? 'top' : 'bottom'\n setPosition(newPosition)\n\n if (portalRenderNode) {\n const top =\n newPosition === 'bottom'\n ? triggerRect.bottom + CALENDAR_GAP\n : triggerRect.top - calendarHeight - CALENDAR_GAP\n\n setPortalPosition({\n top,\n left: triggerRect.left,\n })\n }\n }, [portalRenderNode])\n\n const handleOpen = useCallback(() => {\n if (disabled) return\n\n if (isControlled) {\n onOpen?.()\n } else {\n setInternalOpen(true)\n onOpen?.()\n }\n\n // Reset view based on mode\n if (mode === 'year') {\n setView('years')\n } else if (mode === 'month') {\n setView('months')\n } else {\n setView('days')\n }\n\n // Reset view date to value or today\n const newViewDate = value ?? today\n setViewDate(newViewDate)\n setYearRangeStart(newViewDate.getFullYear() - 6)\n }, [disabled, isControlled, onOpen, mode, value, today])\n\n const handleClose = useCallback(() => {\n if (isControlled) {\n onClose?.()\n } else {\n setInternalOpen(false)\n onClose?.()\n }\n }, [isControlled, onClose])\n\n const handleToggle = useCallback(() => {\n if (open) {\n handleClose()\n } else {\n handleOpen()\n }\n }, [open, handleClose, handleOpen])\n\n const handleSelectDay = useCallback(\n (day: number) => {\n const newDate = new Date(viewDate.getFullYear(), viewDate.getMonth(), day)\n onChange?.(newDate)\n handleClose()\n },\n [viewDate, onChange, handleClose],\n )\n\n const handleSelectMonth = useCallback(\n (month: number) => {\n if (mode === 'month') {\n const newDate = new Date(viewDate.getFullYear(), month, 1)\n onChange?.(newDate)\n handleClose()\n } else {\n setViewDate(new Date(viewDate.getFullYear(), month, 1))\n setView('days')\n }\n },\n [mode, viewDate, onChange, handleClose],\n )\n\n const handleSelectYear = useCallback(\n (year: number) => {\n if (mode === 'year') {\n const newDate = new Date(year, 0, 1)\n onChange?.(newDate)\n handleClose()\n } else if (mode === 'month') {\n setViewDate(new Date(year, viewDate.getMonth(), 1))\n setView('months')\n } else {\n setViewDate(new Date(year, viewDate.getMonth(), 1))\n setView('months')\n }\n },\n [mode, viewDate, onChange, handleClose],\n )\n\n const handlePrevMonth = useCallback(() => {\n setViewDate((prev) => new Date(prev.getFullYear(), prev.getMonth() - 1, 1))\n }, [])\n\n const handleNextMonth = useCallback(() => {\n setViewDate((prev) => new Date(prev.getFullYear(), prev.getMonth() + 1, 1))\n }, [])\n\n const handlePrevYear = useCallback(() => {\n setViewDate((prev) => new Date(prev.getFullYear() - 1, prev.getMonth(), 1))\n }, [])\n\n const handleNextYear = useCallback(() => {\n setViewDate((prev) => new Date(prev.getFullYear() + 1, prev.getMonth(), 1))\n }, [])\n\n const handlePrevYearRange = useCallback(() => {\n setYearRangeStart((prev) => prev - 12)\n }, [])\n\n const handleNextYearRange = useCallback(() => {\n setYearRangeStart((prev) => prev + 12)\n }, [])\n\n const handleTitleClick = useCallback(() => {\n if (view === 'days') {\n setView('months')\n } else if (view === 'months') {\n setView('years')\n }\n }, [view])\n\n useLayoutEffect(() => {\n if (open) {\n updatePosition()\n }\n }, [open, updatePosition])\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n const target = event.target as Node\n const isOutsideContainer = containerRef.current && !containerRef.current.contains(target)\n const isOutsideCalendar = calendarRef.current && !calendarRef.current.contains(target)\n\n if (portalRenderNode) {\n if (isOutsideContainer && isOutsideCalendar) {\n handleClose()\n }\n } else {\n if (isOutsideContainer) {\n handleClose()\n }\n }\n }\n\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n handleClose()\n }\n }\n\n const handleScroll = () => {\n if (open && portalRenderNode) {\n updatePosition()\n }\n }\n\n const handleResize = () => {\n if (open && portalRenderNode) {\n updatePosition()\n }\n }\n\n if (open) {\n document.addEventListener('mousedown', handleClickOutside)\n document.addEventListener('keydown', handleEscape)\n\n if (portalRenderNode) {\n window.addEventListener('scroll', handleScroll, true)\n window.addEventListener('resize', handleResize)\n }\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n document.removeEventListener('keydown', handleEscape)\n window.removeEventListener('scroll', handleScroll, true)\n window.removeEventListener('resize', handleResize)\n }\n }, [open, handleClose, portalRenderNode, updatePosition])\n\n const iconSize = DATE_PICKER_SIZE_PROPS[size].iconSize\n\n const renderDaysView = () => (\n <>\n <StyledCalendarHeader className={css('header', classnames?.header)}>\n <StyledCalendarTitle onClick={handleTitleClick} type=\"button\">\n {new Intl.DateTimeFormat(locale, { month: 'long', year: 'numeric' }).format(viewDate)}\n </StyledCalendarTitle>\n <StyledNavButtons>\n <StyledNavButton onClick={handlePrevMonth} type=\"button\" aria-label=\"Previous month\">\n <ChevronLeft size={16} />\n </StyledNavButton>\n <StyledNavButton onClick={handleNextMonth} type=\"button\" aria-label=\"Next month\">\n <ChevronRight size={16} />\n </StyledNavButton>\n </StyledNavButtons>\n </StyledCalendarHeader>\n <StyledWeekdays>\n {weekdays.map((day, i) => (\n <StyledWeekday key={i}>{day}</StyledWeekday>\n ))}\n </StyledWeekdays>\n <StyledDaysGrid className={css('grid', classnames?.grid)}>\n {calendarDays.map((day, i) =>\n day === null ? (\n <StyledEmptyCell key={i} />\n ) : (\n <StyledDayCell\n key={i}\n type=\"button\"\n className={css('cell', classnames?.cell)}\n $selected={\n value\n ? isSameDay(value, new Date(viewDate.getFullYear(), viewDate.getMonth(), day))\n : false\n }\n $today={isSameDay(today, new Date(viewDate.getFullYear(), viewDate.getMonth(), day))}\n $disabled={isDayDisabled(\n viewDate.getFullYear(),\n viewDate.getMonth(),\n day,\n minDate,\n maxDate,\n )}\n disabled={isDayDisabled(\n viewDate.getFullYear(),\n viewDate.getMonth(),\n day,\n minDate,\n maxDate,\n )}\n onClick={() => handleSelectDay(day)}\n >\n {day}\n </StyledDayCell>\n ),\n )}\n </StyledDaysGrid>\n </>\n )\n\n const renderMonthsView = () => (\n <>\n <StyledCalendarHeader className={css('header', classnames?.header)}>\n <StyledCalendarTitle onClick={handleTitleClick} type=\"button\">\n {viewDate.getFullYear()}\n </StyledCalendarTitle>\n <StyledNavButtons>\n <StyledNavButton onClick={handlePrevYear} type=\"button\" aria-label=\"Previous year\">\n <ChevronLeft size={16} />\n </StyledNavButton>\n <StyledNavButton onClick={handleNextYear} type=\"button\" aria-label=\"Next year\">\n <ChevronRight size={16} />\n </StyledNavButton>\n </StyledNavButtons>\n </StyledCalendarHeader>\n <StyledMonthsGrid className={css('grid', classnames?.grid)}>\n {monthNames.map((month, i) => (\n <StyledMonthCell\n key={i}\n type=\"button\"\n className={css('cell', classnames?.cell)}\n $selected={value ? isSameMonth(value, new Date(viewDate.getFullYear(), i, 1)) : false}\n $current={isSameMonth(today, new Date(viewDate.getFullYear(), i, 1))}\n $disabled={isMonthDisabled(viewDate.getFullYear(), i, minDate, maxDate)}\n disabled={isMonthDisabled(viewDate.getFullYear(), i, minDate, maxDate)}\n onClick={() => handleSelectMonth(i)}\n >\n {month}\n </StyledMonthCell>\n ))}\n </StyledMonthsGrid>\n </>\n )\n\n const renderYearsView = () => (\n <>\n <StyledCalendarHeader className={css('header', classnames?.header)}>\n <StyledCalendarTitle type=\"button\" style={{ cursor: 'default' }}>\n {yearRange[0]} - {yearRange[yearRange.length - 1]}\n </StyledCalendarTitle>\n <StyledNavButtons>\n <StyledNavButton onClick={handlePrevYearRange} type=\"button\" aria-label=\"Previous years\">\n <ChevronLeft size={16} />\n </StyledNavButton>\n <StyledNavButton onClick={handleNextYearRange} type=\"button\" aria-label=\"Next years\">\n <ChevronRight size={16} />\n </StyledNavButton>\n </StyledNavButtons>\n </StyledCalendarHeader>\n <StyledYearsGrid className={css('grid', classnames?.grid)}>\n {yearRange.map((year) => (\n <StyledYearCell\n key={year}\n type=\"button\"\n className={css('cell', classnames?.cell)}\n $selected={value ? isSameYear(value, new Date(year, 0, 1)) : false}\n $current={today.getFullYear() === year}\n $disabled={isYearDisabled(year, minDate, maxDate)}\n disabled={isYearDisabled(year, minDate, maxDate)}\n onClick={() => handleSelectYear(year)}\n >\n {year}\n </StyledYearCell>\n ))}\n </StyledYearsGrid>\n </>\n )\n\n const renderCalendarContent = () => {\n switch (view) {\n case 'days':\n return renderDaysView()\n case 'months':\n return renderMonthsView()\n case 'years':\n return renderYearsView()\n }\n }\n\n const calendar = portalRenderNode ? (\n createPortal(\n <StyledPortalCalendar\n ref={calendarRef}\n $open={open}\n $position={position}\n className={css('calendar', classnames?.calendar)}\n style={{ top: portalPosition.top, left: portalPosition.left }}\n >\n {renderCalendarContent()}\n </StyledPortalCalendar>,\n portalRenderNode,\n )\n ) : (\n <StyledCalendar\n ref={calendarRef}\n $open={open}\n $position={position}\n className={css('calendar', classnames?.calendar)}\n >\n {renderCalendarContent()}\n </StyledCalendar>\n )\n\n return (\n <StyledContainer\n {...rest}\n ref={ref ?? containerRef}\n $fullWidth={fullWidth}\n className={css('container', className)}\n >\n {label && <StyledLabel variant={variant}>{label}</StyledLabel>}\n <StyledTrigger\n ref={triggerRef}\n type=\"button\"\n onClick={handleToggle}\n disabled={disabled}\n $size={size}\n $variant={variant}\n $disabled={disabled}\n $open={open}\n $hasValue={!!displayValue}\n className={css('trigger', classnames?.trigger)}\n >\n <StyledTriggerText>{displayValue ?? placeholderText}</StyledTriggerText>\n <StyledTriggerIcon $open={open}>\n <ChevronDown size={iconSize} />\n </StyledTriggerIcon>\n </StyledTrigger>\n {calendar}\n {message && <StyledMessage variant={variant}>{message}</StyledMessage>}\n </StyledContainer>\n )\n}\n","import { InputVariant } from './types'\nimport { alpha, COLORS, VacanoComponentSize, VacanoInteractiveElementState } from '../../lib'\n\nexport const INPUT_SIZE_PROPS: Record<\n VacanoComponentSize,\n {\n height: string\n padding: string\n radius: string\n prefixSize: string\n }\n> = {\n compact: {\n height: '32px',\n padding: '0 10px',\n radius: '14px',\n prefixSize: '16px',\n },\n default: {\n height: '40px',\n padding: '0 14px',\n radius: '16px',\n prefixSize: '20px',\n },\n}\n\nexport const INPUT_VARIANT_PROPS: Record<\n InputVariant,\n {\n border: VacanoInteractiveElementState\n background: VacanoInteractiveElementState\n color: VacanoInteractiveElementState\n placeholder: VacanoInteractiveElementState\n focus: string\n }\n> = {\n normal: {\n background: {\n static: alpha(COLORS['black'], 2),\n disabled: alpha(COLORS['black'], 10),\n },\n border: {\n static: alpha(COLORS['black'], 60),\n disabled: alpha(COLORS['black'], 10),\n },\n color: {\n static: COLORS['black'],\n disabled: alpha(COLORS['black'], 65),\n },\n placeholder: {\n static: alpha(COLORS['black'], 40),\n disabled: alpha(COLORS['black'], 65),\n },\n focus: alpha(COLORS['iron-grey'], 30),\n },\n error: {\n background: {\n static: alpha(COLORS['red'], 2),\n disabled: alpha(COLORS['red'], 10),\n },\n border: {\n static: alpha(COLORS['red'], 60),\n disabled: alpha(COLORS['red'], 10),\n },\n color: {\n static: COLORS['red'],\n disabled: alpha(COLORS['red'], 65),\n },\n placeholder: {\n static: alpha(COLORS['red'], 40),\n disabled: alpha(COLORS['red'], 65),\n },\n focus: alpha(COLORS['red'], 30),\n },\n}\n","import { INPUT_SIZE_PROPS, INPUT_VARIANT_PROPS } from './constants'\nimport { InputVariant } from './types'\nimport { VacanoComponentSize } from '../../lib'\n\nexport const getInputVariantProps = (variant: InputVariant) => {\n return INPUT_VARIANT_PROPS[variant] ?? INPUT_VARIANT_PROPS['normal']\n}\n\nexport const getInputSizeProps = (size: VacanoComponentSize) => {\n return INPUT_SIZE_PROPS[size] ?? INPUT_SIZE_PROPS['default']\n}\n","import styled from '@emotion/styled'\n\nimport { getInputSizeProps, getInputVariantProps } from './helpers'\nimport { InputVariant } from './types'\nimport { FieldLabel } from '../FieldLabel'\nimport { FieldMessage } from '../FieldMessage'\nimport { alpha, COLORS, VacanoComponentSize } from '../../lib'\n\ntype StyledInputProps = {\n $size: VacanoComponentSize\n $variant: InputVariant\n $hasPrefix: boolean\n}\n\nexport const StyledInputContainer = styled.div<{ $fullWidth: boolean }>`\n display: grid;\n flex-direction: column;\n gap: 2px;\n width: ${(props) => (props.$fullWidth ? '100%' : 'fit-content')};\n`\n\nexport const StyledLabel = styled(FieldLabel)`\n margin-left: 6px;\n`\n\nexport const StyledMessage = styled(FieldMessage)`\n margin-left: 6px;\n`\n\nexport const StyledInputWrapper = styled.div<{\n $size: VacanoComponentSize\n $variant: InputVariant\n $disabled: boolean\n}>`\n display: flex;\n align-items: stretch;\n border: 1px solid\n ${(props) =>\n getInputVariantProps(props.$variant).border[props.$disabled ? 'disabled' : 'static']};\n border-radius: ${(props) => getInputSizeProps(props.$size).radius};\n overflow: hidden;\n`\n\nexport const StyledPrefix = styled.span<{\n $size: VacanoComponentSize\n $variant: InputVariant\n $disabled: boolean\n}>`\n display: flex;\n align-items: center;\n flex-shrink: 0;\n padding: ${(props) => getInputSizeProps(props.$size).padding};\n font-size: 14px;\n font-weight: 500;\n white-space: nowrap;\n user-select: none;\n cursor: ${(props) => (props.$disabled ? 'not-allowed' : 'default')};\n color: ${(props) =>\n getInputVariantProps(props.$variant).color[props.$disabled ? 'disabled' : 'static']};\n background-color: ${(props) =>\n props.$variant === 'error' ? alpha(COLORS.red, 8) : alpha(COLORS.black, 6)};\n border-right: 1px solid\n ${(props) =>\n getInputVariantProps(props.$variant).border[props.$disabled ? 'disabled' : 'static']};\n`\n\nexport const StyledInput = styled.input<StyledInputProps>`\n flex: 1;\n min-width: 0;\n outline: none;\n font-size: 14px;\n font-weight: 500;\n height: ${(props) => getInputSizeProps(props.$size).height};\n padding: ${(props) => getInputSizeProps(props.$size).padding};\n border-radius: ${(props) => (props.$hasPrefix ? '0' : getInputSizeProps(props.$size).radius)};\n\n color: ${(props) => getInputVariantProps(props.$variant).color.static};\n border: ${(props) =>\n props.$hasPrefix ? 'none' : `1px solid ${getInputVariantProps(props.$variant).border.static}`};\n background-color: ${(props) => getInputVariantProps(props.$variant).background.static};\n\n &::placeholder {\n color: ${(props) => getInputVariantProps(props.$variant).placeholder.static};\n }\n\n &:disabled {\n cursor: not-allowed;\n color: ${(props) => getInputVariantProps(props.$variant).color.disabled};\n background-color: ${(props) => getInputVariantProps(props.$variant).background.disabled};\n border-color: ${(props) =>\n props.$hasPrefix ? 'transparent' : getInputVariantProps(props.$variant).border.disabled};\n\n &::placeholder {\n color: ${(props) => getInputVariantProps(props.$variant).placeholder.disabled};\n }\n }\n`\n","import {\n StyledInput,\n StyledInputContainer,\n StyledInputWrapper,\n StyledLabel,\n StyledMessage,\n StyledPrefix,\n} from './styled'\nimport { InputProps } from './types'\nimport { newClassNameGetter } from '../../lib'\n\nconst css = newClassNameGetter('input')\nexport const Input = ({\n className,\n classnames,\n disabled,\n fullWidth,\n label,\n ref,\n message,\n prefix,\n size = 'default',\n variant = 'normal',\n ...rest\n}: InputProps) => {\n const hasPrefix = prefix !== undefined && prefix !== null\n\n const input = (\n <StyledInput\n {...rest}\n ref={ref}\n disabled={disabled}\n $size={size}\n $variant={variant}\n $hasPrefix={hasPrefix}\n className={css('input', classnames?.input)}\n />\n )\n\n return (\n <StyledInputContainer className={css('container', className)} $fullWidth={Boolean(fullWidth)}>\n <StyledLabel variant={variant} className={css('label', classnames?.label)}>\n {label}\n </StyledLabel>\n {hasPrefix ? (\n <StyledInputWrapper $size={size} $variant={variant} $disabled={Boolean(disabled)}>\n <StyledPrefix\n $size={size}\n $variant={variant}\n $disabled={Boolean(disabled)}\n className={css('prefix')}\n >\n {prefix}\n </StyledPrefix>\n {input}\n </StyledInputWrapper>\n ) : (\n input\n )}\n {message && <StyledMessage variant={variant}>{message}</StyledMessage>}\n </StyledInputContainer>\n )\n}\n","import styled from '@emotion/styled'\n\nimport { alpha, COLORS, KEYFRAMES } from '../../lib'\n\ntype StyledOverlayProps = {\n $animated: boolean\n}\n\ntype StyledContentProps = {\n $animated: boolean\n $width: string\n}\n\nexport const StyledOverlay = styled.div<StyledOverlayProps>`\n position: fixed;\n inset: 0;\n z-index: 1000;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ${alpha(COLORS['black'], 50)};\n animation: ${KEYFRAMES.fadeIn} ${(props) => (props.$animated ? '0.15s' : '0s')} ease-out forwards;\n`\n\nexport const StyledContent = styled.div<StyledContentProps>`\n position: relative;\n z-index: 1001;\n width: ${(props) => props.$width};\n max-width: calc(100vw - 32px);\n max-height: calc(100vh - 32px);\n overflow: auto;\n background-color: ${COLORS['white']};\n border-radius: 16px;\n box-shadow: 0 8px 32px ${alpha(COLORS['black'], 20)};\n animation: ${KEYFRAMES.scaleIn} ${(props) => (props.$animated ? '0.15s' : '0s')} ease-out forwards;\n`\n","import { createPortal } from 'react-dom'\n\nimport { StyledContent, StyledOverlay } from './styled'\nimport { ModalProps } from './types'\nimport { newClassNameGetter } from '../../lib'\n\nconst css = newClassNameGetter('modal')\n\nexport const Modal = ({\n animated,\n children,\n className,\n classnames,\n open,\n ref,\n width = '500px',\n ...rest\n}: ModalProps) => {\n if (!open) {\n return null\n }\n\n return createPortal(\n <StyledOverlay className={css('overlay', classnames?.overlay)} $animated={Boolean(animated)}>\n <StyledContent\n {...rest}\n ref={ref}\n className={css('content', className, classnames?.content)}\n $animated={Boolean(animated)}\n $width={width}\n >\n {children}\n </StyledContent>\n </StyledOverlay>,\n document.body,\n )\n}\n","import { MultiSelectVariant } from './types'\nimport { alpha, COLORS } from '../../lib'\n\ntype VariantProps = {\n border: string\n placeholder: string\n}\n\nexport const VARIANT_PROPS: Record<MultiSelectVariant, VariantProps> = {\n normal: {\n border: COLORS['iron-grey'],\n placeholder: COLORS['iron-grey'],\n },\n error: {\n border: COLORS.red,\n placeholder: alpha(COLORS.red, 40),\n },\n}\n","import styled from '@emotion/styled'\n\nimport { VARIANT_PROPS } from './constants'\nimport { MultiSelectVariant } from './types'\nimport { FieldLabel } from '../FieldLabel'\nimport { FieldMessage } from '../FieldMessage'\nimport { COLORS } from '../../lib'\n\nexport const StyledContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 4px;\n`\n\nexport const StyledLabel = styled(FieldLabel)`\n margin-left: 6px;\n`\n\nexport const StyledTrigger = styled.div<{ $variant: MultiSelectVariant; $disabled: boolean }>`\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 6px;\n min-height: 44px;\n padding: 8px 12px;\n border: 1px dashed ${(props) => VARIANT_PROPS[props.$variant].border};\n border-radius: 8px;\n background: ${COLORS.white};\n cursor: ${(props) => (props.$disabled ? 'not-allowed' : 'pointer')};\n opacity: ${(props) => (props.$disabled ? 0.5 : 1)};\n transition: border-color 0.15s ease;\n text-align: left;\n\n &:hover {\n border-color: ${(props) =>\n props.$disabled ? undefined : props.$variant === 'error' ? COLORS.red : COLORS.black};\n }\n`\n\nexport const StyledPlaceholder = styled.span<{ $variant: MultiSelectVariant }>`\n color: ${(props) => VARIANT_PROPS[props.$variant].placeholder};\n font-size: 14px;\n`\n\nexport const StyledModalContent = styled.div`\n display: flex;\n flex-direction: column;\n padding: 20px;\n gap: 16px;\n`\n\nexport const StyledModalHeader = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n`\n\nexport const StyledModalTitle = styled.h3`\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: ${COLORS.black};\n`\n\nexport const StyledOptionsList = styled.div`\n display: flex;\n flex-direction: column;\n gap: 4px;\n min-height: 200px;\n max-height: 300px;\n overflow-y: auto;\n`\n\nexport const StyledOption = styled.label<{ $disabled: boolean }>`\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n border-radius: 8px;\n cursor: ${(props) => (props.$disabled ? 'not-allowed' : 'pointer')};\n opacity: ${(props) => (props.$disabled ? 0.5 : 1)};\n transition: background-color 0.15s ease;\n\n &:hover {\n background-color: ${(props) => (props.$disabled ? 'transparent' : COLORS.gray)};\n }\n`\n\nexport const StyledOptionLabel = styled.span`\n font-size: 14px;\n color: ${COLORS.black};\n`\n\nexport const StyledEmpty = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 32px 16px;\n color: ${COLORS['iron-grey']};\n font-size: 14px;\n text-align: center;\n`\n\nexport const StyledMessage = styled(FieldMessage)`\n margin-left: 6px;\n`\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport {\n StyledContainer,\n StyledEmpty,\n StyledLabel,\n StyledMessage,\n StyledModalContent,\n StyledModalHeader,\n StyledModalTitle,\n StyledOption,\n StyledOptionLabel,\n StyledOptionsList,\n StyledPlaceholder,\n StyledTrigger,\n} from './styled'\nimport { MultiSelectProps } from './types'\nimport { Button } from '../Button'\nimport { Checkbox } from '../Checkbox'\nimport { Chip } from '../Chip'\nimport { Input } from '../Input'\nimport { Modal } from '../Modal'\nimport { X } from '../../icons/Lucide'\nimport { newClassNameGetter } from '../../lib'\n\nconst css = newClassNameGetter('multi-select')\n\nexport const MultiSelect = ({\n className,\n classnames,\n disabled = false,\n emptyMessage = 'No options found',\n label,\n maxVisible = Infinity,\n message,\n modalTitle = 'Select options',\n onChange,\n options,\n placeholder = 'Select...',\n ref,\n searchPlaceholder = 'Search...',\n value,\n variant = 'normal',\n ...rest\n}: MultiSelectProps) => {\n const [isOpen, setIsOpen] = useState(false)\n const [search, setSearch] = useState('')\n const modalContentRef = useRef<HTMLDivElement>(null)\n\n const selectedOptions = useMemo(() => {\n return options.filter((opt) => value.includes(opt.value))\n }, [options, value])\n\n const filteredOptions = useMemo(() => {\n if (!search.trim()) return options\n const query = search.toLowerCase().trim()\n return options.filter((opt) => opt.label.toLowerCase().includes(query))\n }, [options, search])\n\n const visibleChips =\n maxVisible === Infinity ? selectedOptions : selectedOptions.slice(0, maxVisible)\n const hiddenCount = selectedOptions.length - visibleChips.length\n\n const handleOpen = () => {\n if (!disabled) {\n setIsOpen(true)\n setSearch('')\n }\n }\n\n const handleClose = useCallback(() => {\n setIsOpen(false)\n setSearch('')\n }, [])\n\n const handleToggle = (optionValue: string) => {\n if (value.includes(optionValue)) {\n onChange(value.filter((v) => v !== optionValue))\n } else {\n onChange([...value, optionValue])\n }\n }\n\n const handleRemove = (optionValue: string) => {\n onChange(value.filter((v) => v !== optionValue))\n }\n\n useEffect(() => {\n if (!isOpen) return\n\n const handleClickOutside = (e: MouseEvent) => {\n if (modalContentRef.current && !modalContentRef.current.contains(e.target as Node)) {\n handleClose()\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside)\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [isOpen, handleClose])\n\n return (\n <StyledContainer {...rest} ref={ref} className={css('container', className)}>\n {label && (\n <StyledLabel variant={variant} className={css('label', classnames?.trigger)}>\n {label}\n </StyledLabel>\n )}\n <StyledTrigger\n $variant={variant}\n $disabled={disabled}\n onClick={handleOpen}\n className={css('trigger', classnames?.trigger)}\n >\n {selectedOptions.length === 0 ? (\n <StyledPlaceholder\n $variant={variant}\n className={css('placeholder', classnames?.placeholder)}\n >\n {placeholder}\n </StyledPlaceholder>\n ) : (\n <>\n {visibleChips.map((opt) => (\n <Chip\n key={opt.value}\n variant={variant === 'error' ? 'red' : 'gray'}\n deletable\n onDelete={() => handleRemove(opt.value)}\n onClick={(e) => e.stopPropagation()}\n className={css('chip', classnames?.chip)}\n >\n {opt.label}\n </Chip>\n ))}\n {hiddenCount > 0 && (\n <Chip\n variant={variant === 'error' ? 'red' : 'gray'}\n onClick={(e) => e.stopPropagation()}\n className={css('chip', classnames?.chip)}\n >\n +{hiddenCount}\n </Chip>\n )}\n </>\n )}\n </StyledTrigger>\n {message && (\n <StyledMessage variant={variant} className={css('message')}>\n {message}\n </StyledMessage>\n )}\n\n <Modal open={isOpen} width=\"400px\" animated className={css('modal', classnames?.modal)}>\n <StyledModalContent ref={modalContentRef}>\n <StyledModalHeader>\n <StyledModalTitle>{modalTitle}</StyledModalTitle>\n <Button\n variant=\"transparent\"\n size=\"compact\"\n icon={<X />}\n keyBindings={['Escape']}\n onClick={handleClose}\n />\n </StyledModalHeader>\n\n <Input\n type=\"text\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n placeholder={searchPlaceholder}\n autoFocus\n fullWidth\n className={css('search', classnames?.search)}\n />\n\n <StyledOptionsList className={css('options', classnames?.options)}>\n {filteredOptions.length === 0 ? (\n <StyledEmpty className={css('empty', classnames?.empty)}>{emptyMessage}</StyledEmpty>\n ) : (\n filteredOptions.map((opt) => (\n <StyledOption\n key={opt.value}\n $disabled={Boolean(opt.disabled)}\n className={css('option', classnames?.option)}\n >\n <Checkbox\n checked={value.includes(opt.value)}\n disabled={opt.disabled}\n onChange={() => handleToggle(opt.value)}\n />\n <StyledOptionLabel>{opt.label}</StyledOptionLabel>\n </StyledOption>\n ))\n )}\n </StyledOptionsList>\n </StyledModalContent>\n </Modal>\n </StyledContainer>\n )\n}\n","import { OtpCodeVariant } from './types'\nimport { alpha, COLORS, VacanoComponentSize, VacanoInteractiveElementState } from '../../lib'\n\nexport const OTP_CODE_SIZE_PROPS: Record<\n VacanoComponentSize,\n {\n width: string\n height: string\n fontSize: string\n radius: string\n gap: string\n }\n> = {\n compact: {\n width: '36px',\n height: '40px',\n fontSize: '16px',\n radius: '10px',\n gap: '8px',\n },\n default: {\n width: '44px',\n height: '52px',\n fontSize: '20px',\n radius: '12px',\n gap: '10px',\n },\n}\n\nexport const OTP_CODE_VARIANT_PROPS: Record<\n OtpCodeVariant,\n {\n border: VacanoInteractiveElementState\n background: VacanoInteractiveElementState\n color: VacanoInteractiveElementState\n focus: string\n }\n> = {\n normal: {\n background: {\n static: alpha(COLORS['black'], 2),\n disabled: alpha(COLORS['black'], 10),\n },\n border: {\n static: alpha(COLORS['black'], 60),\n disabled: alpha(COLORS['black'], 10),\n },\n color: {\n static: COLORS['black'],\n disabled: alpha(COLORS['black'], 65),\n },\n focus: alpha(COLORS['iron-grey'], 30),\n },\n error: {\n background: {\n static: alpha(COLORS['red'], 2),\n disabled: alpha(COLORS['red'], 10),\n },\n border: {\n static: alpha(COLORS['red'], 60),\n disabled: alpha(COLORS['red'], 10),\n },\n color: {\n static: COLORS['red'],\n disabled: alpha(COLORS['red'], 65),\n },\n focus: alpha(COLORS['red'], 30),\n },\n}\n","import { OTP_CODE_SIZE_PROPS, OTP_CODE_VARIANT_PROPS } from './constants'\nimport { OtpCodeVariant } from './types'\nimport { VacanoComponentSize } from '../../lib'\n\nexport const getOtpCodeSizeProps = (size: VacanoComponentSize) => {\n return OTP_CODE_SIZE_PROPS[size] ?? OTP_CODE_SIZE_PROPS['default']\n}\n\nexport const getOtpCodeVariantProps = (variant: OtpCodeVariant) => {\n return OTP_CODE_VARIANT_PROPS[variant] ?? OTP_CODE_VARIANT_PROPS['normal']\n}\n","import styled from '@emotion/styled'\n\nimport { getOtpCodeSizeProps, getOtpCodeVariantProps } from './helpers'\nimport { OtpCodeVariant } from './types'\nimport { FieldLabel } from '../FieldLabel'\nimport { FieldMessage } from '../FieldMessage'\nimport { VacanoComponentSize } from '../../lib'\n\ntype StyledInputProps = {\n $size: VacanoComponentSize\n $variant: OtpCodeVariant\n}\n\nexport const StyledContainer = styled.div`\n display: inline-flex;\n flex-direction: column;\n gap: 2px;\n`\n\nexport const StyledLabel = styled(FieldLabel)`\n margin-left: 6px;\n`\n\nexport const StyledInputsWrapper = styled.div<{ $size: VacanoComponentSize }>`\n display: flex;\n gap: ${(props) => getOtpCodeSizeProps(props.$size).gap};\n`\n\nexport const StyledInput = styled.input<StyledInputProps>`\n width: ${(props) => getOtpCodeSizeProps(props.$size).width};\n height: ${(props) => getOtpCodeSizeProps(props.$size).height};\n border-radius: ${(props) => getOtpCodeSizeProps(props.$size).radius};\n font-size: ${(props) => getOtpCodeSizeProps(props.$size).fontSize};\n font-weight: 600;\n text-align: center;\n outline: none;\n border: 1px solid ${(props) => getOtpCodeVariantProps(props.$variant).border.static};\n background-color: ${(props) => getOtpCodeVariantProps(props.$variant).background.static};\n color: ${(props) => getOtpCodeVariantProps(props.$variant).color.static};\n transition:\n border-color 0.15s ease,\n box-shadow 0.15s ease;\n\n &:disabled {\n cursor: not-allowed;\n color: ${(props) => getOtpCodeVariantProps(props.$variant).color.disabled};\n background-color: ${(props) => getOtpCodeVariantProps(props.$variant).background.disabled};\n border-color: ${(props) => getOtpCodeVariantProps(props.$variant).border.disabled};\n }\n\n &::selection {\n background-color: transparent;\n }\n`\n\nexport const StyledMessage = styled(FieldMessage)`\n margin-left: 6px;\n`\n","import { ChangeEvent, ClipboardEvent, KeyboardEvent, useCallback, useEffect, useRef } from 'react'\n\nimport {\n StyledContainer,\n StyledInput,\n StyledInputsWrapper,\n StyledLabel,\n StyledMessage,\n} from './styled'\nimport { OtpCodeProps } from './types'\nimport { newClassNameGetter } from '../../lib'\n\nconst css = newClassNameGetter('otp-code')\n\nexport const OtpCode = ({\n autoFocus,\n className,\n classnames,\n disabled,\n label,\n length = 6,\n message,\n onChange,\n ref,\n size = 'default',\n value = '',\n variant = 'normal',\n ...rest\n}: OtpCodeProps) => {\n const inputRefs = useRef<(HTMLInputElement | null)[]>([])\n\n useEffect(() => {\n if (autoFocus && inputRefs.current[0]) {\n inputRefs.current[0].focus()\n }\n }, [autoFocus])\n\n const focusInput = useCallback((index: number) => {\n const input = inputRefs.current[index]\n if (input) {\n input.focus()\n input.select()\n }\n }, [])\n\n const handleChange = useCallback(\n (index: number, e: ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.target.value\n const digit = inputValue.replace(/\\D/g, '').slice(-1)\n\n if (!digit) return\n\n const newValue = value.padEnd(length, ' ').split('')\n\n // Find first empty slot to insert the digit\n const firstEmptyIndex = newValue.findIndex((char) => char === ' ' || char === '')\n const insertIndex = firstEmptyIndex !== -1 ? firstEmptyIndex : index\n\n newValue[insertIndex] = digit\n const updatedValue = newValue.join('').replace(/ /g, '')\n\n onChange?.(updatedValue)\n\n // Move focus to the next empty slot after insertion\n const nextEmptyIndex = insertIndex + 1\n if (nextEmptyIndex < length) {\n focusInput(nextEmptyIndex)\n }\n },\n [value, length, onChange, focusInput],\n )\n\n const handleKeyDown = useCallback(\n (index: number, e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Backspace') {\n e.preventDefault()\n const newValue = value.split('')\n\n if (newValue[index]) {\n newValue[index] = ''\n onChange?.(newValue.join(''))\n } else if (index > 0) {\n newValue[index - 1] = ''\n onChange?.(newValue.join(''))\n focusInput(index - 1)\n }\n } else if (e.key === 'ArrowLeft' && index > 0) {\n e.preventDefault()\n focusInput(index - 1)\n } else if (e.key === 'ArrowRight' && index < length - 1) {\n e.preventDefault()\n focusInput(index + 1)\n }\n },\n [value, length, onChange, focusInput],\n )\n\n const handlePaste = useCallback(\n (e: ClipboardEvent<HTMLInputElement>) => {\n e.preventDefault()\n const pastedData = e.clipboardData.getData('text').replace(/\\D/g, '').slice(0, length)\n\n if (pastedData) {\n onChange?.(pastedData)\n\n const nextIndex = Math.min(pastedData.length, length - 1)\n focusInput(nextIndex)\n }\n },\n [length, onChange, focusInput],\n )\n\n return (\n <StyledContainer ref={ref} className={css('container', className)} {...rest}>\n {label && (\n <StyledLabel variant={variant} className={css('label', classnames?.label)}>\n {label}\n </StyledLabel>\n )}\n <StyledInputsWrapper $size={size}>\n {Array.from({ length }).map((_, index) => (\n <StyledInput\n key={index}\n ref={(el) => {\n inputRefs.current[index] = el\n }}\n type=\"text\"\n inputMode=\"numeric\"\n autoComplete=\"one-time-code\"\n maxLength={2}\n disabled={disabled}\n value={value[index] ?? ''}\n onChange={(e) => handleChange(index, e)}\n onKeyDown={(e) => handleKeyDown(index, e)}\n onPaste={handlePaste}\n onFocus={(e) => e.target.select()}\n $size={size}\n $variant={variant}\n className={css('input', classnames?.input)}\n />\n ))}\n </StyledInputsWrapper>\n {message && (\n <StyledMessage variant={variant} className={css('message')}>\n {message}\n </StyledMessage>\n )}\n </StyledContainer>\n )\n}\n","import { RadioVariant } from './types'\nimport { alpha, COLORS } from '../../lib'\n\nexport const RADIO_VARIANT_PROPS: Record<\n RadioVariant,\n {\n box: {\n border: string\n borderChecked: string\n background: string\n backgroundChecked: string\n focusShadow: string\n }\n dot: string\n label: string\n }\n> = {\n normal: {\n box: {\n border: alpha(COLORS['iron-grey'], 30),\n borderChecked: COLORS['iron-grey'],\n background: COLORS['white'],\n backgroundChecked: COLORS['white'],\n focusShadow: alpha(COLORS['iron-grey'], 30),\n },\n dot: COLORS['black'],\n label: COLORS['black'],\n },\n error: {\n box: {\n border: COLORS['red'],\n borderChecked: COLORS['red'],\n background: COLORS['white'],\n backgroundChecked: COLORS['white'],\n focusShadow: alpha(COLORS['red'], 30),\n },\n dot: COLORS['red'],\n label: COLORS['red'],\n },\n}\n","import { RADIO_VARIANT_PROPS } from './constants'\nimport { RadioVariant } from './types'\n\nexport const getRadioVariantProps = (variant: RadioVariant) => {\n return RADIO_VARIANT_PROPS[variant] ?? RADIO_VARIANT_PROPS['normal']\n}\n","import styled from '@emotion/styled'\n\nimport { getRadioVariantProps } from './helpers'\nimport { RadioVariant } from './types'\n\ntype StyledContainerProps = {\n $disabled: boolean\n $variant: RadioVariant\n}\n\ntype StyledBoxProps = {\n $checked: boolean\n $variant: RadioVariant\n}\n\ntype StyledDotProps = {\n $visible: boolean\n $variant: RadioVariant\n}\n\ntype StyledLabelProps = {\n $variant: RadioVariant\n}\n\nexport const StyledContainer = styled.label<StyledContainerProps>`\n display: inline-flex;\n align-items: flex-start;\n gap: 8px;\n cursor: ${(props) => (props.$disabled ? 'not-allowed' : 'pointer')};\n opacity: ${(props) => (props.$disabled ? 0.5 : 1)};\n`\n\nexport const StyledInput = styled.input`\n position: absolute;\n opacity: 0;\n width: 0;\n height: 0;\n pointer-events: none;\n`\n\nexport const StyledBox = styled.span<StyledBoxProps>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 18px;\n height: 18px;\n border-radius: 50%;\n border: 1.5px solid\n ${(props) =>\n props.$checked\n ? getRadioVariantProps(props.$variant).box.borderChecked\n : getRadioVariantProps(props.$variant).box.border};\n background-color: ${(props) =>\n props.$checked\n ? getRadioVariantProps(props.$variant).box.backgroundChecked\n : getRadioVariantProps(props.$variant).box.background};\n transition:\n border-color 0.15s ease,\n background-color 0.15s ease,\n box-shadow 0.15s ease;\n`\n\nexport const StyledDot = styled.span<StyledDotProps>`\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: ${(props) => getRadioVariantProps(props.$variant).dot};\n opacity: ${(props) => (props.$visible ? 1 : 0)};\n transform: ${(props) => (props.$visible ? 'scale(1)' : 'scale(0.5)')};\n transition:\n opacity 0.15s ease,\n transform 0.15s ease;\n`\n\nexport const StyledLabel = styled.span<StyledLabelProps>`\n font-size: 14px;\n font-weight: 500;\n line-height: 1.5;\n color: ${(props) => getRadioVariantProps(props.$variant).label};\n user-select: none;\n\n a {\n color: inherit;\n text-decoration: underline;\n cursor: pointer;\n\n &:hover {\n text-decoration: none;\n }\n }\n`\n","import { StyledBox, StyledContainer, StyledDot, StyledInput, StyledLabel } from './styled'\nimport { RadioProps } from './types'\nimport { newClassNameGetter } from '../../lib'\n\nconst css = newClassNameGetter('radio')\n\nexport const Radio = ({\n checked,\n className,\n classnames,\n disabled,\n label,\n onChange,\n ref,\n variant = 'normal',\n ...rest\n}: RadioProps) => {\n return (\n <StyledContainer\n className={css('container', className)}\n $disabled={Boolean(disabled)}\n $variant={variant}\n >\n <StyledInput\n {...rest}\n ref={ref}\n type=\"radio\"\n className={css('input', classnames?.input)}\n checked={checked}\n disabled={disabled}\n onChange={onChange}\n />\n <StyledBox className={css('box', classnames?.box)} $checked={checked} $variant={variant}>\n <StyledDot className={css('dot', classnames?.dot)} $visible={checked} $variant={variant} />\n </StyledBox>\n {label && (\n <StyledLabel className={css('label', classnames?.label)} $variant={variant}>\n {label}\n </StyledLabel>\n )}\n </StyledContainer>\n )\n}\n","import { RadioCardVariant } from './types'\nimport { alpha, COLORS, VacanoInteractiveElementState } from '../../lib'\n\ntype RadioCardVariantProps = {\n border: VacanoInteractiveElementState\n borderChecked: string\n background: VacanoInteractiveElementState\n backgroundChecked: string\n focusRing: string\n label: VacanoInteractiveElementState\n description: VacanoInteractiveElementState\n}\n\nexport const RADIO_CARD_VARIANT_PROPS: Record<RadioCardVariant, RadioCardVariantProps> = {\n normal: {\n border: {\n static: alpha(COLORS['black'], 20),\n hover: alpha(COLORS['black'], 40),\n active: alpha(COLORS['black'], 40),\n disabled: alpha(COLORS['black'], 10),\n },\n borderChecked: COLORS['black'],\n background: {\n static: COLORS['white'],\n hover: COLORS['white'],\n active: COLORS['white'],\n disabled: alpha(COLORS['black'], 5),\n },\n backgroundChecked: alpha(COLORS['black'], 5),\n focusRing: alpha(COLORS['black'], 20),\n label: {\n static: COLORS['black'],\n hover: COLORS['black'],\n active: COLORS['black'],\n disabled: alpha(COLORS['black'], 40),\n },\n description: {\n static: alpha(COLORS['black'], 60),\n hover: alpha(COLORS['black'], 60),\n active: alpha(COLORS['black'], 60),\n disabled: alpha(COLORS['black'], 30),\n },\n },\n error: {\n border: {\n static: COLORS['red'],\n hover: COLORS['red'],\n active: COLORS['red'],\n disabled: alpha(COLORS['red'], 30),\n },\n borderChecked: COLORS['red'],\n background: {\n static: COLORS['white'],\n hover: COLORS['white'],\n active: COLORS['white'],\n disabled: alpha(COLORS['red'], 5),\n },\n backgroundChecked: alpha(COLORS['red'], 5),\n focusRing: alpha(COLORS['red'], 20),\n label: {\n static: COLORS['red'],\n hover: COLORS['red'],\n active: COLORS['red'],\n disabled: alpha(COLORS['red'], 40),\n },\n description: {\n static: alpha(COLORS['red'], 70),\n hover: alpha(COLORS['red'], 70),\n active: alpha(COLORS['red'], 70),\n disabled: alpha(COLORS['red'], 40),\n },\n },\n}\n","import { RADIO_CARD_VARIANT_PROPS } from './constants'\nimport { RadioCardVariant } from './types'\n\nexport const getRadioCardVariantProps = (variant: RadioCardVariant) => {\n return RADIO_CARD_VARIANT_PROPS[variant] ?? RADIO_CARD_VARIANT_PROPS['normal']\n}\n","import styled from '@emotion/styled'\n\nimport { getRadioCardVariantProps } from './helpers'\nimport { RadioCardVariant } from './types'\n\ntype StyledContainerProps = {\n $checked: boolean\n $disabled: boolean\n $fullWidth: boolean\n $variant: RadioCardVariant\n}\n\ntype StyledLabelProps = {\n $variant: RadioCardVariant\n}\n\ntype StyledDescriptionProps = {\n $variant: RadioCardVariant\n}\n\nexport const StyledContainer = styled.label<StyledContainerProps>`\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: start;\n gap: 8px;\n padding: 12px;\n background-color: ${(props) => {\n const variantProps = getRadioCardVariantProps(props.$variant)\n if (props.$disabled) return variantProps.background.disabled\n if (props.$checked) return variantProps.backgroundChecked\n return variantProps.background.static\n }};\n border: 1px solid\n ${(props) => {\n const variantProps = getRadioCardVariantProps(props.$variant)\n if (props.$disabled) return variantProps.border.disabled\n if (props.$checked) return variantProps.borderChecked\n return variantProps.border.static\n }};\n border-radius: 12px;\n cursor: ${(props) => (props.$disabled ? 'not-allowed' : 'pointer')};\n transition:\n border-color 0.15s ease,\n background-color 0.15s ease;\n width: ${(props) => (props.$fullWidth ? '100%' : 'fit-content')};\n min-width: 0;\n\n &:hover:not([data-disabled='true']) {\n border-color: ${(props) => {\n const variantProps = getRadioCardVariantProps(props.$variant)\n if (props.$checked) return variantProps.borderChecked\n return variantProps.border.hover\n }};\n }\n\n .vacano_radio_container {\n pointer-events: none;\n }\n`\n\nexport const StyledInput = styled.input`\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n`\n\nexport const StyledContent = styled.div`\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n`\n\nexport const StyledLabel = styled.span<StyledLabelProps>`\n font-size: 14px;\n font-weight: 500;\n line-height: 1.4;\n color: ${(props) => getRadioCardVariantProps(props.$variant).label.static};\n\n label[data-disabled='true'] & {\n color: ${(props) => getRadioCardVariantProps(props.$variant).label.disabled};\n }\n`\n\nexport const StyledDescription = styled.span<StyledDescriptionProps>`\n font-size: 12px;\n font-weight: 400;\n line-height: 1.4;\n color: ${(props) => getRadioCardVariantProps(props.$variant).description.static};\n\n label[data-disabled='true'] & {\n color: ${(props) => getRadioCardVariantProps(props.$variant).description.disabled};\n }\n`\n","import {\n StyledContainer,\n StyledContent,\n StyledDescription,\n StyledInput,\n StyledLabel,\n} from './styled'\nimport { RadioCardProps } from './types'\nimport { Radio } from '../Radio'\nimport { newClassNameGetter } from '../../lib'\n\nconst css = newClassNameGetter('radio-card')\n\nexport const RadioCard = ({\n checked,\n className,\n classnames,\n description,\n disabled,\n fullWidth = false,\n label,\n onChange,\n ref,\n variant = 'normal',\n ...rest\n}: RadioCardProps) => {\n return (\n <StyledContainer\n className={css('container', className)}\n $checked={checked}\n $disabled={Boolean(disabled)}\n $fullWidth={fullWidth}\n $variant={variant}\n data-disabled={disabled}\n >\n <StyledInput\n {...rest}\n ref={ref}\n type=\"radio\"\n checked={checked}\n disabled={disabled}\n onChange={onChange}\n />\n <Radio\n className={classnames?.radio}\n checked={checked}\n disabled={disabled}\n variant={variant}\n onChange={() => {}}\n tabIndex={-1}\n aria-hidden\n />\n <StyledContent className={css('content', classnames?.content)}>\n <StyledLabel className={css('label', classnames?.label)} $variant={variant}>\n {label}\n </StyledLabel>\n {description && (\n <StyledDescription\n className={css('description', classnames?.description)}\n $variant={variant}\n >\n {description}\n </StyledDescription>\n )}\n </StyledContent>\n </StyledContainer>\n )\n}\n","import { alpha, COLORS } from '../../lib'\n\nexport const RADIO_GROUP_PROPS = {\n label: {\n color: COLORS['black'],\n disabledColor: alpha(COLORS['black'], 40),\n },\n}\n","import styled from '@emotion/styled'\n\nimport { RADIO_GROUP_PROPS } from './constants'\n\ntype StyledLabelProps = {\n $disabled?: boolean\n}\n\nexport const StyledContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 8px;\n`\n\nexport const StyledLabel = styled.span<StyledLabelProps>`\n font-size: 13px;\n font-weight: 500;\n line-height: 1.5;\n color: ${(props) =>\n props.$disabled ? RADIO_GROUP_PROPS.label.disabledColor : RADIO_GROUP_PROPS.label.color};\n margin-bottom: 4px;\n`\n\nexport const StyledOptions = styled.div`\n display: flex;\n flex-direction: column;\n gap: 12px;\n`\n","import { StyledContainer, StyledLabel, StyledOptions } from './styled'\nimport { RadioGroupProps } from './types'\nimport { Radio } from '../Radio'\nimport { newClassNameGetter } from '../../lib'\n\nconst css = newClassNameGetter('radio-group')\n\nexport const RadioGroup = <T extends string = string>({\n className,\n classnames,\n disabled,\n label,\n name,\n onChange,\n options,\n ref,\n value,\n variant = 'normal',\n ...rest\n}: RadioGroupProps<T>) => {\n return (\n <StyledContainer {...rest} ref={ref} className={css('container', className)}>\n {label && (\n <StyledLabel className={css('label', classnames?.label)} $disabled={disabled}>\n {label}\n </StyledLabel>\n )}\n <StyledOptions className={css('options', classnames?.options)}>\n {options.map((option) => (\n <Radio\n key={option.value}\n className={classnames?.radio}\n name={name}\n checked={value === option.value}\n label={option.label}\n disabled={disabled}\n variant={variant}\n onChange={() => onChange(option.value)}\n />\n ))}\n </StyledOptions>\n </StyledContainer>\n )\n}\n","import { SelectVariant } from './types'\nimport { alpha, COLORS, VacanoComponentSize, VacanoInteractiveElementState } from '../../lib'\n\nexport const OPTION_HEIGHT = 40\nexport const OPTION_GAP = 2\nexport const DROPDOWN_PADDING = 4\n\nexport const SELECT_SIZE_PROPS: Record<\n VacanoComponentSize,\n {\n height: string\n padding: string\n radius: string\n }\n> = {\n compact: {\n height: '32px',\n padding: '0 10px',\n radius: '14px',\n },\n default: {\n height: '40px',\n padding: '0 14px',\n radius: '16px',\n },\n}\n\nexport const SELECT_VARIANT_PROPS: Record<\n SelectVariant,\n {\n border: VacanoInteractiveElementState\n background: VacanoInteractiveElementState\n color: VacanoInteractiveElementState\n placeholder: string\n focus: string\n }\n> = {\n normal: {\n background: {\n static: alpha(COLORS['black'], 2),\n disabled: alpha(COLORS['black'], 10),\n },\n border: {\n static: alpha(COLORS['black'], 60),\n disabled: alpha(COLORS['black'], 10),\n },\n color: {\n static: COLORS['black'],\n disabled: alpha(COLORS['black'], 65),\n },\n placeholder: alpha(COLORS['black'], 40),\n focus: alpha(COLORS['iron-grey'], 30),\n },\n error: {\n background: {\n static: alpha(COLORS['red'], 2),\n disabled: alpha(COLORS['red'], 10),\n },\n border: {\n static: alpha(COLORS['red'], 60),\n disabled: alpha(COLORS['red'], 10),\n },\n color: {\n static: COLORS['red'],\n disabled: alpha(COLORS['red'], 65),\n },\n placeholder: alpha(COLORS['red'], 40),\n focus: alpha(COLORS['red'], 30),\n },\n}\n","import { SELECT_SIZE_PROPS, SELECT_VARIANT_PROPS } from './constants'\nimport { SelectVariant } from './types'\nimport { VacanoComponentSize } from '../../lib'\n\nexport const getSelectSizeProps = (size: VacanoComponentSize) => {\n return SELECT_SIZE_PROPS[size] ?? SELECT_SIZE_PROPS['default']\n}\n\nexport const getSelectVariantProps = (variant: SelectVariant) => {\n return SELECT_VARIANT_PROPS[variant] ?? SELECT_VARIANT_PROPS['normal']\n}\n","import styled from '@emotion/styled'\n\nimport { getSelectSizeProps, getSelectVariantProps } from './helpers'\nimport { SelectVariant } from './types'\nimport { FieldLabel } from '../FieldLabel'\nimport { FieldMessage } from '../FieldMessage'\nimport { alpha, COLORS, VacanoComponentSize } from '../../lib'\n\nexport const StyledContainer = styled.div<{ $fullWidth: boolean }>`\n position: relative;\n display: grid;\n gap: 2px;\n min-width: 180px;\n width: ${(props) => (props.$fullWidth ? '100%' : 'fit-content')};\n`\n\nexport const StyledLabel = styled(FieldLabel)`\n margin-left: 6px;\n`\n\nexport const StyledMessage = styled(FieldMessage)`\n margin-left: 6px;\n`\n\nexport const StyledTrigger = styled.button<{\n $size: VacanoComponentSize\n $variant: SelectVariant\n $disabled: boolean\n $hasValue: boolean\n}>`\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n width: 100%;\n outline: none;\n font-size: 14px;\n font-weight: 500;\n text-align: left;\n cursor: ${(props) => (props.$disabled ? 'not-allowed' : 'pointer')};\n height: ${(props) => getSelectSizeProps(props.$size).height};\n padding: ${(props) => getSelectSizeProps(props.$size).padding};\n border-radius: ${(props) => getSelectSizeProps(props.$size).radius};\n\n color: ${(props) =>\n props.$hasValue\n ? props.$disabled\n ? getSelectVariantProps(props.$variant).color.disabled\n : getSelectVariantProps(props.$variant).color.static\n : getSelectVariantProps(props.$variant).placeholder};\n border: 1px solid\n ${(props) =>\n props.$disabled\n ? getSelectVariantProps(props.$variant).border.disabled\n : getSelectVariantProps(props.$variant).border.static};\n background-color: ${(props) =>\n props.$disabled\n ? getSelectVariantProps(props.$variant).background.disabled\n : getSelectVariantProps(props.$variant).background.static};\n`\n\nexport const StyledTriggerText = styled.span`\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`\n\nexport const StyledChevron = styled.span<{ $open: boolean }>`\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n transition: transform 0.2s ease;\n transform: rotate(${(props) => (props.$open ? '180deg' : '0deg')});\n`\n\nconst dropdownStyles = `\n display: grid;\n gap: 2px;\n padding: 4px;\n background: ${COLORS.white};\n border: 1px solid ${alpha(COLORS.black, 10)};\n border-radius: 16px;\n box-shadow: 0 4px 20px ${alpha(COLORS.black, 15)};\n z-index: 1000;\n`\n\nexport const StyledDropdown = styled.div`\n position: absolute;\n left: -4px;\n width: calc(100% + 8px);\n overflow: hidden;\n ${dropdownStyles}\n`\n\nexport const StyledPortalDropdown = styled.div`\n position: fixed;\n overflow: hidden;\n ${dropdownStyles}\n`\n\nexport const StyledOption = styled.button<{ $selected: boolean; $disabled: boolean }>`\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n width: 100%;\n min-width: 0;\n height: 40px;\n padding: 0 14px;\n border: none;\n background: ${(props) => (props.$selected ? alpha(COLORS.black, 6) : 'transparent')};\n border-radius: 12px;\n font-size: 14px;\n font-weight: 500;\n text-align: left;\n cursor: ${(props) => (props.$disabled ? 'not-allowed' : 'pointer')};\n color: ${(props) => (props.$disabled ? alpha(COLORS.black, 40) : COLORS.black)};\n transition: background-color 0.15s ease;\n\n &:hover:not(:disabled) {\n background: ${alpha(COLORS.black, 8)};\n }\n\n & > span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n min-width: 0;\n }\n`\n\nexport const StyledCheckmark = styled.span`\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n color: ${COLORS.black};\n`\n","import { useEffect, useLayoutEffect, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport { DROPDOWN_PADDING, OPTION_GAP, OPTION_HEIGHT } from './constants'\nimport {\n StyledCheckmark,\n StyledChevron,\n StyledContainer,\n StyledDropdown,\n StyledLabel,\n StyledMessage,\n StyledOption,\n StyledPortalDropdown,\n StyledTrigger,\n StyledTriggerText,\n} from './styled'\nimport { SelectProps } from './types'\nimport { Check, ChevronDown } from '../../icons/Lucide'\nimport { newClassNameGetter } from '../../lib'\n\nconst css = newClassNameGetter('select')\n\ntype PortalPosition = {\n top: number\n left: number\n width: number\n}\n\nexport const Select = ({\n className,\n classnames,\n disabled = false,\n fullWidth = false,\n label,\n message,\n onChange,\n options,\n placeholder = 'Select...',\n portalRenderNode,\n ref,\n size = 'default',\n value,\n variant = 'normal',\n ...rest\n}: SelectProps) => {\n const [isOpen, setIsOpen] = useState(false)\n const [portalPosition, setPortalPosition] = useState<PortalPosition>({\n top: 0,\n left: 0,\n width: 0,\n })\n\n const containerRef = useRef<HTMLDivElement>(null)\n const triggerRef = useRef<HTMLButtonElement>(null)\n const dropdownRef = useRef<HTMLDivElement>(null)\n\n const selectedOption = options.find((opt) => opt.value === value)\n const selectedIndex = Math.max(\n 0,\n options.findIndex((opt) => opt.value === value),\n )\n const dropdownTop = -(selectedIndex * (OPTION_HEIGHT + OPTION_GAP) + DROPDOWN_PADDING)\n\n const updatePortalPosition = () => {\n if (!triggerRef.current || !portalRenderNode) return\n\n const triggerRect = triggerRef.current.getBoundingClientRect()\n const selectedOffset = selectedIndex * (OPTION_HEIGHT + OPTION_GAP) + DROPDOWN_PADDING\n\n let top = triggerRect.top - selectedOffset\n\n const dropdownHeight =\n options.length * OPTION_HEIGHT + (options.length - 1) * OPTION_GAP + DROPDOWN_PADDING * 2\n const minTop = 8\n const maxTop = window.innerHeight - dropdownHeight - 8\n\n if (top < minTop) top = minTop\n if (top > maxTop) top = maxTop\n\n setPortalPosition({\n top,\n left: triggerRect.left - DROPDOWN_PADDING,\n width: triggerRect.width + DROPDOWN_PADDING * 2,\n })\n }\n\n const handleSelect = (optionValue: string) => {\n onChange?.(optionValue)\n setIsOpen(false)\n triggerRef.current?.focus()\n }\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (disabled || options.length === 0) return\n\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n setIsOpen((prev) => !prev)\n } else if (e.key === 'Escape' && isOpen) {\n e.preventDefault()\n setIsOpen(false)\n } else if (e.key === 'ArrowDown' && !isOpen) {\n e.preventDefault()\n setIsOpen(true)\n }\n }\n\n useLayoutEffect(() => {\n if (isOpen && portalRenderNode) {\n updatePortalPosition()\n }\n }, [isOpen, portalRenderNode, selectedIndex, options.length])\n\n useEffect(() => {\n if (!isOpen) return\n\n const handleClickOutside = (e: MouseEvent) => {\n const target = e.target as Node\n const isOutsideContainer = containerRef.current && !containerRef.current.contains(target)\n const isOutsideDropdown = dropdownRef.current && !dropdownRef.current.contains(target)\n\n if (portalRenderNode) {\n if (isOutsideContainer && isOutsideDropdown) {\n setIsOpen(false)\n }\n } else {\n if (isOutsideContainer) {\n setIsOpen(false)\n }\n }\n }\n\n const handleScroll = () => {\n if (portalRenderNode) {\n updatePortalPosition()\n }\n }\n\n const handleResize = () => {\n if (portalRenderNode) {\n updatePortalPosition()\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside)\n\n if (portalRenderNode) {\n window.addEventListener('scroll', handleScroll, true)\n window.addEventListener('resize', handleResize)\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n window.removeEventListener('scroll', handleScroll, true)\n window.removeEventListener('resize', handleResize)\n }\n }, [isOpen, portalRenderNode])\n\n const renderOptions = () =>\n options.map((option) => (\n <StyledOption\n key={option.value}\n type=\"button\"\n role=\"option\"\n $selected={option.value === value}\n $disabled={option.disabled ?? false}\n disabled={option.disabled}\n aria-selected={option.value === value}\n onClick={() => handleSelect(option.value)}\n className={css('option', classnames?.option)}\n >\n <span>{option.label}</span>\n {option.value === value && (\n <StyledCheckmark>\n <Check size={16} />\n </StyledCheckmark>\n )}\n </StyledOption>\n ))\n\n const dropdown = portalRenderNode ? (\n createPortal(\n <StyledPortalDropdown\n ref={dropdownRef}\n role=\"listbox\"\n style={{\n top: portalPosition.top,\n left: portalPosition.left,\n width: portalPosition.width,\n }}\n className={css('dropdown', classnames?.dropdown)}\n >\n {renderOptions()}\n </StyledPortalDropdown>,\n portalRenderNode,\n )\n ) : (\n <StyledDropdown\n ref={dropdownRef}\n role=\"listbox\"\n style={{ top: dropdownTop }}\n className={css('dropdown', classnames?.dropdown)}\n >\n {renderOptions()}\n </StyledDropdown>\n )\n\n return (\n <StyledContainer\n {...rest}\n ref={(node) => {\n ;(containerRef as React.MutableRefObject<HTMLDivElement | null>).current = node\n if (typeof ref === 'function') ref(node)\n else if (ref) ref.current = node\n }}\n $fullWidth={fullWidth}\n className={css('container', className)}\n >\n {label && (\n <StyledLabel\n variant={variant === 'error' ? 'error' : 'normal'}\n className={css('label', classnames?.label)}\n >\n {label}\n </StyledLabel>\n )}\n\n <StyledTrigger\n ref={triggerRef}\n type=\"button\"\n $size={size}\n $variant={variant}\n $disabled={disabled}\n $hasValue={Boolean(selectedOption)}\n disabled={disabled}\n onClick={() => !disabled && options.length > 0 && setIsOpen((prev) => !prev)}\n onKeyDown={handleKeyDown}\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n className={css('trigger', classnames?.trigger)}\n >\n <StyledTriggerText>{selectedOption?.label ?? placeholder}</StyledTriggerText>\n <StyledChevron $open={isOpen}>\n <ChevronDown size={16} />\n </StyledChevron>\n </StyledTrigger>\n\n {isOpen && dropdown}\n {message && <StyledMessage variant={variant}>{message}</StyledMessage>}\n </StyledContainer>\n )\n}\n","import { TagsVariant } from './types'\nimport { alpha, COLORS } from '../../lib'\n\ntype VariantProps = {\n border: string\n placeholder: string\n}\n\nexport const VARIANT_PROPS: Record<TagsVariant, VariantProps> = {\n normal: {\n border: COLORS['iron-grey'],\n placeholder: COLORS['iron-grey'],\n },\n error: {\n border: COLORS.red,\n placeholder: alpha(COLORS.red, 40),\n },\n}\n","import styled from '@emotion/styled'\n\nimport { VARIANT_PROPS } from './constants'\nimport { TagsVariant } from './types'\nimport { FieldLabel } from '../FieldLabel'\nimport { FieldMessage } from '../FieldMessage'\nimport { alpha, COLORS } from '../../lib'\n\nexport const StyledContainer = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n gap: 4px;\n`\n\nexport const StyledLabel = styled(FieldLabel)`\n margin-left: 6px;\n`\n\nexport const StyledTrigger = styled.div<{\n $variant: TagsVariant\n $disabled: boolean\n $focused: boolean\n}>`\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 6px;\n min-height: 44px;\n padding: 8px 12px;\n border: 1px dashed ${(props) => VARIANT_PROPS[props.$variant].border};\n border-radius: 8px;\n background: ${COLORS.white};\n cursor: ${(props) => (props.$disabled ? 'not-allowed' : 'text')};\n opacity: ${(props) => (props.$disabled ? 0.5 : 1)};\n transition: border-color 0.15s ease;\n\n &:hover {\n border-color: ${(props) =>\n props.$disabled\n ? VARIANT_PROPS[props.$variant].border\n : props.$variant === 'error'\n ? COLORS.red\n : COLORS.black};\n }\n\n ${(props) =>\n props.$focused &&\n `\n outline: 2px solid ${props.$variant === 'error' ? COLORS.red : COLORS['steel-blue']};\n outline-offset: 2px;\n `}\n`\n\nexport const StyledInput = styled.input<{ $disabled: boolean; $variant: TagsVariant }>`\n flex: 1;\n min-width: 80px;\n border: none;\n outline: none;\n background: transparent;\n font-size: 14px;\n color: ${COLORS.black};\n cursor: ${(props) => (props.$disabled ? 'not-allowed' : 'text')};\n\n &::placeholder {\n color: ${(props) => VARIANT_PROPS[props.$variant].placeholder};\n }\n\n &:disabled {\n cursor: not-allowed;\n }\n`\n\nconst dropdownStyles = `\n z-index: 100;\n background-color: ${COLORS.white};\n border: 1px solid ${alpha(COLORS.black, 15)};\n border-radius: 8px;\n box-shadow: 0 4px 16px ${alpha(COLORS.black, 12)};\n max-height: 200px;\n overflow-y: auto;\n`\n\nconst getDropdownTransform = ($open: boolean, $position: 'bottom' | 'top') => {\n if ($open) return 'translateY(0)'\n return $position === 'bottom' ? 'translateY(-8px)' : 'translateY(8px)'\n}\n\nconst getDropdownTransition = `\n opacity 0.15s ease,\n transform 0.15s ease,\n visibility 0.15s;\n`\n\nexport const StyledDropdown = styled.div<{ $open: boolean; $position: 'bottom' | 'top' }>`\n position: absolute;\n left: 0;\n right: 0;\n ${(props) =>\n props.$position === 'bottom' ? 'top: calc(100% + 4px);' : 'bottom: calc(100% + 4px);'}\n ${dropdownStyles}\n opacity: ${(props) => (props.$open ? 1 : 0)};\n visibility: ${(props) => (props.$open ? 'visible' : 'hidden')};\n transform: ${(props) => getDropdownTransform(props.$open, props.$position)};\n transition: ${getDropdownTransition};\n`\n\nexport const StyledPortalDropdown = styled.div<{ $open: boolean; $position: 'bottom' | 'top' }>`\n position: fixed;\n ${dropdownStyles}\n opacity: ${(props) => (props.$open ? 1 : 0)};\n visibility: ${(props) => (props.$open ? 'visible' : 'hidden')};\n transform: ${(props) => getDropdownTransform(props.$open, props.$position)};\n transition: ${getDropdownTransition};\n`\n\nexport const StyledOption = styled.button`\n display: flex;\n align-items: center;\n width: 100%;\n padding: 10px 12px;\n border: none;\n background: transparent;\n font-size: 14px;\n color: ${COLORS.black};\n text-align: left;\n cursor: pointer;\n transition: background-color 0.15s ease;\n\n &:hover {\n background-color: ${COLORS.gray};\n }\n\n &:first-of-type {\n border-radius: 7px 7px 0 0;\n }\n\n &:last-of-type {\n border-radius: 0 0 7px 7px;\n }\n\n &:only-child {\n border-radius: 7px;\n }\n`\n\nexport const StyledEmpty = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 16px;\n color: ${COLORS['iron-grey']};\n font-size: 14px;\n text-align: center;\n`\n\nexport const StyledMessage = styled(FieldMessage)`\n margin-left: 6px;\n`\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport {\n StyledContainer,\n StyledDropdown,\n StyledEmpty,\n StyledInput,\n StyledLabel,\n StyledMessage,\n StyledOption,\n StyledPortalDropdown,\n StyledTrigger,\n} from './styled'\nimport { TagsProps } from './types'\nimport { Chip } from '../Chip'\nimport { newClassNameGetter } from '../../lib'\n\nconst css = newClassNameGetter('tags')\n\nconst DROPDOWN_GAP = 4\n\ntype PortalPosition = {\n top: number\n left: number\n width: number\n}\n\nexport const Tags = ({\n className,\n classnames,\n createKey = 'Tab',\n disabled = false,\n emptyMessage = 'No options',\n freeSolo = true,\n label,\n message,\n onChange,\n options = [],\n placeholder = 'Add tag...',\n portalRenderNode,\n ref,\n value,\n variant = 'normal',\n ...rest\n}: TagsProps) => {\n const containerRef = useRef<HTMLDivElement>(null)\n const triggerRef = useRef<HTMLDivElement>(null)\n const dropdownRef = useRef<HTMLDivElement>(null)\n const inputRef = useRef<HTMLInputElement>(null)\n const [inputValue, setInputValue] = useState('')\n const [isFocused, setIsFocused] = useState(false)\n const [dropdownPosition, setDropdownPosition] = useState<'bottom' | 'top'>('bottom')\n const [portalPosition, setPortalPosition] = useState<PortalPosition>({\n top: 0,\n left: 0,\n width: 0,\n })\n\n const filteredOptions = useMemo(() => {\n const available = options.filter((opt) => !value.includes(opt.value))\n if (!inputValue.trim()) return available\n const query = inputValue.toLowerCase().trim()\n return available.filter((opt) => opt.label.toLowerCase().includes(query))\n }, [options, value, inputValue])\n\n const showDropdown = isFocused && options.length > 0\n\n const updateDropdownPosition = useCallback(() => {\n if (!triggerRef.current) return\n\n const rect = triggerRef.current.getBoundingClientRect()\n const dropdownHeight = dropdownRef.current?.offsetHeight ?? 200\n const spaceBelow = window.innerHeight - rect.bottom - DROPDOWN_GAP\n const spaceAbove = rect.top - DROPDOWN_GAP\n\n const newPosition: 'bottom' | 'top' =\n spaceBelow < dropdownHeight && spaceAbove > spaceBelow ? 'top' : 'bottom'\n setDropdownPosition(newPosition)\n\n if (portalRenderNode) {\n const top =\n newPosition === 'bottom'\n ? rect.bottom + DROPDOWN_GAP\n : rect.top - dropdownHeight - DROPDOWN_GAP\n\n setPortalPosition({\n top,\n left: rect.left,\n width: rect.width,\n })\n }\n }, [portalRenderNode])\n\n useEffect(() => {\n if (isFocused) {\n updateDropdownPosition()\n window.addEventListener('scroll', updateDropdownPosition, true)\n window.addEventListener('resize', updateDropdownPosition)\n return () => {\n window.removeEventListener('scroll', updateDropdownPosition, true)\n window.removeEventListener('resize', updateDropdownPosition)\n }\n }\n }, [isFocused, updateDropdownPosition])\n\n const addTag = useCallback(\n (tagValue: string) => {\n const trimmed = tagValue.trim()\n if (!trimmed || value.includes(trimmed)) return false\n onChange([...value, trimmed])\n setInputValue('')\n return true\n },\n [value, onChange],\n )\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === createKey && inputValue.trim()) {\n e.preventDefault()\n if (freeSolo) {\n addTag(inputValue)\n } else {\n const matchingOption = filteredOptions.find(\n (opt) => opt.label.toLowerCase() === inputValue.toLowerCase().trim(),\n )\n if (matchingOption) {\n addTag(matchingOption.value)\n }\n }\n } else if (e.key === 'Backspace' && !inputValue && value.length > 0) {\n onChange(value.slice(0, -1))\n }\n }\n\n const handleOptionClick = (optionValue: string) => {\n addTag(optionValue)\n inputRef.current?.focus()\n }\n\n const handleRemove = (tagValue: string) => {\n onChange(value.filter((v) => v !== tagValue))\n }\n\n const handleContainerClick = () => {\n if (!disabled) {\n inputRef.current?.focus()\n }\n }\n\n const getTagLabel = (tagValue: string) => {\n const option = options.find((opt) => opt.value === tagValue)\n return option?.label ?? tagValue\n }\n\n return (\n <StyledContainer {...rest} ref={ref} className={css('container', className)}>\n {label && (\n <StyledLabel variant={variant} className={css('label')}>\n {label}\n </StyledLabel>\n )}\n <div ref={containerRef} style={{ position: 'relative' }}>\n <StyledTrigger\n ref={triggerRef}\n $variant={variant}\n $disabled={disabled}\n $focused={isFocused}\n onClick={handleContainerClick}\n className={css('trigger', classnames?.trigger)}\n >\n {value.map((tag) => (\n <Chip\n key={tag}\n variant={variant === 'error' ? 'red' : 'gray'}\n deletable={!disabled}\n onDelete={() => handleRemove(tag)}\n className={css('chip', classnames?.chip)}\n >\n {getTagLabel(tag)}\n </Chip>\n ))}\n <StyledInput\n ref={inputRef}\n type=\"text\"\n value={inputValue}\n onChange={(e) => setInputValue(e.target.value)}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setTimeout(() => setIsFocused(false), 150)}\n onKeyDown={handleKeyDown}\n placeholder={value.length === 0 ? placeholder : ''}\n disabled={disabled}\n $disabled={disabled}\n $variant={variant}\n className={css('input', classnames?.input)}\n />\n </StyledTrigger>\n\n {options.length > 0 &&\n (portalRenderNode ? (\n createPortal(\n <StyledPortalDropdown\n ref={dropdownRef}\n $open={showDropdown}\n $position={dropdownPosition}\n style={{\n top: portalPosition.top,\n left: portalPosition.left,\n width: portalPosition.width,\n }}\n className={css('dropdown', classnames?.dropdown)}\n >\n {filteredOptions.length === 0 ? (\n <StyledEmpty className={css('empty', classnames?.empty)}>\n {emptyMessage}\n </StyledEmpty>\n ) : (\n filteredOptions.map((opt) => (\n <StyledOption\n key={opt.value}\n type=\"button\"\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => handleOptionClick(opt.value)}\n className={css('option', classnames?.option)}\n >\n {opt.label}\n </StyledOption>\n ))\n )}\n </StyledPortalDropdown>,\n portalRenderNode,\n )\n ) : (\n <StyledDropdown\n ref={dropdownRef}\n $open={showDropdown}\n $position={dropdownPosition}\n className={css('dropdown', classnames?.dropdown)}\n >\n {filteredOptions.length === 0 ? (\n <StyledEmpty className={css('empty', classnames?.empty)}>\n {emptyMessage}\n </StyledEmpty>\n ) : (\n filteredOptions.map((opt) => (\n <StyledOption\n key={opt.value}\n type=\"button\"\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => handleOptionClick(opt.value)}\n className={css('option', classnames?.option)}\n >\n {opt.label}\n </StyledOption>\n ))\n )}\n </StyledDropdown>\n ))}\n </div>\n {message && (\n <StyledMessage variant={variant} className={css('message')}>\n {message}\n </StyledMessage>\n )}\n </StyledContainer>\n )\n}\n","import { TextareaVariant } from './types'\nimport { alpha, COLORS, VacanoInteractiveElementState } from '../../lib'\n\nexport const TEXTAREA_VARIANT_PROPS: Record<\n TextareaVariant,\n {\n border: VacanoInteractiveElementState\n background: VacanoInteractiveElementState\n color: VacanoInteractiveElementState\n placeholder: VacanoInteractiveElementState\n focus: string\n }\n> = {\n normal: {\n background: {\n static: alpha(COLORS['black'], 2),\n disabled: alpha(COLORS['black'], 10),\n },\n border: {\n static: alpha(COLORS['black'], 60),\n disabled: alpha(COLORS['black'], 10),\n },\n color: {\n static: COLORS['black'],\n disabled: alpha(COLORS['black'], 65),\n },\n placeholder: {\n static: alpha(COLORS['black'], 40),\n disabled: alpha(COLORS['black'], 65),\n },\n focus: alpha(COLORS['iron-grey'], 30),\n },\n error: {\n background: {\n static: alpha(COLORS['red'], 2),\n disabled: alpha(COLORS['red'], 10),\n },\n border: {\n static: alpha(COLORS['red'], 60),\n disabled: alpha(COLORS['red'], 10),\n },\n color: {\n static: COLORS['red'],\n disabled: alpha(COLORS['red'], 65),\n },\n placeholder: {\n static: alpha(COLORS['red'], 40),\n disabled: alpha(COLORS['red'], 65),\n },\n focus: alpha(COLORS['red'], 30),\n },\n}\n","import { TEXTAREA_VARIANT_PROPS } from './constants'\nimport { TextareaVariant } from './types'\n\nexport const getTextareaVariantProps = (variant: TextareaVariant) => {\n return TEXTAREA_VARIANT_PROPS[variant] ?? TEXTAREA_VARIANT_PROPS['normal']\n}\n","import styled from '@emotion/styled'\n\nimport { getTextareaVariantProps } from './helpers'\nimport { TextareaVariant } from './types'\nimport { FieldLabel } from '../FieldLabel'\nimport { FieldMessage } from '../FieldMessage'\nimport { COLORS } from '../../lib'\n\ntype StyledTextareaProps = {\n $variant: TextareaVariant\n}\n\nexport const StyledContainer = styled.div<{ $fullWidth: boolean }>`\n display: grid;\n flex-direction: column;\n gap: 2px;\n width: ${(props) => (props.$fullWidth ? '100%' : 'fit-content')};\n`\n\nexport const StyledLabel = styled(FieldLabel)`\n margin-left: 6px;\n`\n\nexport const StyledTextarea = styled.textarea<StyledTextareaProps>`\n flex: 1;\n min-width: 0;\n outline: none;\n font-size: 14px;\n font-weight: 500;\n font-family: inherit;\n padding: 10px 14px;\n border-radius: 16px;\n resize: vertical;\n\n color: ${(props) => getTextareaVariantProps(props.$variant).color.static};\n border: 1px solid ${(props) => getTextareaVariantProps(props.$variant).border.static};\n background-color: ${(props) => getTextareaVariantProps(props.$variant).background.static};\n\n &::placeholder {\n color: ${(props) => getTextareaVariantProps(props.$variant).placeholder.static};\n }\n\n &:disabled {\n cursor: not-allowed;\n resize: none;\n color: ${(props) => getTextareaVariantProps(props.$variant).color.disabled};\n background-color: ${(props) => getTextareaVariantProps(props.$variant).background.disabled};\n border-color: ${(props) => getTextareaVariantProps(props.$variant).border.disabled};\n\n &::placeholder {\n color: ${(props) => getTextareaVariantProps(props.$variant).placeholder.disabled};\n }\n }\n`\n\nexport const StyledFooter = styled.div`\n display: flex;\n align-items: flex-start;\n gap: 8px;\n margin: 0 6px;\n`\n\nexport const StyledMessage = styled(FieldMessage)`\n flex: 1;\n min-width: 0;\n`\n\nexport const StyledCounter = styled.span<{ $variant: TextareaVariant }>`\n flex-shrink: 0;\n margin-left: auto;\n font-size: 12px;\n font-weight: 500;\n color: ${(props) => (props.$variant === 'error' ? COLORS.red : COLORS['iron-grey'])};\n`\n","import {\n StyledContainer,\n StyledCounter,\n StyledFooter,\n StyledLabel,\n StyledMessage,\n StyledTextarea,\n} from './styled'\nimport { TextareaProps } from './types'\nimport { newClassNameGetter } from '../../lib'\n\nconst css = newClassNameGetter('textarea')\n\nexport const Textarea = ({\n className,\n classnames,\n count,\n disabled,\n fullWidth,\n label,\n message,\n ref,\n value,\n variant = 'normal',\n rows = 4,\n ...rest\n}: TextareaProps) => {\n const length = typeof value === 'string' ? value.length : 0\n const showFooter = message || count !== undefined\n\n return (\n <StyledContainer className={css('container', className)} $fullWidth={Boolean(fullWidth)}>\n {label && (\n <StyledLabel variant={variant} className={css('label', classnames?.label)}>\n {label}\n </StyledLabel>\n )}\n <StyledTextarea\n {...rest}\n ref={ref}\n rows={rows}\n value={value}\n disabled={disabled}\n $variant={variant}\n className={css('textarea', classnames?.textarea)}\n />\n {showFooter && (\n <StyledFooter>\n {message && (\n <StyledMessage variant={variant} className={css('message')}>\n {message}\n </StyledMessage>\n )}\n {count !== undefined && (\n <StyledCounter $variant={variant} className={css('counter')}>\n {length}/{count}\n </StyledCounter>\n )}\n </StyledFooter>\n )}\n </StyledContainer>\n )\n}\n","import { ToggleVariant } from './types'\nimport { alpha, COLORS } from '../../lib'\n\nexport const TOGGLE_VARIANT_PROPS: Record<\n ToggleVariant,\n {\n track: {\n background: string\n backgroundChecked: string\n border: string\n borderChecked: string\n }\n thumb: {\n background: string\n backgroundChecked: string\n }\n label: string\n }\n> = {\n normal: {\n track: {\n background: alpha(COLORS['iron-grey'], 20),\n backgroundChecked: COLORS['black'],\n border: alpha(COLORS['iron-grey'], 30),\n borderChecked: COLORS['black'],\n },\n thumb: {\n background: COLORS['white'],\n backgroundChecked: COLORS['white'],\n },\n label: COLORS['black'],\n },\n error: {\n track: {\n background: alpha(COLORS['red'], 15),\n backgroundChecked: COLORS['red'],\n border: COLORS['red'],\n borderChecked: COLORS['red'],\n },\n thumb: {\n background: COLORS['white'],\n backgroundChecked: COLORS['white'],\n },\n label: COLORS['red'],\n },\n}\n","import { TOGGLE_VARIANT_PROPS } from './constants'\nimport { ToggleVariant } from './types'\n\nexport const getToggleVariantProps = (variant: ToggleVariant) => {\n return TOGGLE_VARIANT_PROPS[variant] ?? TOGGLE_VARIANT_PROPS['normal']\n}\n","import styled from '@emotion/styled'\n\nimport { getToggleVariantProps } from './helpers'\nimport { ToggleVariant } from './types'\n\ntype StyledContainerProps = {\n $disabled: boolean\n $variant: ToggleVariant\n}\n\ntype StyledTrackProps = {\n $checked: boolean\n $variant: ToggleVariant\n}\n\ntype StyledThumbProps = {\n $checked: boolean\n $variant: ToggleVariant\n}\n\ntype StyledLabelProps = {\n $variant: ToggleVariant\n}\n\nexport const StyledContainer = styled.label<StyledContainerProps>`\n display: inline-flex;\n align-items: flex-start;\n gap: 8px;\n cursor: ${(props) => (props.$disabled ? 'not-allowed' : 'pointer')};\n opacity: ${(props) => (props.$disabled ? 0.5 : 1)};\n`\n\nexport const StyledInput = styled.input`\n position: absolute;\n opacity: 0;\n width: 0;\n height: 0;\n pointer-events: none;\n`\n\nexport const StyledTrack = styled.span<StyledTrackProps>`\n position: relative;\n flex-shrink: 0;\n width: 36px;\n height: 20px;\n border-radius: 10px;\n border: 1px solid\n ${(props) =>\n props.$checked\n ? getToggleVariantProps(props.$variant).track.borderChecked\n : getToggleVariantProps(props.$variant).track.border};\n background-color: ${(props) =>\n props.$checked\n ? getToggleVariantProps(props.$variant).track.backgroundChecked\n : getToggleVariantProps(props.$variant).track.background};\n transition:\n border-color 0.2s ease,\n background-color 0.2s ease;\n`\n\nexport const StyledThumb = styled.span<StyledThumbProps>`\n position: absolute;\n top: 2px;\n left: ${(props) => (props.$checked ? '18px' : '2px')};\n width: 14px;\n height: 14px;\n border-radius: 50%;\n background-color: ${(props) =>\n props.$checked\n ? getToggleVariantProps(props.$variant).thumb.backgroundChecked\n : getToggleVariantProps(props.$variant).thumb.background};\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);\n transition: left 0.2s ease;\n`\n\nexport const StyledLabel = styled.span<StyledLabelProps>`\n font-size: 14px;\n font-weight: 500;\n line-height: 1.3;\n color: ${(props) => getToggleVariantProps(props.$variant).label};\n user-select: none;\n\n a {\n color: inherit;\n text-decoration: underline;\n cursor: pointer;\n\n &:hover {\n text-decoration: none;\n }\n }\n`\n","import { StyledContainer, StyledInput, StyledLabel, StyledThumb, StyledTrack } from './styled'\nimport { ToggleProps } from './types'\nimport { newClassNameGetter } from '../../lib'\n\nconst css = newClassNameGetter('toggle')\n\nexport const Toggle = ({\n checked,\n className,\n classnames,\n disabled,\n label,\n onChange,\n ref,\n variant = 'normal',\n ...rest\n}: ToggleProps) => {\n return (\n <StyledContainer\n className={css('container', className)}\n $disabled={Boolean(disabled)}\n $variant={variant}\n >\n <StyledInput\n {...rest}\n ref={ref}\n type=\"checkbox\"\n className={css('input', classnames?.input)}\n checked={checked}\n disabled={disabled}\n onChange={onChange}\n />\n <StyledTrack\n className={css('track', classnames?.track)}\n $checked={checked}\n $variant={variant}\n >\n <StyledThumb\n className={css('thumb', classnames?.thumb)}\n $checked={checked}\n $variant={variant}\n />\n </StyledTrack>\n {label && (\n <StyledLabel className={css('label', classnames?.label)} $variant={variant}>\n {label}\n </StyledLabel>\n )}\n </StyledContainer>\n )\n}\n","import { ToggleCardVariant } from './types'\nimport { alpha, COLORS, VacanoInteractiveElementState } from '../../lib'\n\ntype ToggleCardVariantProps = {\n border: VacanoInteractiveElementState\n borderChecked: string\n background: VacanoInteractiveElementState\n backgroundChecked: string\n label: VacanoInteractiveElementState\n description: VacanoInteractiveElementState\n}\n\nexport const TOGGLE_CARD_VARIANT_PROPS: Record<ToggleCardVariant, ToggleCardVariantProps> = {\n normal: {\n border: {\n static: alpha(COLORS['black'], 20),\n hover: alpha(COLORS['black'], 40),\n active: alpha(COLORS['black'], 40),\n disabled: alpha(COLORS['black'], 10),\n },\n borderChecked: COLORS['black'],\n background: {\n static: COLORS['white'],\n hover: COLORS['white'],\n active: COLORS['white'],\n disabled: alpha(COLORS['black'], 5),\n },\n backgroundChecked: alpha(COLORS['black'], 5),\n label: {\n static: COLORS['black'],\n hover: COLORS['black'],\n active: COLORS['black'],\n disabled: alpha(COLORS['black'], 40),\n },\n description: {\n static: alpha(COLORS['black'], 60),\n hover: alpha(COLORS['black'], 60),\n active: alpha(COLORS['black'], 60),\n disabled: alpha(COLORS['black'], 30),\n },\n },\n error: {\n border: {\n static: COLORS['red'],\n hover: COLORS['red'],\n active: COLORS['red'],\n disabled: alpha(COLORS['red'], 30),\n },\n borderChecked: COLORS['red'],\n background: {\n static: COLORS['white'],\n hover: COLORS['white'],\n active: COLORS['white'],\n disabled: alpha(COLORS['red'], 5),\n },\n backgroundChecked: alpha(COLORS['red'], 5),\n label: {\n static: COLORS['red'],\n hover: COLORS['red'],\n active: COLORS['red'],\n disabled: alpha(COLORS['red'], 40),\n },\n description: {\n static: alpha(COLORS['red'], 70),\n hover: alpha(COLORS['red'], 70),\n active: alpha(COLORS['red'], 70),\n disabled: alpha(COLORS['red'], 40),\n },\n },\n}\n","import { TOGGLE_CARD_VARIANT_PROPS } from './constants'\nimport { ToggleCardVariant } from './types'\n\nexport const getToggleCardVariantProps = (variant: ToggleCardVariant) => {\n return TOGGLE_CARD_VARIANT_PROPS[variant] ?? TOGGLE_CARD_VARIANT_PROPS['normal']\n}\n","import styled from '@emotion/styled'\n\nimport { getToggleCardVariantProps } from './helpers'\nimport { ToggleCardVariant } from './types'\n\ntype StyledContainerProps = {\n $checked: boolean\n $disabled: boolean\n $fullWidth: boolean\n $variant: ToggleCardVariant\n}\n\ntype StyledLabelProps = {\n $variant: ToggleCardVariant\n}\n\ntype StyledDescriptionProps = {\n $variant: ToggleCardVariant\n}\n\nexport const StyledContainer = styled.label<StyledContainerProps>`\n display: grid;\n grid-template-columns: 1fr auto;\n align-items: start;\n gap: 8px;\n padding: 12px;\n background-color: ${(props) => {\n const variantProps = getToggleCardVariantProps(props.$variant)\n if (props.$disabled) return variantProps.background.disabled\n if (props.$checked) return variantProps.backgroundChecked\n return variantProps.background.static\n }};\n border: 1px solid\n ${(props) => {\n const variantProps = getToggleCardVariantProps(props.$variant)\n if (props.$disabled) return variantProps.border.disabled\n if (props.$checked) return variantProps.borderChecked\n return variantProps.border.static\n }};\n border-radius: 12px;\n cursor: ${(props) => (props.$disabled ? 'not-allowed' : 'pointer')};\n transition:\n border-color 0.15s ease,\n background-color 0.15s ease;\n width: ${(props) => (props.$fullWidth ? '100%' : 'fit-content')};\n min-width: 0;\n\n &:hover:not([data-disabled='true']) {\n border-color: ${(props) => {\n const variantProps = getToggleCardVariantProps(props.$variant)\n if (props.$checked) return variantProps.borderChecked\n return variantProps.border.hover\n }};\n }\n\n .vacano_toggle_container {\n pointer-events: none;\n }\n`\n\nexport const StyledInput = styled.input`\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n`\n\nexport const StyledContent = styled.div`\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n`\n\nexport const StyledLabel = styled.span<StyledLabelProps>`\n font-size: 14px;\n font-weight: 500;\n line-height: 1.4;\n color: ${(props) => getToggleCardVariantProps(props.$variant).label.static};\n\n label[data-disabled='true'] & {\n color: ${(props) => getToggleCardVariantProps(props.$variant).label.disabled};\n }\n`\n\nexport const StyledDescription = styled.span<StyledDescriptionProps>`\n font-size: 12px;\n font-weight: 400;\n line-height: 1.4;\n color: ${(props) => getToggleCardVariantProps(props.$variant).description.static};\n\n label[data-disabled='true'] & {\n color: ${(props) => getToggleCardVariantProps(props.$variant).description.disabled};\n }\n`\n","import {\n StyledContainer,\n StyledContent,\n StyledDescription,\n StyledInput,\n StyledLabel,\n} from './styled'\nimport { ToggleCardProps } from './types'\nimport { Toggle } from '../Toggle'\nimport { newClassNameGetter } from '../../lib'\n\nconst css = newClassNameGetter('toggle-card')\n\nexport const ToggleCard = ({\n checked,\n className,\n classnames,\n description,\n disabled,\n fullWidth = false,\n label,\n onChange,\n ref,\n variant = 'normal',\n ...rest\n}: ToggleCardProps) => {\n return (\n <StyledContainer\n className={css('container', className)}\n $checked={checked}\n $disabled={Boolean(disabled)}\n $fullWidth={fullWidth}\n $variant={variant}\n data-disabled={disabled}\n >\n <StyledInput\n {...rest}\n ref={ref}\n type=\"checkbox\"\n checked={checked}\n disabled={disabled}\n onChange={onChange}\n />\n <StyledContent className={css('content', classnames?.content)}>\n <StyledLabel className={css('label', classnames?.label)} $variant={variant}>\n {label}\n </StyledLabel>\n {description && (\n <StyledDescription\n className={css('description', classnames?.description)}\n $variant={variant}\n >\n {description}\n </StyledDescription>\n )}\n </StyledContent>\n <Toggle\n className={classnames?.toggle}\n checked={checked}\n disabled={disabled}\n variant={variant}\n onChange={() => {}}\n tabIndex={-1}\n aria-hidden\n />\n </StyledContainer>\n )\n}\n","import { alpha, COLORS } from '../../lib'\n\nexport const TOGGLE_GROUP_PROPS = {\n label: {\n color: COLORS['black'],\n disabledColor: alpha(COLORS['black'], 40),\n },\n}\n","import styled from '@emotion/styled'\n\nimport { TOGGLE_GROUP_PROPS } from './constants'\n\ntype StyledLabelProps = {\n $disabled?: boolean\n}\n\nexport const StyledContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 8px;\n`\n\nexport const StyledLabel = styled.span<StyledLabelProps>`\n font-size: 13px;\n font-weight: 500;\n line-height: 1.5;\n color: ${(props) =>\n props.$disabled ? TOGGLE_GROUP_PROPS.label.disabledColor : TOGGLE_GROUP_PROPS.label.color};\n margin-bottom: 4px;\n`\n\nexport const StyledOptions = styled.div`\n display: flex;\n flex-direction: column;\n gap: 12px;\n`\n","import { StyledContainer, StyledLabel, StyledOptions } from './styled'\nimport { ToggleGroupProps } from './types'\nimport { Toggle } from '../Toggle'\nimport { newClassNameGetter } from '../../lib'\n\nconst css = newClassNameGetter('toggle-group')\n\nexport const ToggleGroup = ({\n className,\n classnames,\n disabled,\n label,\n onChange,\n options,\n ref,\n value,\n variant = 'normal',\n ...rest\n}: ToggleGroupProps) => {\n const handleChange = (optionValue: string, checked: boolean) => {\n if (checked) {\n onChange([...value, optionValue])\n } else {\n onChange(value.filter((v) => v !== optionValue))\n }\n }\n\n return (\n <StyledContainer {...rest} ref={ref} className={css('container', className)}>\n {label && (\n <StyledLabel className={css('label', classnames?.label)} $disabled={disabled}>\n {label}\n </StyledLabel>\n )}\n <StyledOptions className={css('options', classnames?.options)}>\n {options.map((option) => (\n <Toggle\n key={option.value}\n className={classnames?.toggle}\n checked={value.includes(option.value)}\n label={option.label}\n disabled={disabled}\n variant={variant}\n onChange={(e) => handleChange(option.value, e.target.checked)}\n />\n ))}\n </StyledOptions>\n </StyledContainer>\n )\n}\n"],"names":["_extends","n","e","t","r","reactPropsRegex","isPropValid","memoize","prop","testOmitPropsOnStringTag","testOmitPropsOnComponent","key","getDefaultShouldForwardProp","tag","composeShouldForwardProps","options","isReal","shouldForwardProp","optionsShouldForwardProp","propName","Insertion","_ref","cache","serialized","isStringTag","registerStyles","useInsertionEffectAlwaysWithSyncFallback","insertStyles","createStyled","baseTag","identifierName","targetClassName","defaultShouldForwardProp","shouldUseAs","args","styles","templateStringsArr","len","i","Styled","withEmotionCache","props","ref","FinalTag","className","classInterpolations","mergedProps","React","ThemeContext","getRegisteredStyles","serializeStyles","finalShouldForwardProp","newProps","_key","nextTag","nextOptions","newStyled","tags","styled","tagName","StyledFieldLabel","COLORS","css","newClassNameGetter","FieldLabel","children","required","variant","rest","jsxs","VARIANT_COLORS","StyledFieldMessage","FieldMessage","jsx","SIZE_PROPS","VARIANT_PROPS","alpha","StyledContainer","StyledLabel","StyledMessage","StyledInputWrapper","StyledInput","StyledSpinnerWrapper","StyledDropdown","$open","StyledItem","StyledItemImage","StyledItemText","StyledEmpty","SPINNER_SIZE_PROPS","SPINNER_COLORS","getSpinnerSizeProps","size","spin","keyframes","StyledSpinner","Spinner","ariaLabel","Autocomplete","classnames","disabled","fullWidth","label","message","value","onChange","onSearch","debounceMs","minChars","noResultsMessage","inputValue","setInputValue","useState","suggestions","setSuggestions","isLoading","setIsLoading","isOpen","setIsOpen","hasSearched","setHasSearched","containerRef","useRef","debounceRef","useEffect","handleSearch","useCallback","query","results","handleInputChange","newValue","handleSelect","suggestion","handleBlur","handleFocus","BUTTON_SIZE_PROPS","BUTTON_VARIANT_PROPS","getButtonVariantProps","result","getButtonSizeProps","getButtonWidthProps","StyledButton","StyledIcon","StyledLoading","LoaderCircle","KEYFRAMES","StyledKeyBindings","StyledKeySymbol","KeySymbol","symbol","KeysBindings","keys","symbols","useMemo","getKeySymbols","item","Button","icon","loading","onClick","keyBindings","type","buttonRef","useImperativeHandle","useKeyBinding","_a","computedType","CHECKBOX_VARIANT_PROPS","getCheckboxVariantProps","StyledBox","Checkbox","checked","indeterminate","Minus","Check","CHECKBOX_CARD_VARIANT_PROPS","getCheckboxCardVariantProps","variantProps","StyledContent","StyledDescription","CheckboxCard","description","CHECKBOX_GROUP_PROPS","StyledOptions","CheckboxGroup","handleChange","optionValue","v","option","CHIP_VARIANT_PROPS","getChipVariantProps","StyledDelete","Chip","deletable","onDelete","X","DATE_PICKER_SIZE_PROPS","DATE_PICKER_VARIANT_PROPS","CALENDAR_CELL_SIZE","CALENDAR_GAP","CALENDAR_PADDING","formatDateGo","date","format","locale","year","month","day","hours","minutes","seconds","hour12","isPM","monthLong","monthShort","weekdayLong","weekdayShort","pad","spacePad","placeholder","id","tokens","token","getDaysInMonth","getFirstDayOfMonth","generateCalendarDays","weekStartsOn","daysInMonth","leadingEmptyDays","days","getWeekdayNames","weekdays","dayIndex","getShortMonthNames","months","isSameDay","a","b","isSameMonth","isSameYear","isDayDisabled","minDate","maxDate","minDay","maxDay","isMonthDisabled","minYear","minMonth","maxYear","maxMonth","isYearDisabled","generateYearRange","centerYear","range","startYear","years","getDefaultDisplayFormat","mode","$fullWidth","StyledTrigger","$disabled","$size","$variant","$hasValue","StyledTriggerText","StyledTriggerIcon","calendarStyles","getCalendarTransform","$position","StyledCalendar","StyledPortalCalendar","StyledCalendarHeader","StyledCalendarTitle","StyledNavButton","StyledNavButtons","StyledWeekdays","StyledWeekday","StyledDaysGrid","StyledDayCell","$selected","$today","StyledMonthsGrid","StyledMonthCell","$current","StyledYearsGrid","StyledYearCell","StyledEmptyCell","CALENDAR_MIN_HEIGHT","DatePicker","displayFormat","portalRenderNode","controlledOpen","onOpen","onClose","today","internalOpen","setInternalOpen","portalPosition","setPortalPosition","position","setPosition","view","setView","viewDate","setViewDate","yearRangeStart","setYearRangeStart","triggerRef","calendarRef","isControlled","open","monthNames","calendarDays","yearRange","displayValue","placeholderText","updatePosition","triggerRect","calendarHeight","spaceBelow","spaceAbove","newPosition","top","handleOpen","newViewDate","handleClose","handleToggle","handleSelectDay","newDate","handleSelectMonth","handleSelectYear","handlePrevMonth","prev","handleNextMonth","handlePrevYear","handleNextYear","handlePrevYearRange","handleNextYearRange","handleTitleClick","useLayoutEffect","handleClickOutside","event","target","isOutsideContainer","isOutsideCalendar","handleEscape","handleScroll","handleResize","iconSize","renderDaysView","Fragment","ChevronLeft","ChevronRight","renderMonthsView","renderYearsView","renderCalendarContent","calendar","createPortal","ChevronDown","INPUT_SIZE_PROPS","INPUT_VARIANT_PROPS","getInputVariantProps","getInputSizeProps","StyledInputContainer","StyledPrefix","Input","prefix","hasPrefix","input","StyledOverlay","Modal","animated","width","StyledPlaceholder","StyledModalContent","StyledModalHeader","StyledModalTitle","StyledOptionsList","StyledOption","StyledOptionLabel","MultiSelect","emptyMessage","maxVisible","modalTitle","searchPlaceholder","search","setSearch","modalContentRef","selectedOptions","opt","filteredOptions","visibleChips","hiddenCount","handleRemove","OTP_CODE_SIZE_PROPS","OTP_CODE_VARIANT_PROPS","getOtpCodeSizeProps","getOtpCodeVariantProps","StyledInputsWrapper","OtpCode","autoFocus","length","inputRefs","focusInput","index","digit","firstEmptyIndex","char","insertIndex","updatedValue","nextEmptyIndex","handleKeyDown","handlePaste","pastedData","nextIndex","_","el","RADIO_VARIANT_PROPS","getRadioVariantProps","StyledDot","Radio","RADIO_CARD_VARIANT_PROPS","getRadioCardVariantProps","RadioCard","RADIO_GROUP_PROPS","RadioGroup","name","OPTION_HEIGHT","OPTION_GAP","DROPDOWN_PADDING","SELECT_SIZE_PROPS","SELECT_VARIANT_PROPS","getSelectSizeProps","getSelectVariantProps","StyledChevron","dropdownStyles","StyledPortalDropdown","StyledCheckmark","Select","dropdownRef","selectedOption","selectedIndex","dropdownTop","updatePortalPosition","selectedOffset","dropdownHeight","minTop","maxTop","isOutsideDropdown","renderOptions","dropdown","node","getDropdownTransform","getDropdownTransition","DROPDOWN_GAP","Tags","createKey","freeSolo","inputRef","isFocused","setIsFocused","dropdownPosition","setDropdownPosition","available","showDropdown","updateDropdownPosition","rect","addTag","tagValue","trimmed","matchingOption","handleOptionClick","handleContainerClick","getTagLabel","TEXTAREA_VARIANT_PROPS","getTextareaVariantProps","StyledTextarea","StyledFooter","StyledCounter","Textarea","count","rows","showFooter","TOGGLE_VARIANT_PROPS","getToggleVariantProps","StyledTrack","StyledThumb","Toggle","TOGGLE_CARD_VARIANT_PROPS","getToggleCardVariantProps","ToggleCard","TOGGLE_GROUP_PROPS","ToggleGroup"],"mappings":";;;;;;;AAAA,SAASA,KAAW;AAClB,SAAOA,KAAW,OAAO,SAAS,OAAO,OAAO,KAAI,IAAK,SAAUC,GAAG;AACpE,aAASC,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AACzC,UAAIC,IAAI,UAAUD,CAAC;AACnB,eAASE,KAAKD,EAAG,EAAC,CAAA,GAAI,eAAe,KAAKA,GAAGC,CAAC,MAAMH,EAAEG,CAAC,IAAID,EAAEC,CAAC;AAAA,IAChE;AACA,WAAOH;AAAA,EACT,GAAGD,GAAS,MAAM,MAAM,SAAS;AACnC;ACLA,IAAIK,KAAkB,ijIAElBC,KAA6B,gBAAAC;AAAA,EAAQ,SAAUC,GAAM;AACvD,WAAOH,GAAgB,KAAKG,CAAI,KAAKA,EAAK,WAAW,CAAC,MAAM,OAEzDA,EAAK,WAAW,CAAC,MAAM,OAEvBA,EAAK,WAAW,CAAC,IAAI;AAAA,EAC1B;AAAA;AAEA,GCHIC,KAA2BH,IAE3BI,KAA2B,SAAkCC,GAAK;AACpE,SAAOA,MAAQ;AACjB,GAEIC,KAA8B,SAAqCC,GAAK;AAC1E,SAAO,OAAOA,KAAQ;AAAA;AAAA;AAAA,EAGtBA,EAAI,WAAW,CAAC,IAAI,KAAKJ,KAA2BC;AACtD,GACII,KAA4B,SAAmCD,GAAKE,GAASC,GAAQ;AACvF,MAAIC;AAEJ,MAAIF,GAAS;AACX,QAAIG,IAA2BH,EAAQ;AACvC,IAAAE,IAAoBJ,EAAI,yBAAyBK,IAA2B,SAAUC,GAAU;AAC9F,aAAON,EAAI,sBAAsBM,CAAQ,KAAKD,EAAyBC,CAAQ;AAAA,IACjF,IAAID;AAAA,EACN;AAEA,SAAI,OAAOD,KAAsB,cAAcD,MAC7CC,IAAoBJ,EAAI,wBAGnBI;AACT,GAEIG,KAAY,SAAmBC,GAAM;AACvC,MAAIC,IAAQD,EAAK,OACbE,IAAaF,EAAK,YAClBG,IAAcH,EAAK;AACvB,SAAAI,GAAeH,GAAOC,GAAYC,CAAW,GAC7CE,GAAyC,WAAY;AACnD,WAAOC,GAAaL,GAAOC,GAAYC,CAAW;AAAA,EACpD,CAAC,GAEM;AACT,GAEII,KAAe,SAASA,EAAaf,GAAKE,GAAS;AAErD,MAAIC,IAASH,EAAI,mBAAmBA,GAChCgB,IAAUb,KAAUH,EAAI,kBAAkBA,GAC1CiB,GACAC;AAEJ,EAAIhB,MAAY,WACde,IAAiBf,EAAQ,OACzBgB,IAAkBhB,EAAQ;AAG5B,MAAIE,IAAoBH,GAA0BD,GAAKE,GAASC,CAAM,GAClEgB,IAA2Bf,KAAqBL,GAA4BiB,CAAO,GACnFI,IAAc,CAACD,EAAyB,IAAI;AAChD,SAAO,WAAY;AAEjB,QAAIE,IAAO,WACPC,IAASnB,KAAUH,EAAI,qBAAqB,SAAYA,EAAI,iBAAiB,MAAM,CAAC,IAAI,CAAA;AAM5F,QAJIiB,MAAmB,UACrBK,EAAO,KAAK,WAAWL,IAAiB,GAAG,GAGzCI,EAAK,CAAC,KAAK,QAAQA,EAAK,CAAC,EAAE,QAAQ;AAErC,MAAAC,EAAO,KAAK,MAAMA,GAAQD,CAAI;AAAA,SACzB;AACL,UAAIE,IAAqBF,EAAK,CAAC;AAE/B,MAAAC,EAAO,KAAKC,EAAmB,CAAC,CAAC;AAIjC,eAHIC,IAAMH,EAAK,QACXI,IAAI,GAEDA,IAAID,GAAKC;AAEd,QAAAH,EAAO,KAAKD,EAAKI,CAAC,GAAGF,EAAmBE,CAAC,CAAC;AAAA,IAE9C;AAEA,QAAIC,IAASC,GAAiB,SAAUC,GAAOnB,GAAOoB,GAAK;AACzD,UAAIC,IAAWV,KAAeQ,EAAM,MAAMZ,GACtCe,IAAY,IACZC,IAAsB,CAAA,GACtBC,IAAcL;AAElB,UAAIA,EAAM,SAAS,MAAM;AACvB,QAAAK,IAAc,CAAA;AAEd,iBAASnC,KAAO8B;AACd,UAAAK,EAAYnC,CAAG,IAAI8B,EAAM9B,CAAG;AAG9B,QAAAmC,EAAY,QAAQC,GAAM,WAAWC,EAAY;AAAA,MACnD;AAEA,MAAI,OAAOP,EAAM,aAAc,WAC7BG,IAAYK,GAAoB3B,EAAM,YAAYuB,GAAqBJ,EAAM,SAAS,IAC7EA,EAAM,aAAa,SAC5BG,IAAYH,EAAM,YAAY;AAGhC,UAAIlB,IAAa2B,GAAgBf,EAAO,OAAOU,CAAmB,GAAGvB,EAAM,YAAYwB,CAAW;AAClG,MAAAF,KAAatB,EAAM,MAAM,MAAMC,EAAW,MAEtCQ,MAAoB,WACtBa,KAAa,MAAMb;AAGrB,UAAIoB,IAAyBlB,KAAehB,MAAsB,SAAYL,GAA4B+B,CAAQ,IAAIX,GAClHoB,IAAW,CAAA;AAEf,eAASC,KAAQZ;AACf,QAAIR,KAAeoB,MAAS,QAExBF,EAAuBE,CAAI,MAC7BD,EAASC,CAAI,IAAIZ,EAAMY,CAAI;AAI/B,aAAAD,EAAS,YAAYR,GAEjBF,MACFU,EAAS,MAAMV,IAGG,gBAAAK,GAAM,cAAcA,GAAM,UAAU,MAAmB,gBAAAA,GAAM,cAAc3B,IAAW;AAAA,QACxG,OAAOE;AAAA,QACP,YAAYC;AAAA,QACZ,aAAa,OAAOoB,KAAa;AAAA,MACzC,CAAO,GAAgB,gBAAAI,GAAM,cAAcJ,GAAUS,CAAQ,CAAC;AAAA,IAC1D,CAAC;AACD,WAAAb,EAAO,cAAcT,MAAmB,SAAYA,IAAiB,aAAa,OAAOD,KAAY,WAAWA,IAAUA,EAAQ,eAAeA,EAAQ,QAAQ,eAAe,KAChLU,EAAO,eAAe1B,EAAI,cAC1B0B,EAAO,iBAAiBA,GACxBA,EAAO,iBAAiBV,GACxBU,EAAO,mBAAmBJ,GAC1BI,EAAO,wBAAwBtB,GAC/B,OAAO,eAAesB,GAAQ,YAAY;AAAA,MACxC,OAAO,WAAiB;AAKtB,eAAO,MAAMR;AAAA,MACf;AAAA,IACN,CAAK,GAEDQ,EAAO,gBAAgB,SAAUe,GAASC,GAAa;AACrD,UAAIC,IAAY5B,EAAa0B,GAAStD,GAAS,CAAA,GAAIe,GAASwC,GAAa;AAAA,QACvE,mBAAmBzC,GAA0ByB,GAAQgB,GAAa,EAAI;AAAA,MAC9E,CAAO,CAAC;AACF,aAAOC,EAAU,MAAM,QAAQrB,CAAM;AAAA,IACvC,GAEOI;AAAA,EACT;AACF,GC/JIkB,KAAO;AAAA,EAAC;AAAA,EAAK;AAAA,EAAQ;AAAA,EAAW;AAAA,EAAQ;AAAA,EAAW;AAAA,EAAS;AAAA,EAAS;AAAA,EAAK;AAAA,EAAQ;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAc;AAAA,EAAQ;AAAA,EAAM;AAAA,EAAU;AAAA,EAAU;AAAA,EAAW;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAO;AAAA,EAAY;AAAA,EAAQ;AAAA,EAAY;AAAA,EAAM;AAAA,EAAO;AAAA,EAAW;AAAA,EAAO;AAAA,EAAU;AAAA,EAAO;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAS;AAAA,EAAY;AAAA,EAAc;AAAA,EAAU;AAAA,EAAU;AAAA,EAAQ;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAQ;AAAA,EAAU;AAAA,EAAU;AAAA,EAAM;AAAA,EAAQ;AAAA,EAAK;AAAA,EAAU;AAAA,EAAO;AAAA,EAAS;AAAA,EAAO;AAAA,EAAO;AAAA,EAAU;AAAA,EAAS;AAAA,EAAU;AAAA,EAAM;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAO;AAAA,EAAQ;AAAA,EAAW;AAAA,EAAQ;AAAA,EAAY;AAAA,EAAQ;AAAA,EAAS;AAAA,EAAO;AAAA,EAAY;AAAA,EAAU;AAAA,EAAM;AAAA,EAAY;AAAA,EAAU;AAAA,EAAU;AAAA,EAAK;AAAA,EAAS;AAAA,EAAW;AAAA,EAAO;AAAA,EAAY;AAAA,EAAK;AAAA,EAAM;AAAA,EAAM;AAAA,EAAQ;AAAA,EAAK;AAAA,EAAQ;AAAA,EAAU;AAAA,EAAW;AAAA,EAAU;AAAA,EAAS;AAAA,EAAU;AAAA,EAAQ;AAAA,EAAU;AAAA,EAAS;AAAA,EAAO;AAAA,EAAW;AAAA,EAAO;AAAA,EAAS;AAAA,EAAS;AAAA,EAAM;AAAA,EAAY;AAAA,EAAS;AAAA,EAAM;AAAA,EAAS;AAAA,EAAQ;AAAA,EAAS;AAAA,EAAM;AAAA,EAAS;AAAA,EAAK;AAAA,EAAM;AAAA,EAAO;AAAA,EAAS;AAAA;AAAA,EAC77B;AAAA,EAAU;AAAA,EAAY;AAAA,EAAQ;AAAA,EAAW;AAAA,EAAiB;AAAA,EAAK;AAAA,EAAS;AAAA,EAAQ;AAAA,EAAkB;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAW;AAAA,EAAW;AAAA,EAAY;AAAA,EAAkB;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAO;AAAA,EAAQ;AAAO,GAGxMC,IAAS9B,GAAa,KAAK,IAAI;AACnC6B,GAAK,QAAQ,SAAUE,GAAS;AAC9B,EAAAD,EAAOC,CAAO,IAAID,EAAOC,CAAO;AAClC,CAAC;ACXM,MAAMC,KAAmBF,EAAO;AAAA;AAAA;AAAA,WAG5B,CAACjB,MAAWA,EAAM,aAAa,WAAWoB,EAAO,QAAWA,EAAO,GAAO;AAAA,GCJ/EC,KAAMC,EAAmB,aAAa,GAC/BC,KAAa,CAAC;AAAA,EACzB,UAAAC;AAAA,EACA,WAAArB;AAAA,EACA,KAAAF;AAAA,EACA,UAAAwB;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,GAAGC;AACL,MACOH,IAKH,gBAAAI;AAAA,EAACT;AAAA,EAAA;AAAA,IACE,GAAGQ;AAAA,IACJ,KAAA1B;AAAA,IACA,WAAWoB,GAAI,aAAalB,CAAS;AAAA,IACrC,UAAUuB;AAAA,IAET,UAAA;AAAA,MAAAF;AAAA,MAAS;AAAA,MAAEC,KAAY;AAAA,IAAA;AAAA,EAAA;AAAA,IAVnB,MCTLI,KAAsD;AAAA,EAC1D,QAAQT,EAAO,WAAW;AAAA,EAC1B,OAAOA,EAAO;AAAA,EACd,SAASA,EAAO;AAAA,EAChB,SAASA,EAAO;AAClB,GAEaU,KAAqBb,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,WAK9B,CAACjB,MAAU6B,GAAe7B,EAAM,QAAQ,CAAC;AAAA,GCb9CqB,KAAMC,EAAmB,eAAe,GAEjCS,KAAe,CAAC;AAAA,EAC3B,UAAAP;AAAA,EACA,WAAArB;AAAA,EACA,KAAAF;AAAA,EACA,SAAAyB,IAAU;AAAA,EACV,GAAGC;AACL,MACOH,IAKH,gBAAAQ;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAGH;AAAA,IACJ,KAAA1B;AAAA,IACA,WAAWoB,GAAI,aAAalB,CAAS;AAAA,IACrC,UAAUuB;AAAA,IAET,UAAAF;AAAA,EAAA;AAAA,IAVI,MCPLS,KACJ;AAAA,EACE,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,QAAQ;AAAA,EAAA;AAAA,EAEV,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,QAAQ;AAAA,EAAA;AAEZ,GAEIC,KASF;AAAA,EACF,QAAQ;AAAA,IACN,YAAY;AAAA,MACV,QAAQC,EAAMf,EAAO,OAAU,CAAC;AAAA,MAChC,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,QAAQ;AAAA,MACN,QAAQe,EAAMf,EAAO,OAAU,EAAE;AAAA,MACjC,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,OAAO;AAAA,MACL,QAAQA,EAAO;AAAA,MACf,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,aAAa;AAAA,MACX,QAAQe,EAAMf,EAAO,OAAU,EAAE;AAAA,MACjC,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,OAAOe,EAAMf,EAAO,WAAW,GAAG,EAAE;AAAA,EAAA;AAAA,EAEtC,OAAO;AAAA,IACL,YAAY;AAAA,MACV,QAAQe,EAAMf,EAAO,KAAQ,CAAC;AAAA,MAC9B,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,QAAQ;AAAA,MACN,QAAQe,EAAMf,EAAO,KAAQ,EAAE;AAAA,MAC/B,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,OAAO;AAAA,MACL,QAAQA,EAAO;AAAA,MACf,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,aAAa;AAAA,MACX,QAAQe,EAAMf,EAAO,KAAQ,EAAE;AAAA,MAC/B,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,OAAOe,EAAMf,EAAO,KAAQ,EAAE;AAAA,EAAA;AAElC,GAEagB,KAAkBnB,EAAO;AAAA;AAAA;AAAA;AAAA,WAI3B,CAACjB,MAAWA,EAAM,aAAa,SAAS,aAAc;AAAA,GAGpDqC,KAAcpB,EAAOM,EAAU;AAAA;AAAA,GAI/Be,KAAgBrB,EAAOc,EAAY;AAAA;AAAA,GAInCQ,KAAqBtB,EAAO;AAAA;AAAA;AAAA;AAAA,GAW5BuB,KAAcvB,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAOtB,CAACjB,MAAUiC,GAAWjC,EAAM,KAAK,EAAE,MAAM;AAAA,aACxC,CAACA,MAAUiC,GAAWjC,EAAM,KAAK,EAAE,OAAO;AAAA;AAAA,mBAEpC,CAACA,MAAUiC,GAAWjC,EAAM,KAAK,EAAE,MAAM;AAAA;AAAA,WAEjD,CAACA,MAAUkC,GAAclC,EAAM,QAAQ,EAAE,MAAM,MAAM;AAAA,sBAC1C,CAACA,MAAUkC,GAAclC,EAAM,QAAQ,EAAE,OAAO,MAAM;AAAA,sBACtD,CAACA,MAAUkC,GAAclC,EAAM,QAAQ,EAAE,WAAW,MAAM;AAAA;AAAA;AAAA,aAGnE,CAACA,MAAUkC,GAAclC,EAAM,QAAQ,EAAE,YAAY,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,aAK3D,CAACA,MAAUkC,GAAclC,EAAM,QAAQ,EAAE,MAAM,QAAQ;AAAA,wBAC5C,CAACA,MAAUkC,GAAclC,EAAM,QAAQ,EAAE,WAAW,QAAQ;AAAA,oBAChE,CAACA,MAAUkC,GAAclC,EAAM,QAAQ,EAAE,OAAO,QAAQ;AAAA;AAAA;AAAA,eAG7D,CAACA,MAAUkC,GAAclC,EAAM,QAAQ,EAAE,YAAY,QAAQ;AAAA;AAAA;AAAA,GAK/DyC,KAAuBxB,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAU9ByB,KAAiBzB,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBASfG,EAAO,KAAK;AAAA,sBACZA,EAAO,IAAI;AAAA;AAAA;AAAA,aAGpB,CAAC,EAAE,OAAAuB,EAAA,MAAaA,IAAQ,IAAI,CAAE;AAAA,gBAC3B,CAAC,EAAE,OAAAA,EAAA,MAAaA,IAAQ,YAAY,QAAS;AAAA,eAC9C,CAAC,EAAE,OAAAA,EAAA,MAAaA,IAAQ,kBAAkB,kBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA,GAO/DC,KAAa3B,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAQtBG,EAAO,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAgBCe,EAAMf,EAAO,OAAO,CAAC,CAAC;AAAA;AAAA,GAIjCyB,KAAkB5B,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOzB6B,KAAiB7B,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOxB8B,KAAc9B,EAAO;AAAA;AAAA;AAAA,WAGvBkB,EAAMf,EAAO,OAAO,EAAE,CAAC;AAAA;AAAA,GCtMrB4B,KAA4D;AAAA,EACvE,IAAI,EAAE,MAAM,QAAQ,aAAa,MAAA;AAAA,EACjC,IAAI,EAAE,MAAM,QAAQ,aAAa,MAAA;AAAA,EACjC,IAAI,EAAE,MAAM,QAAQ,aAAa,MAAA;AAAA,EACjC,IAAI,EAAE,MAAM,QAAQ,aAAa,MAAA;AACnC,GAEaC,KAAiB;AAAA,EAC5B,OAAOd,EAAMf,EAAO,OAAU,EAAE;AAAA,EAChC,WAAWA,EAAO;AACpB,GCfa8B,KAAsB,CAACC,MAC3BH,GAAmBG,CAAI,KAAKH,GAAmB,ICGlDI,KAAOC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAaAC,KAAgBrC,EAAO;AAAA;AAAA,WAEzB,CAACjB,MAAUkD,GAAoBlD,EAAM,KAAK,EAAE,IAAI;AAAA,YAC/C,CAACA,MAAUkD,GAAoBlD,EAAM,KAAK,EAAE,IAAI;AAAA,YAChD,CAACA,MAAUkD,GAAoBlD,EAAM,KAAK,EAAE,WAAW,UAAUiD,GAAe,KAAK;AAAA,sBAC3EA,GAAe,SAAS;AAAA;AAAA,eAE/BG,EAAI;AAAA,GCvBb/B,KAAMC,EAAmB,SAAS,GAE3BiC,KAAU,CAAC;AAAA,EACtB,cAAcC,IAAY;AAAA,EAC1B,WAAArD;AAAA,EACA,KAAAF;AAAA,EACA,MAAAkD,IAAO;AAAA,EACP,GAAGxB;AACL,MAEI,gBAAAK;AAAA,EAACsB;AAAA,EAAA;AAAA,IACE,GAAG3B;AAAA,IACJ,KAAA1B;AAAA,IACA,WAAWoB,GAAI,aAAalB,CAAS;AAAA,IACrC,MAAK;AAAA,IACL,cAAYqD;AAAA,IACZ,OAAOL;AAAA,EAAA;AAAA,GCDP9B,KAAMC,EAAmB,cAAc,GAEhCmC,KAAe,CAAC;AAAA,EAC3B,WAAAtD;AAAA,EACA,YAAAuD;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,KAAA5D;AAAA,EACA,SAAA6D;AAAA,EACA,MAAAX,IAAO;AAAA,EACP,SAAAzB,IAAU;AAAA,EACV,OAAAqC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC,IAAa;AAAA,EACb,UAAAC,IAAW;AAAA,EACX,kBAAAC,IAAmB;AAAA,EACnB,GAAGzC;AACL,MAAyB;AACvB,QAAM,CAAC0C,GAAYC,CAAa,IAAIC,GAASR,KAAA,gBAAAA,EAAO,UAAS,EAAE,GACzD,CAACS,GAAaC,CAAc,IAAIF,EAAmC,CAAA,CAAE,GACrE,CAACG,GAAWC,CAAY,IAAIJ,EAAS,EAAK,GAC1C,CAACK,GAAQC,CAAS,IAAIN,EAAS,EAAK,GACpC,CAACO,GAAaC,CAAc,IAAIR,EAAS,EAAK,GAE9CS,IAAeC,EAAuB,IAAI,GAC1CC,IAAcD,EAA6C,IAAI;AAErE,EAAAE,GAAU,MAAM;AACd,KAAIpB,KAAA,gBAAAA,EAAO,WAAU,UACnBO,EAAcP,EAAM,KAAK;AAAA,EAE7B,GAAG,CAACA,KAAA,gBAAAA,EAAO,KAAK,CAAC;AAEjB,QAAMqB,IAAeC;AAAA,IACnB,OAAOC,MAAkB;AACvB,UAAIA,EAAM,SAASnB,GAAU;AAC3B,QAAAM,EAAe,CAAA,CAAE,GACjBM,EAAe,EAAK;AACpB;AAAA,MACF;AAEA,MAAAJ,EAAa,EAAI,GACjBI,EAAe,EAAI;AAEnB,UAAI;AACF,cAAMQ,IAAU,MAAMtB,EAASqB,CAAK;AACpC,QAAAb,EAAec,CAAO,GACtBV,EAAU,EAAI;AAAA,MAChB,QAAQ;AACN,QAAAJ,EAAe,CAAA,CAAE;AAAA,MACnB,UAAA;AACE,QAAAE,EAAa,EAAK;AAAA,MACpB;AAAA,IACF;AAAA,IACA,CAACV,GAAUE,CAAQ;AAAA,EAAA,GAGfqB,IAAoBH;AAAA,IACxB,CAAC5H,MAA2C;AAC1C,YAAMgI,IAAWhI,EAAE,OAAO;AAC1B,MAAA6G,EAAcmB,CAAQ,GAEtBzB,KAAA,QAAAA,EAAW,EAAE,OAAOyB,GAAU,WAAW,SAErCP,EAAY,WACd,aAAaA,EAAY,OAAO,GAGlCA,EAAY,UAAU,WAAW,MAAM;AACrC,QAAAE,EAAaK,CAAQ;AAAA,MACvB,GAAGvB,CAAU;AAAA,IACf;AAAA,IACA,CAACF,GAAUoB,GAAclB,CAAU;AAAA,EAAA,GAG/BwB,IAAeL;AAAA,IACnB,CAACM,MAAuC;AACtC,MAAArB,EAAcqB,EAAW,KAAK,GAC9BlB,EAAe,CAAA,CAAE,GACjBI,EAAU,EAAK,GACfE,EAAe,EAAK,GAEpBf,KAAA,QAAAA,EAAW,EAAE,OAAO2B,EAAW,OAAO,WAAWA,EAAW;IAC9D;AAAA,IACA,CAAC3B,CAAQ;AAAA,EAAA,GAGL4B,IAAaP,EAAY,MAAM;AACnC,eAAW,MAAM;AACf,MAAAR,EAAU,EAAK;AAAA,IACjB,GAAG,GAAG;AAAA,EACR,GAAG,CAAA,CAAE,GAECgB,IAAcR,EAAY,MAAM;AACpC,IAAIb,EAAY,SAAS,KACvBK,EAAU,EAAI;AAAA,EAElB,GAAG,CAACL,EAAY,MAAM,CAAC;AAEvB,SAAAW,GAAU,MACD,MAAM;AACX,IAAID,EAAY,WACd,aAAaA,EAAY,OAAO;AAAA,EAEpC,GACC,CAAA,CAAE,GAGH,gBAAAtD;AAAA,IAACQ;AAAAA,IAAA;AAAA,MACC,KAAK4C;AAAA,MACL,WAAW3D,GAAI,aAAalB,CAAS;AAAA,MACrC,YAAY,EAAQyD;AAAA,MAEnB,UAAA;AAAA,QAAAC,KACC,gBAAA7B,EAACK,MAAY,SAAAX,GAAkB,WAAWL,GAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK,GACrE,UAAAG,EAAA,CACH;AAAA,0BAEDtB,IAAA,EACC,UAAA;AAAA,UAAA,gBAAAP;AAAA,YAACQ;AAAAA,YAAA;AAAA,cACE,GAAGb;AAAA,cACJ,KAAA1B;AAAA,cACA,MAAK;AAAA,cACL,OAAOoE;AAAA,cACP,UAAUmB;AAAA,cACV,QAAQI;AAAA,cACR,SAASC;AAAA,cACT,UAAAlC;AAAA,cACA,OAAOR;AAAA,cACP,UAAUzB;AAAA,cACV,WAAWL,GAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK;AAAA,YAAA;AAAA,UAAA;AAAA,UAE1CgB,KACC,gBAAA1C,EAACS,IAAA,EACC,4BAACc,IAAA,EAAQ,MAAK,MAAK,EAAA,CACrB;AAAA,QAAA,GAEJ;AAAA,QACCO,KAAW,gBAAA9B,EAACM,IAAA,EAAc,SAAAZ,GAAmB,UAAAoC,GAAQ;AAAA,QACtD,gBAAA9B;AAAA,UAACU;AAAAA,UAAA;AAAA,YACC,OAAOkC,KAAUE,KAAe,CAACJ;AAAA,YACjC,WAAWrD,GAAI,YAAYqC,KAAA,gBAAAA,EAAY,QAAQ;AAAA,YAE9C,YAAY,SAAS,IAClBc,EAAY,IAAI,CAACmB,MACf,gBAAA/D;AAAA,cAACgB;AAAA,cAAA;AAAA,gBAEC,SAAS,MAAM8C,EAAaC,CAAU;AAAA,gBACtC,WAAWtE,GAAI,QAAQqC,KAAA,gBAAAA,EAAY,IAAI;AAAA,gBAEtC,UAAA;AAAA,kBAAAiC,EAAW,+BACT9C,IAAA,EAAgB,KAAK8C,EAAW,WAAW,KAAKA,EAAW,MAAA,CAAO;AAAA,kBAErE,gBAAA3D,EAACc,IAAA,EAAgB,UAAA6C,EAAW,MAAA,CAAM;AAAA,gBAAA;AAAA,cAAA;AAAA,cAP7BA,EAAW;AAAA,YAAA,CASnB,IACD,CAACjB,KAAa,gBAAA1C,EAACe,MAAa,UAAAqB,EAAA,CAAiB;AAAA,UAAA;AAAA,QAAA;AAAA,MACnD;AAAA,IAAA;AAAA,EAAA;AAGN,GClLa0B,KAQT;AAAA,EACF,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,UAAU;AAAA,EAAA;AAAA,EAEZ,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,UAAU;AAAA,EAAA;AAEd,GAEaC,KAOT;AAAA,EACF,QAAQ;AAAA,IACN,YAAY;AAAA,MACV,QAAQ3E,EAAO,YAAY;AAAA,MAC3B,OAAOe,EAAMf,EAAO,YAAY,GAAG,EAAE;AAAA,MACrC,QAAQe,EAAMf,EAAO,YAAY,GAAG,EAAE;AAAA,MACtC,UAAUe,EAAMf,EAAO,YAAY,GAAG,EAAE;AAAA,IAAA;AAAA,IAE1C,OAAO;AAAA,MACL,QAAQA,EAAO;AAAA,MACf,OAAOA,EAAO;AAAA,MACd,QAAQA,EAAO;AAAA,MACf,UAAUA,EAAO;AAAA,IAAO;AAAA,IAE1B,aAAa;AAAA,MACX,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,UAAU;AAAA,IAAA;AAAA,EACZ;AAAA,EAEF,QAAQ;AAAA,IACN,YAAY;AAAA,MACV,QAAQA,EAAO;AAAA,MACf,OAAOe,EAAMf,EAAO,OAAU,EAAE;AAAA,MAChC,QAAQe,EAAMf,EAAO,OAAU,EAAE;AAAA,MACjC,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,OAAO;AAAA,MACL,QAAQA,EAAO;AAAA,MACf,OAAOA,EAAO;AAAA,MACd,QAAQA,EAAO;AAAA,MACf,UAAUA,EAAO;AAAA,IAAO;AAAA,IAE1B,aAAa;AAAA,MACX,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,UAAU;AAAA,IAAA;AAAA,EACZ;AAAA,EAEF,SAAS;AAAA,IACP,YAAY;AAAA,MACV,QAAQA,EAAO;AAAA,MACf,OAAOe,EAAMf,EAAO,OAAU,EAAE;AAAA,MAChC,QAAQe,EAAMf,EAAO,OAAU,EAAE;AAAA,MACjC,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,OAAO;AAAA,MACL,QAAQA,EAAO;AAAA,MACf,OAAOA,EAAO;AAAA,MACd,QAAQA,EAAO;AAAA,MACf,UAAUA,EAAO;AAAA,IAAO;AAAA,IAE1B,aAAa;AAAA,MACX,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,UAAU;AAAA,IAAA;AAAA,EACZ;AAAA,EAEF,SAAS;AAAA,IACP,YAAY;AAAA,MACV,QAAQA,EAAO;AAAA,MACf,OAAOe,EAAMf,EAAO,QAAW,EAAE;AAAA,MACjC,QAAQe,EAAMf,EAAO,QAAW,EAAE;AAAA,MAClC,UAAUe,EAAMf,EAAO,QAAW,EAAE;AAAA,IAAA;AAAA,IAEtC,OAAO;AAAA,MACL,QAAQA,EAAO;AAAA,MACf,OAAOA,EAAO;AAAA,MACd,QAAQA,EAAO;AAAA,MACf,UAAUA,EAAO;AAAA,IAAO;AAAA,IAE1B,aAAa;AAAA,MACX,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,UAAU;AAAA,IAAA;AAAA,EACZ;AAAA,EAEF,QAAQ;AAAA,IACN,YAAY;AAAA,MACV,QAAQA,EAAO;AAAA,MACf,OAAOe,EAAMf,EAAO,KAAQ,EAAE;AAAA,MAC9B,QAAQe,EAAMf,EAAO,KAAQ,EAAE;AAAA,MAC/B,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,OAAO;AAAA,MACL,QAAQA,EAAO;AAAA,MACf,OAAOA,EAAO;AAAA,MACd,QAAQA,EAAO;AAAA,MACf,UAAUA,EAAO;AAAA,IAAO;AAAA,IAE1B,aAAa;AAAA,MACX,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,UAAU;AAAA,IAAA;AAAA,EACZ;AAAA,EAEF,aAAa;AAAA,IACX,YAAY;AAAA,MACV,QAAQe,EAAMf,EAAO,WAAW,GAAG,CAAC;AAAA,MACpC,OAAOe,EAAMf,EAAO,WAAW,GAAG,CAAC;AAAA,MACnC,QAAQe,EAAMf,EAAO,WAAW,GAAG,EAAE;AAAA,MACrC,UAAUe,EAAMf,EAAO,WAAW,GAAG,CAAC;AAAA,IAAA;AAAA,IAExC,OAAO;AAAA,MACL,QAAQA,EAAO;AAAA,MACf,OAAOA,EAAO;AAAA,MACd,QAAQA,EAAO;AAAA,MACf,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,aAAa;AAAA,MACX,QAAQe,EAAMf,EAAO,WAAW,GAAG,EAAE;AAAA,MACrC,OAAOe,EAAMf,EAAO,WAAW,GAAG,EAAE;AAAA,MACpC,QAAQe,EAAMf,EAAO,WAAW,GAAG,EAAE;AAAA,MACrC,UAAUe,EAAMf,EAAO,WAAW,GAAG,EAAE;AAAA,IAAA;AAAA,EACzC;AAEJ,GCtJa4E,IAAwB,CAACtE,MAA2B;AAC/D,QAAMuE,IAASF,GAAqBrE,CAAO;AAC3C,SAAKuE,KACIF,GAAqB;AAIhC,GAEaG,KAAqB,CAAC/C,MAA8B;AAC/D,QAAM8C,IAASH,GAAkB3C,CAAI;AACrC,SAAK8C,KACIH,GAAkB;AAI7B,GAEaK,KAAsB,CAACvC,MAC9BA,IACK,SAGF,eCbIwC,KAAenF,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAMxB,CAACjB,MACPA,EAAM,YAEHkG,GAAmBlG,EAAM,KAAK,EAAE,SADhCmG,GAAoB,EAAQnG,EAAM,UAAW,CACP;AAAA,WACnC,CAACA,MAAUgG,EAAsBhG,EAAM,QAAQ,EAAE,MAAM,MAAM;AAAA,sBAClD,CAACA,MAAUgG,EAAsBhG,EAAM,QAAQ,EAAE,WAAW,MAAM;AAAA,YAC5E,CAACA,MAAUkG,GAAmBlG,EAAM,KAAK,EAAE,MAAM;AAAA,aAChD,CAACA,MAAYA,EAAM,YAAsD,MAA1CkG,GAAmBlG,EAAM,KAAK,EAAE,OAAc;AAAA,mBACvE,CAACA,MAAUkG,GAAmBlG,EAAM,KAAK,EAAE,MAAM;AAAA,sBAC9C,CAACA,MAAUgG,EAAsBhG,EAAM,QAAQ,EAAE,YAAY,MAAM;AAAA;AAAA;AAAA,aAG5E,CAACA,MAAUgG,EAAsBhG,EAAM,QAAQ,EAAE,MAAM,KAAK;AAAA,wBACjD,CAACA,MAAUgG,EAAsBhG,EAAM,QAAQ,EAAE,WAAW,KAAK;AAAA,oBACrE,CAACA,MAAUgG,EAAsBhG,EAAM,QAAQ,EAAE,YAAY,KAAK;AAAA;AAAA;AAAA;AAAA,aAIzE,CAACA,MAAUgG,EAAsBhG,EAAM,QAAQ,EAAE,MAAM,MAAM;AAAA,wBAClD,CAACA,MAAUgG,EAAsBhG,EAAM,QAAQ,EAAE,WAAW,MAAM;AAAA,oBACtE,CAACA,MAAUgG,EAAsBhG,EAAM,QAAQ,EAAE,YAAY,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,aAK1E,CAACA,MAAUgG,EAAsBhG,EAAM,QAAQ,EAAE,MAAM,QAAQ;AAAA,wBACpD,CAACA,MAAUgG,EAAsBhG,EAAM,QAAQ,EAAE,WAAW,QAAQ;AAAA,oBACxE,CAACA,MAAUgG,EAAsBhG,EAAM,QAAQ,EAAE,YAAY,QAAQ;AAAA;AAAA,GAI5EqG,KAAapF,EAAO;AAAA;AAAA;AAAA,WAGtB,CAACjB,MAAUkG,GAAmBlG,EAAM,KAAK,EAAE,QAAQ;AAAA,YAClD,CAACA,MAAUkG,GAAmBlG,EAAM,KAAK,EAAE,QAAQ;AAAA;AAAA;AAAA,aAGlD,CAACA,MAAUkG,GAAmBlG,EAAM,KAAK,EAAE,QAAQ;AAAA,cAClD,CAACA,MAAUkG,GAAmBlG,EAAM,KAAK,EAAE,QAAQ;AAAA;AAAA,GAIpDqC,KAAcpB,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOrBqF,KAAgBrF,EAAOsF,EAAY;AAAA,WACrC,CAACvG,MAAUkG,GAAmBlG,EAAM,KAAK,EAAE,QAAQ;AAAA,YAClD,CAACA,MAAUkG,GAAmBlG,EAAM,KAAK,EAAE,QAAQ;AAAA,eAChDwG,GAAU,MAAM;AAAA,GCvElBC,KAAoBxF,EAAO;AAAA;AAAA;AAAA,GCG3ByF,KAAkBzF,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAYhB,CAACjB,MACnBA,EAAM,aAAa,UAAUmC,EAAMf,EAAO,OAAU,EAAE,IAAIe,EAAMf,EAAO,OAAU,EAAE,CAAC;AAAA,GCdlFC,KAAMC,EAAmB,YAAY,GAC9BqF,KAAY,CAAC;AAAA,EACxB,WAAAxG;AAAA,EACA,KAAAF;AAAA,EACA,QAAA2G;AAAA,EACA,SAAAlF,IAAU;AAAA,EACV,GAAGC;AACL,MACOiF,IAKH,gBAAA5E,EAAC0E,IAAA,EAAiB,GAAG/E,GAAM,KAAA1B,GAAU,WAAWoB,GAAI,aAAalB,CAAS,GAAG,UAAUuB,GACpF,UAAAkF,EAAA,CACH,IANO,MCNLvF,KAAMC,EAAmB,cAAc,GAChCuF,KAAe,CAAC;AAAA,EAC3B,WAAA1G;AAAA,EACA,YAAAuD;AAAA,EACA,MAAAoD;AAAA,EACA,KAAA7G;AAAA,EACA,SAAAyB;AAAA,EACA,GAAGC;AACL,MAAyB;AACvB,QAAMoF,IAAUC,GAAQ,MAAMC,GAAcH,CAAI,GAAG,CAACA,CAAI,CAAC;AACzD,SAAIC,EAAQ,WAAW,IACd,OAIP,gBAAA/E,EAACyE,IAAA,EAAmB,GAAG9E,GAAM,KAAA1B,GAAU,WAAWoB,GAAI,aAAalB,CAAS,GACzE,UAAA4G,EAAQ,IAAI,CAACG,MACZ,gBAAAlF;AAAA,IAAC2E;AAAA,IAAA;AAAA,MAEC,QAAQO;AAAA,MACR,WAAW7F,GAAI,QAAQqC,KAAA,gBAAAA,EAAY,IAAI;AAAA,MACvC,SAAAhC;AAAA,IAAA;AAAA,IAHKwF;AAAA,EAAA,CAKR,GACH;AAEJ,GC1BM7F,KAAMC,EAAmB,QAAQ,GAC1B6F,KAAS,CAAC;AAAA,EACrB,UAAA3F;AAAA,EACA,WAAArB;AAAA,EACA,YAAAuD;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,MAAAwD;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,KAAArH,IAAM;AAAA,EACN,aAAAsH,IAAc,CAAA;AAAA,EACd,MAAApE,IAAO;AAAA,EACP,MAAAqE,IAAO;AAAA,EACP,SAAA9F,IAAU;AAAA,EACV,GAAGC;AACL,MAAmB;AACjB,QAAM8F,IAAYxC,EAA0B,IAAI;AAEhD,EAAAyC,GAAoBzH,GAAK,MAAMwH,EAAU,SAAU,CAAA,CAAE,GACrDE,GAAcJ,GAAa,MAAM;;AAC/B,KAAAK,IAAAH,EAAU,YAAV,QAAAG,EAAmB;AAAA,EACrB,CAAC;AAED,QAAMC,IAAeb,GAAQ,MAAM;AACjC,YAAQQ,GAAA;AAAA,MACN,KAAK;AACH,eAAO;AAAA,MAET;AACE,eAAOA;AAAA,IAAA;AAAA,EAEb,GAAG,CAACA,CAAI,CAAC;AAET,SACE,gBAAA5F;AAAA,IAACwE;AAAA,IAAA;AAAA,MACE,GAAGzE;AAAA,MACJ,SAAA2F;AAAA,MACA,KAAKG;AAAA,MACL,MAAMI;AAAA,MACN,UAAAlE;AAAA,MACA,WAAWtC,GAAI,aAAalB,CAAS;AAAA,MACrC,UAAUuB;AAAA,MACV,OAAOyB;AAAA,MACP,YAAY,EAAQS;AAAA,MACpB,WAAW,EAAQwD,KAAS,EAAE5F,MAAY+F,KAAA,gBAAAA,EAAa,UAAS;AAAA,MAE/D,UAAA;AAAA,QAAAF,KAAW,gBAAArF,EAACsE,IAAA,EAAc,OAAOnD,EAAA,CAAM;AAAA,QACvCiE,KAAQ,CAACC,uBAAYhB,IAAA,EAAW,OAAOlD,GAAO,UAAAiE,GAAK;AAAA,QACnD5F,uBACEa,IAAA,EAAY,WAAWhB,GAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK,GAAI,UAAAlC,GAAS;AAAA,QAErE,gBAAAQ,EAAC6E,MAAa,MAAMU,GAAa,SAAS7F,MAAY,WAAW,UAAU,OAAA,CAAQ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGzF,GC3DaoG,KAaT;AAAA,EACF,QAAQ;AAAA,IACN,KAAK;AAAA,MACH,QAAQ3F,EAAMf,EAAO,WAAW,GAAG,EAAE;AAAA,MACrC,eAAeA,EAAO,WAAW;AAAA,MACjC,YAAYA,EAAO;AAAA,MACnB,mBAAmBA,EAAO;AAAA,MAC1B,aAAae,EAAMf,EAAO,WAAW,GAAG,EAAE;AAAA,IAAA;AAAA,IAE5C,OAAOA,EAAO;AAAA,IACd,MAAMA,EAAO;AAAA,EAAO;AAAA,EAEtB,OAAO;AAAA,IACL,KAAK;AAAA,MACH,QAAQA,EAAO;AAAA,MACf,eAAeA,EAAO;AAAA,MACtB,YAAYA,EAAO;AAAA,MACnB,mBAAmBA,EAAO;AAAA,MAC1B,aAAae,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEtC,OAAOA,EAAO;AAAA,IACd,MAAMA,EAAO;AAAA,EAAO;AAExB,GCpCa2G,KAA0B,CAACrG,MAC/BoG,GAAuBpG,CAAO,KAAKoG,GAAuB,QCqBtD1F,KAAkBnB,EAAO;AAAA;AAAA;AAAA;AAAA,YAI1B,CAACjB,MAAWA,EAAM,YAAY,gBAAgB,SAAU;AAAA,aACvD,CAACA,MAAWA,EAAM,YAAY,MAAM,CAAE;AAAA,GAGtCwC,KAAcvB,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQrB+G,KAAY/G,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAS1B,CAACjB,MACDA,EAAM,YAAYA,EAAM,iBACpB+H,GAAwB/H,EAAM,QAAQ,EAAE,IAAI,gBAC5C+H,GAAwB/H,EAAM,QAAQ,EAAE,IAAI,MAAM;AAAA,sBACtC,CAACA,MACnBA,EAAM,YAAYA,EAAM,iBACpB+H,GAAwB/H,EAAM,QAAQ,EAAE,IAAI,oBAC5C+H,GAAwB/H,EAAM,QAAQ,EAAE,IAAI,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,GAOjDqG,KAAapF,EAAO;AAAA;AAAA;AAAA;AAAA,WAItB,CAACjB,MAAU+H,GAAwB/H,EAAM,QAAQ,EAAE,IAAI;AAAA,aACrD,CAACA,MAAWA,EAAM,WAAW,IAAI,CAAE;AAAA,eACjC,CAACA,MAAWA,EAAM,WAAW,aAAa,YAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAWzDqC,KAAcpB,EAAO;AAAA;AAAA;AAAA;AAAA,WAIvB,CAACjB,MAAU+H,GAAwB/H,EAAM,QAAQ,EAAE,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GChF7DqB,KAAMC,EAAmB,UAAU,GAE5B2G,KAAW,CAAC;AAAA,EACvB,SAAAC;AAAA,EACA,WAAA/H;AAAA,EACA,YAAAuD;AAAA,EACA,UAAAC;AAAA,EACA,eAAAwE,IAAgB;AAAA,EAChB,OAAAtE;AAAA,EACA,UAAAG;AAAA,EACA,KAAA/D;AAAA,EACA,SAAAyB,IAAU;AAAA,EACV,GAAGC;AACL,MAEI,gBAAAC;AAAA,EAACQ;AAAAA,EAAA;AAAA,IACC,WAAWf,GAAI,aAAalB,CAAS;AAAA,IACrC,WAAW,EAAQwD;AAAA,IACnB,UAAUjC;AAAA,IAEV,UAAA;AAAA,MAAA,gBAAAM;AAAA,QAACQ;AAAAA,QAAA;AAAA,UACE,GAAGb;AAAA,UACJ,KAAA1B;AAAA,UACA,MAAK;AAAA,UACL,WAAWoB,GAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK;AAAA,UACzC,SAAAwE;AAAA,UACA,UAAAvE;AAAA,UACA,UAAAK;AAAA,QAAA;AAAA,MAAA;AAAA,MAEF,gBAAAhC;AAAA,QAACgG;AAAAA,QAAA;AAAA,UACC,WAAW3G,GAAI,OAAOqC,KAAA,gBAAAA,EAAY,GAAG;AAAA,UACrC,UAAUwE;AAAA,UACV,gBAAgBC;AAAA,UAChB,UAAUzG;AAAA,UAEV,UAAA,gBAAAM;AAAA,YAACqE;AAAA,YAAA;AAAA,cACC,WAAWhF,GAAI,QAAQqC,KAAA,gBAAAA,EAAY,IAAI;AAAA,cACvC,UAAUyE,KAAiBD;AAAA,cAC3B,UAAUxG;AAAA,cAET,UAAAyG,IAAgB,gBAAAnG,EAACoG,IAAA,CAAA,CAAM,sBAAMC,IAAA,CAAA,CAAM;AAAA,YAAA;AAAA,UAAA;AAAA,QACtC;AAAA,MAAA;AAAA,MAEDxE,KACC,gBAAA7B,EAACK,IAAA,EAAY,WAAWhB,GAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK,GAAG,UAAUhC,GAChE,UAAAmC,EAAA,CACH;AAAA,IAAA;AAAA,EAAA;AAAA,GCtCKyE,KAAqF;AAAA,EAChG,QAAQ;AAAA,IACN,QAAQ;AAAA,MACN,QAAQnG,EAAMf,EAAO,OAAU,EAAE;AAAA,MACjC,OAAOe,EAAMf,EAAO,OAAU,EAAE;AAAA,MAChC,QAAQe,EAAMf,EAAO,OAAU,EAAE;AAAA,MACjC,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,eAAeA,EAAO;AAAA,IACtB,YAAY;AAAA,MACV,QAAQA,EAAO;AAAA,MACf,OAAOA,EAAO;AAAA,MACd,QAAQA,EAAO;AAAA,MACf,UAAUe,EAAMf,EAAO,OAAU,CAAC;AAAA,IAAA;AAAA,IAEpC,mBAAmBe,EAAMf,EAAO,OAAU,CAAC;AAAA,IAC3C,WAAWe,EAAMf,EAAO,OAAU,EAAE;AAAA,IACpC,OAAO;AAAA,MACL,QAAQA,EAAO;AAAA,MACf,OAAOA,EAAO;AAAA,MACd,QAAQA,EAAO;AAAA,MACf,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,aAAa;AAAA,MACX,QAAQe,EAAMf,EAAO,OAAU,EAAE;AAAA,MACjC,OAAOe,EAAMf,EAAO,OAAU,EAAE;AAAA,MAChC,QAAQe,EAAMf,EAAO,OAAU,EAAE;AAAA,MACjC,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,EACrC;AAAA,EAEF,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,QAAQA,EAAO;AAAA,MACf,OAAOA,EAAO;AAAA,MACd,QAAQA,EAAO;AAAA,MACf,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,eAAeA,EAAO;AAAA,IACtB,YAAY;AAAA,MACV,QAAQA,EAAO;AAAA,MACf,OAAOA,EAAO;AAAA,MACd,QAAQA,EAAO;AAAA,MACf,UAAUe,EAAMf,EAAO,KAAQ,CAAC;AAAA,IAAA;AAAA,IAElC,mBAAmBe,EAAMf,EAAO,KAAQ,CAAC;AAAA,IACzC,WAAWe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAClC,OAAO;AAAA,MACL,QAAQA,EAAO;AAAA,MACf,OAAOA,EAAO;AAAA,MACd,QAAQA,EAAO;AAAA,MACf,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,aAAa;AAAA,MACX,QAAQe,EAAMf,EAAO,KAAQ,EAAE;AAAA,MAC/B,OAAOe,EAAMf,EAAO,KAAQ,EAAE;AAAA,MAC9B,QAAQe,EAAMf,EAAO,KAAQ,EAAE;AAAA,MAC/B,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,EACnC;AAEJ,GCrEamH,KAA8B,CAAC7G,MACnC4G,GAA4B5G,CAAO,KAAK4G,GAA4B,QCgBhElG,KAAkBnB,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAMhB,CAACjB,MAAU;AAC7B,QAAMwI,IAAeD,GAA4BvI,EAAM,QAAQ;AAC/D,SAAIA,EAAM,YAAkBwI,EAAa,WAAW,WAChDxI,EAAM,WAAiBwI,EAAa,oBACjCA,EAAa,WAAW;AACjC,CAAC;AAAA;AAAA,MAEG,CAACxI,MAAU;AACX,QAAMwI,IAAeD,GAA4BvI,EAAM,QAAQ;AAC/D,SAAIA,EAAM,YAAkBwI,EAAa,OAAO,WAC5CxI,EAAM,WAAiBwI,EAAa,gBACjCA,EAAa,OAAO;AAC7B,CAAC;AAAA;AAAA,YAEO,CAACxI,MAAWA,EAAM,YAAY,gBAAgB,SAAU;AAAA;AAAA;AAAA;AAAA,WAIzD,CAACA,MAAWA,EAAM,aAAa,SAAS,aAAc;AAAA;AAAA;AAAA;AAAA,oBAI7C,CAACA,MAAU;AACzB,QAAMwI,IAAeD,GAA4BvI,EAAM,QAAQ;AAC/D,SAAIA,EAAM,WAAiBwI,EAAa,gBACjCA,EAAa,OAAO;AAC7B,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQQhG,KAAcvB,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAYrBwH,KAAgBxH,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOvBoB,KAAcpB,EAAO;AAAA;AAAA;AAAA;AAAA,WAIvB,CAACjB,MAAUuI,GAA4BvI,EAAM,QAAQ,EAAE,MAAM,MAAM;AAAA;AAAA;AAAA,aAGjE,CAACA,MAAUuI,GAA4BvI,EAAM,QAAQ,EAAE,MAAM,QAAQ;AAAA;AAAA,GAIrE0I,KAAoBzH,EAAO;AAAA;AAAA;AAAA;AAAA,WAI7B,CAACjB,MAAUuI,GAA4BvI,EAAM,QAAQ,EAAE,YAAY,MAAM;AAAA;AAAA;AAAA,aAGvE,CAACA,MAAUuI,GAA4BvI,EAAM,QAAQ,EAAE,YAAY,QAAQ;AAAA;AAAA,GCtFlFqB,KAAMC,EAAmB,eAAe,GAEjCqH,KAAe,CAAC;AAAA,EAC3B,SAAAT;AAAA,EACA,WAAA/H;AAAA,EACA,YAAAuD;AAAA,EACA,aAAAkF;AAAA,EACA,UAAAjF;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,OAAAC;AAAA,EACA,UAAAG;AAAA,EACA,KAAA/D;AAAA,EACA,SAAAyB,IAAU;AAAA,EACV,GAAGC;AACL,MAEI,gBAAAC;AAAA,EAACQ;AAAAA,EAAA;AAAA,IACC,WAAWf,GAAI,aAAalB,CAAS;AAAA,IACrC,UAAU+H;AAAA,IACV,WAAW,EAAQvE;AAAA,IACnB,YAAYC;AAAA,IACZ,UAAUlC;AAAA,IACV,iBAAeiC;AAAA,IAEf,UAAA;AAAA,MAAA,gBAAA3B;AAAA,QAACQ;AAAAA,QAAA;AAAA,UACE,GAAGb;AAAA,UACJ,KAAA1B;AAAA,UACA,MAAK;AAAA,UACL,SAAAiI;AAAA,UACA,UAAAvE;AAAA,UACA,UAAAK;AAAA,QAAA;AAAA,MAAA;AAAA,MAEF,gBAAAhC;AAAA,QAACiG;AAAA,QAAA;AAAA,UACC,WAAWvE,KAAA,gBAAAA,EAAY;AAAA,UACvB,SAAAwE;AAAA,UACA,UAAAvE;AAAA,UACA,SAAAjC;AAAA,UACA,UAAU,MAAM;AAAA,UAAC;AAAA,UACjB,UAAU;AAAA,UACV,eAAW;AAAA,QAAA;AAAA,MAAA;AAAA,wBAEZ+G,IAAA,EAAc,WAAWpH,GAAI,WAAWqC,KAAA,gBAAAA,EAAY,OAAO,GAC1D,UAAA;AAAA,QAAA,gBAAA1B,EAACK,IAAA,EAAY,WAAWhB,GAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK,GAAG,UAAUhC,GAChE,UAAAmC,EAAA,CACH;AAAA,QACC+E,KACC,gBAAA5G;AAAA,UAAC0G;AAAAA,UAAA;AAAA,YACC,WAAWrH,GAAI,eAAeqC,KAAA,gBAAAA,EAAY,WAAW;AAAA,YACrD,UAAUhC;AAAA,YAET,UAAAkH;AAAA,UAAA;AAAA,QAAA;AAAA,MACH,EAAA,CAEJ;AAAA,IAAA;AAAA,EAAA;AAAA,GC9DOC,KAAuB;AAAA,EAClC,OAAO;AAAA,IACL,OAAOzH,EAAO;AAAA,IACd,eAAee,EAAMf,EAAO,OAAU,EAAE;AAAA,EAAA;AAE5C,GCCagB,KAAkBnB,EAAO;AAAA;AAAA;AAAA;AAAA,GAMzBoB,KAAcpB,EAAO;AAAA;AAAA;AAAA;AAAA,WAIvB,CAACjB,MACRA,EAAM,YAAY6I,GAAqB,MAAM,gBAAgBA,GAAqB,MAAM,KAAK;AAAA;AAAA,GAIpFC,KAAgB7H,EAAO;AAAA;AAAA;AAAA;AAAA,GClB9BI,KAAMC,EAAmB,gBAAgB,GAElCyH,KAAgB,CAAC;AAAA,EAC5B,WAAA5I;AAAA,EACA,YAAAuD;AAAA,EACA,UAAAC;AAAA,EACA,OAAAE;AAAA,EACA,UAAAG;AAAA,EACA,SAAA1F;AAAA,EACA,KAAA2B;AAAA,EACA,OAAA8D;AAAA,EACA,SAAArC,IAAU;AAAA,EACV,GAAGC;AACL,MAA0B;AACxB,QAAMqH,IAAe,CAACC,GAAqBf,MAAqB;AAC9D,IACElE,EADEkE,IACO,CAAC,GAAGnE,GAAOkF,CAAW,IAEtBlF,EAAM,OAAO,CAACmF,MAAMA,MAAMD,CAAW,CAFd;AAAA,EAIpC;AAEA,SACE,gBAAArH,EAACQ,MAAiB,GAAGT,GAAM,KAAA1B,GAAU,WAAWoB,GAAI,aAAalB,CAAS,GACvE,UAAA;AAAA,IAAA0D,KACC,gBAAA7B,EAACK,IAAA,EAAY,WAAWhB,GAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK,GAAG,WAAWC,GACjE,UAAAE,EAAA,CACH;AAAA,IAEF,gBAAA7B,EAAC8G,IAAA,EAAc,WAAWzH,GAAI,WAAWqC,KAAA,gBAAAA,EAAY,OAAO,GACzD,UAAApF,EAAQ,IAAI,CAAC6K,MACZ,gBAAAnH;AAAA,MAACiG;AAAA,MAAA;AAAA,QAEC,WAAWvE,KAAA,gBAAAA,EAAY;AAAA,QACvB,SAASK,EAAM,SAASoF,EAAO,KAAK;AAAA,QACpC,OAAOA,EAAO;AAAA,QACd,UAAAxF;AAAA,QACA,SAAAjC;AAAA,QACA,UAAU,CAACjE,MAAMuL,EAAaG,EAAO,OAAO1L,EAAE,OAAO,OAAO;AAAA,MAAA;AAAA,MANvD0L,EAAO;AAAA,IAAA,CAQf,EAAA,CACH;AAAA,EAAA,GACF;AAEJ,GC9CaC,KAOT;AAAA,EACF,MAAM;AAAA,IACJ,YAAYjH,EAAMf,EAAO,WAAW,GAAG,EAAE;AAAA,IACzC,OAAOA,EAAO,WAAW;AAAA,IACzB,aAAae,EAAMf,EAAO,WAAW,GAAG,EAAE;AAAA,EAAA;AAAA,EAE5C,KAAK;AAAA,IACH,YAAYe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IACnC,OAAOA,EAAO;AAAA,IACd,aAAae,EAAMf,EAAO,KAAQ,EAAE;AAAA,EAAA;AAAA,EAEtC,MAAM;AAAA,IACJ,YAAYe,EAAMf,EAAO,YAAY,GAAG,EAAE;AAAA,IAC1C,OAAOA,EAAO,YAAY;AAAA,IAC1B,aAAae,EAAMf,EAAO,YAAY,GAAG,EAAE;AAAA,EAAA;AAAA,EAE7C,OAAO;AAAA,IACL,YAAYA,EAAO;AAAA,IACnB,OAAOA,EAAO;AAAA,IACd,aAAae,EAAMf,EAAO,OAAU,EAAE;AAAA,EAAA;AAE1C,GC5BaiI,KAAsB,CAAC3H,MAC3B0H,GAAmB1H,CAAO,KAAK0H,GAAmB,MCU9ChH,KAAkBnB,EAAO;AAAA;AAAA;AAAA;AAAA,eAIvB,CAACjB,MAAWA,EAAM,aAAa,QAAQ,MAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAMvC,CAACA,MAAUqJ,GAAoBrJ,EAAM,QAAQ,EAAE,UAAU;AAAA,WACpE,CAACA,MAAUqJ,GAAoBrJ,EAAM,QAAQ,EAAE,KAAK;AAAA,GAGlDsJ,KAAerI,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAeX,CAACjB,MAAUqJ,GAAoBrJ,EAAM,QAAQ,EAAE,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASrEqC,KAAcpB,EAAO;AAAA;AAAA;AAAA,GC/C5BI,KAAMC,EAAmB,MAAM,GAExBiI,KAAO,CAAC;AAAA,EACnB,UAAA/H;AAAA,EACA,WAAArB;AAAA,EACA,YAAAuD;AAAA,EACA,WAAA8F;AAAA,EACA,UAAAC;AAAA,EACA,KAAAxJ;AAAA,EACA,SAAAyB,IAAU;AAAA,EACV,GAAGC;AACL,MAEI,gBAAAC;AAAA,EAACQ;AAAAA,EAAA;AAAA,IACE,GAAGT;AAAA,IACJ,KAAA1B;AAAA,IACA,WAAWoB,GAAI,aAAalB,CAAS;AAAA,IACrC,UAAUuB;AAAA,IACV,YAAY,EAAQ8H;AAAA,IAEpB,UAAA;AAAA,MAAA,gBAAAxH,EAACK,MAAY,WAAWhB,GAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK,GAAI,UAAAlC,GAAS;AAAA,MAClEgI,KACC,gBAAAxH;AAAA,QAACsH;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAWjI,GAAI,UAAUqC,KAAA,gBAAAA,EAAY,MAAM;AAAA,UAC3C,UAAUhC;AAAA,UACV,SAAS+H;AAAA,UAET,4BAACC,IAAA,CAAA,CAAE;AAAA,QAAA;AAAA,MAAA;AAAA,IACL;AAAA,EAAA;AAAA,GC/BKC,KAQT;AAAA,EACF,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,UAAU;AAAA,EAAA;AAAA,EAEZ,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,UAAU;AAAA,EAAA;AAEd,GAEaC,KAST;AAAA,EACF,QAAQ;AAAA,IACN,YAAY;AAAA,MACV,QAAQzH,EAAMf,EAAO,OAAU,CAAC;AAAA,MAChC,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,QAAQ;AAAA,MACN,QAAQe,EAAMf,EAAO,OAAU,EAAE;AAAA,MACjC,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,OAAO;AAAA,MACL,QAAQA,EAAO;AAAA,MACf,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,aAAa;AAAA,MACX,QAAQe,EAAMf,EAAO,OAAU,EAAE;AAAA,MACjC,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,OAAOe,EAAMf,EAAO,WAAW,GAAG,EAAE;AAAA,EAAA;AAAA,EAEtC,OAAO;AAAA,IACL,YAAY;AAAA,MACV,QAAQe,EAAMf,EAAO,KAAQ,CAAC;AAAA,MAC9B,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,QAAQ;AAAA,MACN,QAAQe,EAAMf,EAAO,KAAQ,EAAE;AAAA,MAC/B,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,OAAO;AAAA,MACL,QAAQA,EAAO;AAAA,MACf,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,aAAa;AAAA,MACX,QAAQe,EAAMf,EAAO,KAAQ,EAAE;AAAA,MAC/B,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,OAAOe,EAAMf,EAAO,KAAQ,EAAE;AAAA,EAAA;AAElC,GAEayI,KAAqB,IACrBC,KAAe,GACfC,KAAmB,ICtDnBC,KAAe,CAACC,GAAYC,GAAgBC,IAAiB,SAAiB;AACzF,QAAMC,IAAOH,EAAK,YAAA,GACZI,IAAQJ,EAAK,SAAA,GACbK,IAAML,EAAK,QAAA,GACXM,IAAQN,EAAK,SAAA,GACbO,IAAUP,EAAK,WAAA,GACfQ,IAAUR,EAAK,WAAA,GAEfS,IAASH,IAAQ,MAAM,IACvBI,IAAOJ,KAAS,IAEhBK,IAAY,IAAI,KAAK,eAAeT,GAAQ,EAAE,OAAO,OAAA,CAAQ,EAAE,OAAOF,CAAI,GAC1EY,IAAa,IAAI,KAAK,eAAeV,GAAQ,EAAE,OAAO,QAAA,CAAS,EAAE,OAAOF,CAAI,GAC5Ea,IAAc,IAAI,KAAK,eAAeX,GAAQ,EAAE,SAAS,OAAA,CAAQ,EAAE,OAAOF,CAAI,GAC9Ec,IAAe,IAAI,KAAK,eAAeZ,GAAQ,EAAE,SAAS,QAAA,CAAS,EAAE,OAAOF,CAAI,GAEhFe,IAAM,CAACxN,MAAsBA,EAAE,WAAW,SAAS,GAAG,GAAG,GACzDyN,IAAW,CAACzN,MAAsBA,EAAE,WAAW,SAAS,GAAG,GAAG,GAK9D0N,IAAc,CAACC,MAAe,KAAOA,CAAE,MAIvCC,IAAqC;AAAA,IACzC,CAAC,QAAQ,YAAYhB,EAAK,UAAU;AAAA,IACpC,CAAC,WAAW,aAAaQ,CAAS;AAAA,IAClC,CAAC,UAAU,eAAeE,CAAW;AAAA,IACrC,CAAC,OAAO,cAAcD,CAAU;AAAA,IAChC,CAAC,OAAO,gBAAgBE,CAAY;AAAA,IACpC,CAAC,MAAM,WAAWX,EAAK,WAAW,MAAM,EAAE,CAAC;AAAA,IAC3C,CAAC,MAAM,YAAYY,EAAIX,IAAQ,CAAC,CAAC;AAAA,IACjC,CAAC,MAAM,YAAYY,EAASX,CAAG,CAAC;AAAA,IAChC,CAAC,MAAM,UAAUU,EAAIV,CAAG,CAAC;AAAA,IACzB,CAAC,MAAM,kBAAkBU,EAAIT,CAAK,CAAC;AAAA,IACnC,CAAC,MAAM,iBAAiBS,EAAIN,CAAM,CAAC;AAAA,IACnC,CAAC,MAAM,UAAUM,EAAIR,CAAO,CAAC;AAAA,IAC7B,CAAC,MAAM,UAAUQ,EAAIP,CAAO,CAAC;AAAA,IAC7B,CAAC,MAAM,UAAUE,IAAO,OAAO,IAAI;AAAA,IACnC,CAAC,MAAM,WAAWA,IAAO,OAAO,IAAI;AAAA;AAAA,IAEpC,CAAC,KAAK,UAAUN,IAAQ,GAAG,UAAU;AAAA,IACrC,CAAC,KAAK,OAAOC,EAAI,UAAU;AAAA,IAC3B,CAAC,KAAK,cAAcI,EAAO,UAAU;AAAA,EAAA;AAGvC,MAAIzE,IAASiE;AAGb,aAAW,CAACmB,GAAOF,CAAE,KAAKC;AACxB,IAAAnF,IAASA,EAAO,MAAMoF,CAAK,EAAE,KAAKH,EAAYC,CAAE,CAAC;AAInD,aAAW,CAAA,EAAGA,GAAIpH,CAAK,KAAKqH;AAC1B,IAAAnF,IAASA,EAAO,MAAMiF,EAAYC,CAAE,CAAC,EAAE,KAAKpH,CAAK;AAGnD,SAAOkC;AACT,GAKaqF,KAAiB,CAAClB,GAAcC,MACpC,IAAI,KAAKD,GAAMC,IAAQ,GAAG,CAAC,EAAE,QAAA,GAMzBkB,KAAqB,CAACnB,GAAcC,MACxC,IAAI,KAAKD,GAAMC,GAAO,CAAC,EAAE,OAAA,GAMrBmB,KAAuB,CAClCpB,GACAC,GACAoB,IAAsB,MACA;AACtB,QAAMC,IAAcJ,GAAelB,GAAMC,CAAK;AAI9C,MAAIsB,IAHaJ,GAAmBnB,GAAMC,CAAK,IAGboB;AAClC,EAAIE,IAAmB,MACrBA,KAAoB;AAGtB,QAAMC,IAA0B,CAAA;AAGhC,WAAS/L,IAAI,GAAGA,IAAI8L,GAAkB9L;AACpC,IAAA+L,EAAK,KAAK,IAAI;AAIhB,WAAStB,IAAM,GAAGA,KAAOoB,GAAapB;AACpC,IAAAsB,EAAK,KAAKtB,CAAG;AAIf,SAAOsB,EAAK,SAAS;AACnB,IAAAA,EAAK,KAAK,IAAI;AAGhB,SAAOA;AACT,GAKaC,KAAkB,CAAC1B,GAAgBsB,IAAsB,MAAgB;AACpF,QAAMK,IAAqB,CAAA;AAE3B,WAASjM,IAAI,GAAGA,IAAI,GAAGA,KAAK;AAC1B,UAAMkM,KAAYN,IAAe5L,KAAK,GAChCoK,IAAO,IAAI,KAAK,MAAM,GAAG,IAAI8B,CAAQ;AAC3C,IAAAD,EAAS,KAAK,IAAI,KAAK,eAAe3B,GAAQ,EAAE,SAAS,QAAA,CAAS,EAAE,OAAOF,CAAI,CAAC;AAAA,EAClF;AAEA,SAAO6B;AACT,GAiBaE,KAAqB,CAAC7B,MAA6B;AAC9D,QAAM8B,IAAmB,CAAA;AACzB,WAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AAC3B,UAAMhC,IAAO,IAAI,KAAK,MAAM,GAAG,CAAC;AAChC,IAAAgC,EAAO,KAAK,IAAI,KAAK,eAAe9B,GAAQ,EAAE,OAAO,QAAA,CAAS,EAAE,OAAOF,CAAI,CAAC;AAAA,EAC9E;AACA,SAAOgC;AACT,GAKaC,KAAY,CAACC,GAASC,MAE/BD,EAAE,YAAA,MAAkBC,EAAE,YAAA,KACtBD,EAAE,SAAA,MAAeC,EAAE,cACnBD,EAAE,QAAA,MAAcC,EAAE,QAAA,GAOTC,KAAc,CAACF,GAASC,MAC5BD,EAAE,YAAA,MAAkBC,EAAE,iBAAiBD,EAAE,SAAA,MAAeC,EAAE,SAAA,GAMtDE,KAAa,CAACH,GAASC,MAC3BD,EAAE,kBAAkBC,EAAE,YAAA,GAelBG,KAAgB,CAC3BnC,GACAC,GACAC,GACAkC,GACAC,MACY;AACZ,QAAMxC,IAAO,IAAI,KAAKG,GAAMC,GAAOC,CAAG;AAEtC,MAAIkC,GAAS;AACX,UAAME,IAAS,IAAI,KAAKF,EAAQ,YAAA,GAAeA,EAAQ,SAAA,GAAYA,EAAQ,SAAS;AACpF,QAAIvC,IAAOyC,EAAQ,QAAO;AAAA,EAC5B;AAEA,MAAID,GAAS;AACX,UAAME,IAAS,IAAI,KAAKF,EAAQ,YAAA,GAAeA,EAAQ,SAAA,GAAYA,EAAQ,SAAS;AACpF,QAAIxC,IAAO0C,EAAQ,QAAO;AAAA,EAC5B;AAEA,SAAO;AACT,GAKaC,KAAkB,CAC7BxC,GACAC,GACAmC,GACAC,MACY;AACZ,MAAID,GAAS;AACX,UAAMK,IAAUL,EAAQ,YAAA,GAClBM,IAAWN,EAAQ,SAAA;AACzB,QAAIpC,IAAOyC,KAAYzC,MAASyC,KAAWxC,IAAQyC,EAAW,QAAO;AAAA,EACvE;AAEA,MAAIL,GAAS;AACX,UAAMM,IAAUN,EAAQ,YAAA,GAClBO,IAAWP,EAAQ,SAAA;AACzB,QAAIrC,IAAO2C,KAAY3C,MAAS2C,KAAW1C,IAAQ2C,EAAW,QAAO;AAAA,EACvE;AAEA,SAAO;AACT,GAKaC,KAAiB,CAAC7C,GAAcoC,GAAgBC,MACvD,GAAAD,KAAWpC,IAAOoC,EAAQ,YAAA,KAC1BC,KAAWrC,IAAOqC,EAAQ,YAAA,IAOnBS,KAAoB,CAACC,GAAoBC,IAAgB,OAAiB;AACrF,QAAMC,IAAYF,IAAa,KAAK,MAAMC,IAAQ,CAAC,GAC7CE,IAAkB,CAAA;AACxB,WAASzN,IAAI,GAAGA,IAAIuN,GAAOvN;AACzB,IAAAyN,EAAM,KAAKD,IAAYxN,CAAC;AAE1B,SAAOyN;AACT,GAKaC,KAA0B,CAACC,MAA4C;AAClF,UAAQA,GAAA;AAAA,IACN,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,EAAA;AAEb,GCvRapL,KAAkBnB,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAM3B,CAAC,EAAE,YAAAwM,EAAA,MAAkBA,IAAa,SAAS,aAAc;AAAA,GAGvDpL,KAAcpB,EAAOM,EAAU;AAAA;AAAA,GAI/Be,KAAgBrB,EAAOc,EAAY;AAAA;AAAA,GAInC2L,KAAgBzM,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAYxB,CAAC,EAAE,WAAA0M,EAAA,MAAiBA,IAAY,gBAAgB,SAAU;AAAA;AAAA;AAAA;AAAA;AAAA,YAK1D,CAAC,EAAE,OAAAC,EAAA,MAAYjE,GAAuBiE,CAAK,EAAE,MAAM;AAAA,aAClD,CAAC,EAAE,OAAAA,EAAA,MAAYjE,GAAuBiE,CAAK,EAAE,OAAO;AAAA,mBAC9C,CAAC,EAAE,OAAAA,EAAA,MAAYjE,GAAuBiE,CAAK,EAAE,MAAM;AAAA,WAC3D,CAAC,EAAE,UAAAC,GAAU,WAAAF,GAAW,WAAAG,QAC/BA,IACIlE,GAA0BiE,CAAQ,EAAE,MAAMF,IAAY,aAAa,QAAQ,IAC3E/D,GAA0BiE,CAAQ,EAAE,YAAYF,IAAY,aAAa,QAAQ,CAAC;AAAA;AAAA,MAEpF,CAAC,EAAE,UAAAE,GAAU,WAAAF,EAAA,MACb/D,GAA0BiE,CAAQ,EAAE,OAAOF,IAAY,aAAa,QAAQ,CAAC;AAAA,sBAC7D,CAAC,EAAE,UAAAE,GAAU,WAAAF,EAAA,MAC/B/D,GAA0BiE,CAAQ,EAAE,WAAWF,IAAY,aAAa,QAAQ,CAAC;AAAA;AAAA,IAEjF,CAAC,EAAE,OAAAhL,GAAO,UAAAkL,EAAA,MACVlL,KACA;AAAA,yBACqBiH,GAA0BiE,CAAQ,EAAE,KAAK;AAAA,GAC/D;AAAA,GAGUE,KAAoB9M,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAO3B+M,KAAoB/M,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAMzB,CAAC,EAAE,OAAA0B,EAAA,MAAaA,IAAQ,mBAAmB,cAAe;AAAA,GAGnEsL,KAAiB;AAAA;AAAA,sBAED7M,EAAO,KAAK;AAAA,sBACZe,EAAMf,EAAO,OAAO,EAAE,CAAC;AAAA;AAAA,2BAElBe,EAAMf,EAAO,OAAO,EAAE,CAAC;AAAA,aACrC2I,EAAgB;AAAA,GAGvBmE,KAAuB,CAACvL,GAAgBwL,MACvCxL,IAGE,kBAFEwL,MAAc,WAAW,qBAAqB,mBAK5CC,KAAiBnN,EAAO;AAAA;AAAA,IAEjC,CAAC,EAAE,WAAAkN,EAAA,MACHA,MAAc,WAAW,2BAA2B,2BAA2B;AAAA;AAAA,IAE/EF,EAAc;AAAA,aACL,CAAC,EAAE,OAAAtL,EAAA,MAAaA,IAAQ,IAAI,CAAE;AAAA,gBAC3B,CAAC,EAAE,OAAAA,EAAA,MAAaA,IAAQ,YAAY,QAAS;AAAA,eAC9C,CAAC,EAAE,OAAAA,GAAO,WAAAwL,EAAA,MAAgBD,GAAqBvL,GAAOwL,CAAS,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,GAOlEE,KAAuBpN,EAAO;AAAA;AAAA,IAEvCgN,EAAc;AAAA,aACL,CAAC,EAAE,OAAAtL,EAAA,MAAaA,IAAQ,IAAI,CAAE;AAAA,gBAC3B,CAAC,EAAE,OAAAA,EAAA,MAAaA,IAAQ,YAAY,QAAS;AAAA,eAC9C,CAAC,EAAE,OAAAA,GAAO,WAAAwL,EAAA,MAAgBD,GAAqBvL,GAAOwL,CAAS,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,GAOlEG,KAAuBrN,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAO9BsN,KAAsBtN,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAU/BG,EAAO,KAAK;AAAA;AAAA;AAAA;AAAA,wBAICe,EAAMf,EAAO,OAAO,CAAC,CAAC;AAAA;AAAA,GAIjCoN,KAAkBvN,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAS3BG,EAAO,KAAK;AAAA;AAAA;AAAA;AAAA,wBAICe,EAAMf,EAAO,OAAO,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAajCqN,KAAmBxN,EAAO;AAAA;AAAA;AAAA,GAK1ByN,KAAiBzN,EAAO;AAAA;AAAA,qCAEA4I,EAAkB;AAAA,SAC9CC,EAAY;AAAA;AAAA,GAIR6E,KAAgB1N,EAAO;AAAA;AAAA;AAAA;AAAA,YAIxB4I,EAAkB;AAAA;AAAA;AAAA,WAGnB1H,EAAMf,EAAO,OAAO,EAAE,CAAC;AAAA;AAAA,GAIrBwN,KAAiB3N,EAAO;AAAA;AAAA,qCAEA4I,EAAkB;AAAA,SAC9CC,EAAY;AAAA,GAGR+E,KAAgB5N,EAAO;AAAA;AAAA;AAAA;AAAA,WAQzB4I,EAAkB;AAAA,YACjBA,EAAkB;AAAA;AAAA;AAAA;AAAA,iBAIb,CAAC,EAAE,WAAAiF,GAAW,QAAAC,EAAA,MAAcD,KAAaC,IAAS,MAAM,GAAI;AAAA,YACjE,CAAC,EAAE,WAAApB,EAAA,MAAiBA,IAAY,gBAAgB,SAAU;AAAA,sBAChD,CAAC,EAAE,WAAAmB,EAAA,MAAiBA,IAAY1N,EAAO,QAAQ,aAAc;AAAA,WACxE,CAAC,EAAE,WAAA0N,GAAW,WAAAnB,EAAA,MACrBmB,IAAY1N,EAAO,QAAQuM,IAAYxL,EAAMf,EAAO,OAAO,EAAE,IAAIA,EAAO,KAAK;AAAA;AAAA,IAE7E,CAAC,EAAE,QAAA2N,GAAQ,WAAAD,QACXC,KACA,CAACD,KACD;AAAA,kCAC8B1N,EAAO,KAAK;AAAA,GAC3C;AAAA;AAAA;AAAA,wBAGqB,CAAC,EAAE,WAAA0N,QAAiBA,IAAY1N,EAAO,QAAQe,EAAMf,EAAO,OAAO,CAAC,CAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQjF4N,KAAmB/N,EAAO;AAAA;AAAA;AAAA;AAAA,WAI5B,IAAI4I,KAAqB,IAAIC,EAAY;AAAA,GAGvCmF,KAAkBhO,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAYrB,CAAC,EAAE,WAAA6N,GAAW,UAAAI,EAAA,MAAgBJ,KAAaI,IAAW,MAAM,GAAI;AAAA,YACrE,CAAC,EAAE,WAAAvB,EAAA,MAAiBA,IAAY,gBAAgB,SAAU;AAAA,sBAChD,CAAC,EAAE,WAAAmB,EAAA,MAAiBA,IAAY1N,EAAO,QAAQ,aAAc;AAAA,WACxE,CAAC,EAAE,WAAA0N,GAAW,WAAAnB,EAAA,MACrBmB,IAAY1N,EAAO,QAAQuM,IAAYxL,EAAMf,EAAO,OAAO,EAAE,IAAIA,EAAO,KAAK;AAAA;AAAA,IAE7E,CAAC,EAAE,UAAA8N,GAAU,WAAAJ,QACbI,KACA,CAACJ,KACD;AAAA,kCAC8B1N,EAAO,KAAK;AAAA,GAC3C;AAAA;AAAA;AAAA,wBAGqB,CAAC,EAAE,WAAA0N,QAAiBA,IAAY1N,EAAO,QAAQe,EAAMf,EAAO,OAAO,CAAC,CAAE;AAAA;AAAA,GAIjF+N,KAAkBlO,EAAO;AAAA;AAAA;AAAA;AAAA,WAI3B,IAAI4I,KAAqB,IAAIC,EAAY;AAAA,GAGvCsF,KAAiBnO,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAYpB,CAAC,EAAE,WAAA6N,GAAW,UAAAI,EAAA,MAAgBJ,KAAaI,IAAW,MAAM,GAAI;AAAA,YACrE,CAAC,EAAE,WAAAvB,EAAA,MAAiBA,IAAY,gBAAgB,SAAU;AAAA,sBAChD,CAAC,EAAE,WAAAmB,EAAA,MAAiBA,IAAY1N,EAAO,QAAQ,aAAc;AAAA,WACxE,CAAC,EAAE,WAAA0N,GAAW,WAAAnB,EAAA,MACrBmB,IAAY1N,EAAO,QAAQuM,IAAYxL,EAAMf,EAAO,OAAO,EAAE,IAAIA,EAAO,KAAK;AAAA;AAAA,IAE7E,CAAC,EAAE,UAAA8N,GAAU,WAAAJ,QACbI,KACA,CAACJ,KACD;AAAA,kCAC8B1N,EAAO,KAAK;AAAA,GAC3C;AAAA;AAAA;AAAA,wBAGqB,CAAC,EAAE,WAAA0N,QAAiBA,IAAY1N,EAAO,QAAQe,EAAMf,EAAO,OAAO,CAAC,CAAE;AAAA;AAAA,GAIjFiO,KAAkBpO,EAAO;AAAA,WAC3B4I,EAAkB;AAAA,YACjBA,EAAkB;AAAA,GCjRxBxI,IAAMC,EAAmB,aAAa,GAEtCwI,KAAe,GACfwF,KAAsB,KAOfC,KAAa,CAAC;AAAA,EACzB,OAAAxL;AAAA,EACA,UAAAC;AAAA,EACA,MAAAwJ,IAAO;AAAA,EACP,eAAAgC;AAAA,EACA,aAAAtE;AAAA,EACA,QAAAf,IAAS;AAAA,EACT,cAAAsB,IAAe;AAAA,EACf,SAAAe;AAAA,EACA,SAAAC;AAAA,EACA,MAAAtJ,IAAO;AAAA,EACP,SAAAzB,IAAU;AAAA,EACV,UAAAiC,IAAW;AAAA,EACX,WAAAC,IAAY;AAAA,EACZ,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,kBAAA2L;AAAA,EACA,MAAMC;AAAA,EACN,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAzP;AAAA,EACA,YAAAuD;AAAA,EACA,KAAAzD;AAAA,EACA,GAAG0B;AACL,MAAuB;AACrB,QAAMkO,IAAQ7I,GAAQ,0BAAU,KAAA,GAAQ,CAAA,CAAE,GACpC,CAAC8I,GAAcC,CAAe,IAAIxL,EAAS,EAAK,GAChD,CAACyL,GAAgBC,CAAiB,IAAI1L,EAAyB,EAAE,KAAK,GAAG,MAAM,GAAG,GAClF,CAAC2L,GAAUC,CAAW,IAAI5L,EAA6B,QAAQ,GAC/D,CAAC6L,GAAMC,CAAO,IAAI9L,EAAuB,MACzCiJ,MAAS,SAAe,UACxBA,MAAS,UAAgB,WACtB,MACR,GAEK,CAAC8C,GAAUC,CAAW,IAAIhM,EAAe,MAAMR,KAAS8L,CAAK,GAC7D,CAACW,GAAgBC,EAAiB,IAAIlM,EAAS,QACtCR,KAAA,gBAAAA,EAAO,kBAAiB8L,EAAM,YAAA,KAC7B,CACf,GAEK7K,KAAeC,EAAuB,IAAI,GAC1CyL,IAAazL,EAA0B,IAAI,GAC3C0L,IAAc1L,EAAuB,IAAI,GAEzC2L,IAAelB,MAAmB,QAClCmB,IAAOD,IAAelB,IAAiBI,GAEvC5F,KAASsF,KAAiBjC,GAAwBC,CAAI,GACtD1B,KAAW9E,GAAQ,MAAM6E,GAAgB1B,GAAQsB,CAAY,GAAG,CAACtB,GAAQsB,CAAY,CAAC,GACtFqF,KAAa9J,GAAQ,MAAMgF,GAAmB7B,CAAM,GAAG,CAACA,CAAM,CAAC,GAE/D4G,KAAe/J;AAAA,IACnB,MAAMwE,GAAqB8E,EAAS,YAAA,GAAeA,EAAS,SAAA,GAAY7E,CAAY;AAAA,IACpF,CAAC6E,GAAU7E,CAAY;AAAA,EAAA,GAGnBuF,KAAYhK,GAAQ,MAAMkG,GAAkBsD,IAAiB,GAAG,EAAE,GAAG,CAACA,CAAc,CAAC,GAErFS,KAAejK,GAAQ,MACtBjD,IACEiG,GAAajG,GAAOmG,IAAQC,CAAM,IADtB,MAElB,CAACpG,GAAOmG,IAAQC,CAAM,CAAC,GAEpB+G,KAAkBhG,KAAehB,GAAO,QAAQ,8BAA8B,IAAI,GAElFiH,KAAiB9L,EAAY,MAAM;;AACvC,QAAI,CAACqL,EAAW,QAAS;AAEzB,UAAMU,IAAcV,EAAW,QAAQ,sBAAA,GACjCW,MAAiBzJ,KAAA+I,EAAY,YAAZ,gBAAA/I,GAAqB,iBAAgB0H,IAEtDgC,KAAa,OAAO,cAAcF,EAAY,SAAStH,IACvDyH,KAAaH,EAAY,MAAMtH,IAE/B0H,KACJF,KAAaD,KAAkBE,KAAaD,KAAa,QAAQ;AAGnE,QAFAnB,EAAYqB,EAAW,GAEnB/B,GAAkB;AACpB,YAAMgC,KACJD,OAAgB,WACZJ,EAAY,SAAStH,KACrBsH,EAAY,MAAMC,IAAiBvH;AAEzC,MAAAmG,EAAkB;AAAA,QAChB,KAAAwB;AAAA,QACA,MAAML,EAAY;AAAA,MAAA,CACnB;AAAA,IACH;AAAA,EACF,GAAG,CAAC3B,CAAgB,CAAC,GAEfiC,KAAarM,EAAY,MAAM;AACnC,QAAI1B,EAAU;AAEd,IAAIiN,KAGFb,EAAgB,EAAI,GACpBJ,KAAA,QAAAA,KAKAU,EADE7C,MAAS,SACH,UACCA,MAAS,UACV,WAEA,MAJO;AAQjB,UAAMmE,IAAc5N,KAAS8L;AAC7B,IAAAU,EAAYoB,CAAW,GACvBlB,GAAkBkB,EAAY,YAAA,IAAgB,CAAC;AAAA,EACjD,GAAG,CAAChO,GAAUiN,GAAcjB,GAAQnC,GAAMzJ,GAAO8L,CAAK,CAAC,GAEjD+B,IAAcvM,EAAY,MAAM;AACpC,IAAIuL,KAGFb,EAAgB,EAAK,GACrBH,KAAA,QAAAA;AAAA,EAEJ,GAAG,CAACgB,GAAchB,CAAO,CAAC,GAEpBiC,KAAexM,EAAY,MAAM;AACrC,IAAIwL,IACFe,EAAA,IAEAF,GAAA;AAAA,EAEJ,GAAG,CAACb,GAAMe,GAAaF,EAAU,CAAC,GAE5BI,KAAkBzM;AAAA,IACtB,CAACiF,MAAgB;AACf,YAAMyH,IAAU,IAAI,KAAKzB,EAAS,eAAeA,EAAS,SAAA,GAAYhG,CAAG;AACzE,MAAAtG,KAAA,QAAAA,EAAW+N,IACXH,EAAA;AAAA,IACF;AAAA,IACA,CAACtB,GAAUtM,GAAU4N,CAAW;AAAA,EAAA,GAG5BI,KAAoB3M;AAAA,IACxB,CAACgF,MAAkB;AACjB,UAAImD,MAAS,SAAS;AACpB,cAAMuE,IAAU,IAAI,KAAKzB,EAAS,YAAA,GAAejG,GAAO,CAAC;AACzD,QAAArG,KAAA,QAAAA,EAAW+N,IACXH,EAAA;AAAA,MACF;AACE,QAAArB,EAAY,IAAI,KAAKD,EAAS,eAAejG,GAAO,CAAC,CAAC,GACtDgG,EAAQ,MAAM;AAAA,IAElB;AAAA,IACA,CAAC7C,GAAM8C,GAAUtM,GAAU4N,CAAW;AAAA,EAAA,GAGlCK,KAAmB5M;AAAA,IACvB,CAAC+E,MAAiB;AAChB,UAAIoD,MAAS,QAAQ;AACnB,cAAMuE,IAAU,IAAI,KAAK3H,GAAM,GAAG,CAAC;AACnC,QAAApG,KAAA,QAAAA,EAAW+N,IACXH,EAAA;AAAA,MACF,MAAA,CAAWpE,MAAS,WAClB+C,EAAY,IAAI,KAAKnG,GAAMkG,EAAS,SAAA,GAAY,CAAC,CAAC,GAClDD,EAAQ,QAAQ,MAEhBE,EAAY,IAAI,KAAKnG,GAAMkG,EAAS,SAAA,GAAY,CAAC,CAAC,GAClDD,EAAQ,QAAQ;AAAA,IAEpB;AAAA,IACA,CAAC7C,GAAM8C,GAAUtM,GAAU4N,CAAW;AAAA,EAAA,GAGlCM,KAAkB7M,EAAY,MAAM;AACxC,IAAAkL,EAAY,CAAC4B,MAAS,IAAI,KAAKA,EAAK,eAAeA,EAAK,SAAA,IAAa,GAAG,CAAC,CAAC;AAAA,EAC5E,GAAG,CAAA,CAAE,GAECC,KAAkB/M,EAAY,MAAM;AACxC,IAAAkL,EAAY,CAAC4B,MAAS,IAAI,KAAKA,EAAK,eAAeA,EAAK,SAAA,IAAa,GAAG,CAAC,CAAC;AAAA,EAC5E,GAAG,CAAA,CAAE,GAECE,KAAiBhN,EAAY,MAAM;AACvC,IAAAkL,EAAY,CAAC4B,MAAS,IAAI,KAAKA,EAAK,gBAAgB,GAAGA,EAAK,SAAA,GAAY,CAAC,CAAC;AAAA,EAC5E,GAAG,CAAA,CAAE,GAECG,KAAiBjN,EAAY,MAAM;AACvC,IAAAkL,EAAY,CAAC4B,MAAS,IAAI,KAAKA,EAAK,gBAAgB,GAAGA,EAAK,SAAA,GAAY,CAAC,CAAC;AAAA,EAC5E,GAAG,CAAA,CAAE,GAECI,KAAsBlN,EAAY,MAAM;AAC5C,IAAAoL,GAAkB,CAAC0B,MAASA,IAAO,EAAE;AAAA,EACvC,GAAG,CAAA,CAAE,GAECK,KAAsBnN,EAAY,MAAM;AAC5C,IAAAoL,GAAkB,CAAC0B,MAASA,IAAO,EAAE;AAAA,EACvC,GAAG,CAAA,CAAE,GAECM,KAAmBpN,EAAY,MAAM;AACzC,IAAI+K,MAAS,SACXC,EAAQ,QAAQ,IACPD,MAAS,YAClBC,EAAQ,OAAO;AAAA,EAEnB,GAAG,CAACD,CAAI,CAAC;AAET,EAAAsC,GAAgB,MAAM;AACpB,IAAI7B,KACFM,GAAA;AAAA,EAEJ,GAAG,CAACN,GAAMM,EAAc,CAAC,GAEzBhM,GAAU,MAAM;AACd,UAAMwN,IAAqB,CAACC,OAAsB;AAChD,YAAMC,KAASD,GAAM,QACfE,KAAqB9N,GAAa,WAAW,CAACA,GAAa,QAAQ,SAAS6N,EAAM,GAClFE,KAAoBpC,EAAY,WAAW,CAACA,EAAY,QAAQ,SAASkC,EAAM;AAErF,MAAIpD,IACEqD,MAAsBC,MACxBnB,EAAA,IAGEkB,MACFlB,EAAA;AAAA,IAGN,GAEMoB,IAAe,CAACJ,OAAyB;AAC7C,MAAIA,GAAM,QAAQ,YAChBhB,EAAA;AAAA,IAEJ,GAEMqB,KAAe,MAAM;AACzB,MAAIpC,KAAQpB,KACV0B,GAAA;AAAA,IAEJ,GAEM+B,KAAe,MAAM;AACzB,MAAIrC,KAAQpB,KACV0B,GAAA;AAAA,IAEJ;AAEA,WAAIN,MACF,SAAS,iBAAiB,aAAa8B,CAAkB,GACzD,SAAS,iBAAiB,WAAWK,CAAY,GAE7CvD,MACF,OAAO,iBAAiB,UAAUwD,IAAc,EAAI,GACpD,OAAO,iBAAiB,UAAUC,EAAY,KAI3C,MAAM;AACX,eAAS,oBAAoB,aAAaP,CAAkB,GAC5D,SAAS,oBAAoB,WAAWK,CAAY,GACpD,OAAO,oBAAoB,UAAUC,IAAc,EAAI,GACvD,OAAO,oBAAoB,UAAUC,EAAY;AAAA,IACnD;AAAA,EACF,GAAG,CAACrC,GAAMe,GAAanC,GAAkB0B,EAAc,CAAC;AAExD,QAAMgC,KAAWxJ,GAAuBxG,CAAI,EAAE,UAExCiQ,KAAiB,MACrB,gBAAAxR,EAAAyR,IAAA,EACE,UAAA;AAAA,IAAA,gBAAAzR,EAAC0M,MAAqB,WAAWjN,EAAI,UAAUqC,KAAA,gBAAAA,EAAY,MAAM,GAC/D,UAAA;AAAA,MAAA,gBAAA1B,EAACuM,MAAoB,SAASkE,IAAkB,MAAK,UAClD,UAAA,IAAI,KAAK,eAAetI,GAAQ,EAAE,OAAO,QAAQ,MAAM,UAAA,CAAW,EAAE,OAAOmG,CAAQ,GACtF;AAAA,wBACC7B,IAAA,EACC,UAAA;AAAA,QAAA,gBAAAzM,EAACwM,IAAA,EAAgB,SAAS0D,IAAiB,MAAK,UAAS,cAAW,kBAClE,UAAA,gBAAAlQ,EAACsR,IAAA,EAAY,MAAM,GAAA,CAAI,GACzB;AAAA,QACA,gBAAAtR,EAACwM,IAAA,EAAgB,SAAS4D,IAAiB,MAAK,UAAS,cAAW,cAClE,UAAA,gBAAApQ,EAACuR,IAAA,EAAa,MAAM,GAAA,CAAI,EAAA,CAC1B;AAAA,MAAA,EAAA,CACF;AAAA,IAAA,GACF;AAAA,IACA,gBAAAvR,EAAC0M,IAAA,EACE,UAAA5C,GAAS,IAAI,CAACxB,GAAKzK,MAClB,gBAAAmC,EAAC2M,IAAA,EAAuB,UAAArE,EAAA,GAAJzK,CAAQ,CAC7B,GACH;AAAA,IACA,gBAAAmC,EAAC4M,MAAe,WAAWvN,EAAI,QAAQqC,KAAA,gBAAAA,EAAY,IAAI,GACpD,UAAAqN,GAAa;AAAA,MAAI,CAACzG,GAAKzK,MACtByK,MAAQ,OACN,gBAAAtI,EAACqN,IAAA,CAAA,GAAqBxP,CAAG,IAEzB,gBAAAmC;AAAA,QAAC6M;AAAA,QAAA;AAAA,UAEC,MAAK;AAAA,UACL,WAAWxN,EAAI,QAAQqC,KAAA,gBAAAA,EAAY,IAAI;AAAA,UACvC,WACEK,IACImI,GAAUnI,GAAO,IAAI,KAAKuM,EAAS,YAAA,GAAeA,EAAS,SAAA,GAAYhG,CAAG,CAAC,IAC3E;AAAA,UAEN,QAAQ4B,GAAU2D,GAAO,IAAI,KAAKS,EAAS,YAAA,GAAeA,EAAS,SAAA,GAAYhG,CAAG,CAAC;AAAA,UACnF,WAAWiC;AAAA,YACT+D,EAAS,YAAA;AAAA,YACTA,EAAS,SAAA;AAAA,YACThG;AAAA,YACAkC;AAAA,YACAC;AAAA,UAAA;AAAA,UAEF,UAAUF;AAAA,YACR+D,EAAS,YAAA;AAAA,YACTA,EAAS,SAAA;AAAA,YACThG;AAAA,YACAkC;AAAA,YACAC;AAAA,UAAA;AAAA,UAEF,SAAS,MAAMqF,GAAgBxH,CAAG;AAAA,UAEjC,UAAAA;AAAA,QAAA;AAAA,QAzBIzK;AAAA,MAAA;AAAA,IA0BP,EAEJ,CACF;AAAA,EAAA,GACF,GAGI2T,KAAmB,MACvB,gBAAA5R,EAAAyR,IAAA,EACE,UAAA;AAAA,IAAA,gBAAAzR,EAAC0M,MAAqB,WAAWjN,EAAI,UAAUqC,KAAA,gBAAAA,EAAY,MAAM,GAC/D,UAAA;AAAA,MAAA,gBAAA1B,EAACuM,MAAoB,SAASkE,IAAkB,MAAK,UAClD,UAAAnC,EAAS,eACZ;AAAA,wBACC7B,IAAA,EACC,UAAA;AAAA,QAAA,gBAAAzM,EAACwM,IAAA,EAAgB,SAAS6D,IAAgB,MAAK,UAAS,cAAW,iBACjE,UAAA,gBAAArQ,EAACsR,IAAA,EAAY,MAAM,GAAA,CAAI,GACzB;AAAA,QACA,gBAAAtR,EAACwM,IAAA,EAAgB,SAAS8D,IAAgB,MAAK,UAAS,cAAW,aACjE,UAAA,gBAAAtQ,EAACuR,IAAA,EAAa,MAAM,GAAA,CAAI,EAAA,CAC1B;AAAA,MAAA,EAAA,CACF;AAAA,IAAA,GACF;AAAA,IACA,gBAAAvR,EAACgN,IAAA,EAAiB,WAAW3N,EAAI,QAAQqC,KAAA,gBAAAA,EAAY,IAAI,GACtD,UAAAoN,GAAW,IAAI,CAACzG,GAAOxK,MACtB,gBAAAmC;AAAA,MAACiN;AAAA,MAAA;AAAA,QAEC,MAAK;AAAA,QACL,WAAW5N,EAAI,QAAQqC,KAAA,gBAAAA,EAAY,IAAI;AAAA,QACvC,WAAWK,IAAQsI,GAAYtI,GAAO,IAAI,KAAKuM,EAAS,eAAezQ,GAAG,CAAC,CAAC,IAAI;AAAA,QAChF,UAAUwM,GAAYwD,GAAO,IAAI,KAAKS,EAAS,YAAA,GAAezQ,GAAG,CAAC,CAAC;AAAA,QACnE,WAAW+M,GAAgB0D,EAAS,eAAezQ,GAAG2M,GAASC,CAAO;AAAA,QACtE,UAAUG,GAAgB0D,EAAS,eAAezQ,GAAG2M,GAASC,CAAO;AAAA,QACrE,SAAS,MAAMuF,GAAkBnS,CAAC;AAAA,QAEjC,UAAAwK;AAAA,MAAA;AAAA,MATIxK;AAAA,IAAA,CAWR,EAAA,CACH;AAAA,EAAA,GACF,GAGI4T,KAAkB,MACtB,gBAAA7R,EAAAyR,IAAA,EACE,UAAA;AAAA,IAAA,gBAAAzR,EAAC0M,MAAqB,WAAWjN,EAAI,UAAUqC,KAAA,gBAAAA,EAAY,MAAM,GAC/D,UAAA;AAAA,MAAA,gBAAA9B,EAAC2M,MAAoB,MAAK,UAAS,OAAO,EAAE,QAAQ,aACjD,UAAA;AAAA,QAAAyC,GAAU,CAAC;AAAA,QAAE;AAAA,QAAIA,GAAUA,GAAU,SAAS,CAAC;AAAA,MAAA,GAClD;AAAA,wBACCvC,IAAA,EACC,UAAA;AAAA,QAAA,gBAAAzM,EAACwM,IAAA,EAAgB,SAAS+D,IAAqB,MAAK,UAAS,cAAW,kBACtE,UAAA,gBAAAvQ,EAACsR,IAAA,EAAY,MAAM,GAAA,CAAI,GACzB;AAAA,QACA,gBAAAtR,EAACwM,IAAA,EAAgB,SAASgE,IAAqB,MAAK,UAAS,cAAW,cACtE,UAAA,gBAAAxQ,EAACuR,IAAA,EAAa,MAAM,GAAA,CAAI,EAAA,CAC1B;AAAA,MAAA,EAAA,CACF;AAAA,IAAA,GACF;AAAA,IACA,gBAAAvR,EAACmN,IAAA,EAAgB,WAAW9N,EAAI,QAAQqC,KAAA,gBAAAA,EAAY,IAAI,GACrD,UAAAsN,GAAU,IAAI,CAAC5G,MACd,gBAAApI;AAAA,MAACoN;AAAA,MAAA;AAAA,QAEC,MAAK;AAAA,QACL,WAAW/N,EAAI,QAAQqC,KAAA,gBAAAA,EAAY,IAAI;AAAA,QACvC,WAAWK,IAAQuI,GAAWvI,GAAO,IAAI,KAAKqG,GAAM,GAAG,CAAC,CAAC,IAAI;AAAA,QAC7D,UAAUyF,EAAM,YAAA,MAAkBzF;AAAA,QAClC,WAAW6C,GAAe7C,GAAMoC,GAASC,CAAO;AAAA,QAChD,UAAUQ,GAAe7C,GAAMoC,GAASC,CAAO;AAAA,QAC/C,SAAS,MAAMwF,GAAiB7H,CAAI;AAAA,QAEnC,UAAAA;AAAA,MAAA;AAAA,MATIA;AAAA,IAAA,CAWR,EAAA,CACH;AAAA,EAAA,GACF,GAGIsJ,KAAwB,MAAM;AAClC,YAAQtD,GAAA;AAAA,MACN,KAAK;AACH,eAAOgD,GAAA;AAAA,MACT,KAAK;AACH,eAAOI,GAAA;AAAA,MACT,KAAK;AACH,eAAOC,GAAA;AAAA,IAAgB;AAAA,EAE7B,GAEME,KAAWlE,IACfmE;AAAA,IACE,gBAAA5R;AAAA,MAACqM;AAAA,MAAA;AAAA,QACC,KAAKsC;AAAA,QACL,OAAOE;AAAA,QACP,WAAWX;AAAA,QACX,WAAW7O,EAAI,YAAYqC,KAAA,gBAAAA,EAAY,QAAQ;AAAA,QAC/C,OAAO,EAAE,KAAKsM,EAAe,KAAK,MAAMA,EAAe,KAAA;AAAA,QAEtD,UAAA0D,GAAA;AAAA,MAAsB;AAAA,IAAA;AAAA,IAEzBjE;AAAA,EAAA,IAGF,gBAAAzN;AAAA,IAACoM;AAAA,IAAA;AAAA,MACC,KAAKuC;AAAA,MACL,OAAOE;AAAA,MACP,WAAWX;AAAA,MACX,WAAW7O,EAAI,YAAYqC,KAAA,gBAAAA,EAAY,QAAQ;AAAA,MAE9C,UAAAgQ,GAAA;AAAA,IAAsB;AAAA,EAAA;AAI3B,SACE,gBAAA9R;AAAA,IAACQ;AAAAA,IAAA;AAAA,MACE,GAAGT;AAAA,MACJ,KAAK1B,KAAO+E;AAAA,MACZ,YAAYpB;AAAA,MACZ,WAAWvC,EAAI,aAAalB,CAAS;AAAA,MAEpC,UAAA;AAAA,QAAA0D,KAAS,gBAAA7B,EAACK,IAAA,EAAY,SAAAX,GAAmB,UAAAmC,GAAM;AAAA,QAChD,gBAAAjC;AAAA,UAAC8L;AAAAA,UAAA;AAAA,YACC,KAAKgD;AAAA,YACL,MAAK;AAAA,YACL,SAASmB;AAAA,YACT,UAAAlO;AAAA,YACA,OAAOR;AAAA,YACP,UAAUzB;AAAA,YACV,WAAWiC;AAAA,YACX,OAAOkN;AAAA,YACP,WAAW,CAAC,CAACI;AAAA,YACb,WAAW5P,EAAI,WAAWqC,KAAA,gBAAAA,EAAY,OAAO;AAAA,YAE7C,UAAA;AAAA,cAAA,gBAAA1B,EAAC+L,IAAA,EAAmB,gBAAgBmD,GAAA,CAAgB;AAAA,cACpD,gBAAAlP,EAACgM,MAAkB,OAAO6C,GACxB,4BAACgD,IAAA,EAAY,MAAMV,IAAU,EAAA,CAC/B;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAEDQ;AAAA,QACA7P,KAAW,gBAAA9B,EAACM,IAAA,EAAc,SAAAZ,GAAmB,UAAAoC,EAAA,CAAQ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG5D,GC9fagQ,KAQT;AAAA,EACF,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,YAAY;AAAA,EAAA;AAAA,EAEd,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,YAAY;AAAA,EAAA;AAEhB,GAEaC,KAST;AAAA,EACF,QAAQ;AAAA,IACN,YAAY;AAAA,MACV,QAAQ5R,EAAMf,EAAO,OAAU,CAAC;AAAA,MAChC,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,QAAQ;AAAA,MACN,QAAQe,EAAMf,EAAO,OAAU,EAAE;AAAA,MACjC,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,OAAO;AAAA,MACL,QAAQA,EAAO;AAAA,MACf,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,aAAa;AAAA,MACX,QAAQe,EAAMf,EAAO,OAAU,EAAE;AAAA,MACjC,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,OAAOe,EAAMf,EAAO,WAAW,GAAG,EAAE;AAAA,EAAA;AAAA,EAEtC,OAAO;AAAA,IACL,YAAY;AAAA,MACV,QAAQe,EAAMf,EAAO,KAAQ,CAAC;AAAA,MAC9B,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,QAAQ;AAAA,MACN,QAAQe,EAAMf,EAAO,KAAQ,EAAE;AAAA,MAC/B,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,OAAO;AAAA,MACL,QAAQA,EAAO;AAAA,MACf,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,aAAa;AAAA,MACX,QAAQe,EAAMf,EAAO,KAAQ,EAAE;AAAA,MAC/B,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,OAAOe,EAAMf,EAAO,KAAQ,EAAE;AAAA,EAAA;AAElC,GCtEa4S,KAAuB,CAACtS,MAC5BqS,GAAoBrS,CAAO,KAAKqS,GAAoB,QAGhDE,KAAoB,CAAC9Q,MACzB2Q,GAAiB3Q,CAAI,KAAK2Q,GAAiB,SCKvCI,KAAuBjT,EAAO;AAAA;AAAA;AAAA;AAAA,WAIhC,CAACjB,MAAWA,EAAM,aAAa,SAAS,aAAc;AAAA,GAGpDqC,KAAcpB,EAAOM,EAAU;AAAA;AAAA,GAI/Be,KAAgBrB,EAAOc,EAAY;AAAA;AAAA,GAInCQ,KAAqBtB,EAAO;AAAA;AAAA;AAAA;AAAA,MAQnC,CAACjB,MACDgU,GAAqBhU,EAAM,QAAQ,EAAE,OAAOA,EAAM,YAAY,aAAa,QAAQ,CAAC;AAAA,mBACvE,CAACA,MAAUiU,GAAkBjU,EAAM,KAAK,EAAE,MAAM;AAAA;AAAA,GAItDmU,KAAelT,EAAO;AAAA;AAAA;AAAA;AAAA,aAQtB,CAACjB,MAAUiU,GAAkBjU,EAAM,KAAK,EAAE,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,YAKlD,CAACA,MAAWA,EAAM,YAAY,gBAAgB,SAAU;AAAA,WACzD,CAACA,MACRgU,GAAqBhU,EAAM,QAAQ,EAAE,MAAMA,EAAM,YAAY,aAAa,QAAQ,CAAC;AAAA,sBACjE,CAACA,MACnBA,EAAM,aAAa,UAAUmC,EAAMf,EAAO,KAAK,CAAC,IAAIe,EAAMf,EAAO,OAAO,CAAC,CAAC;AAAA;AAAA,MAExE,CAACpB,MACDgU,GAAqBhU,EAAM,QAAQ,EAAE,OAAOA,EAAM,YAAY,aAAa,QAAQ,CAAC;AAAA,GAG7EwC,KAAcvB,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAMtB,CAACjB,MAAUiU,GAAkBjU,EAAM,KAAK,EAAE,MAAM;AAAA,aAC/C,CAACA,MAAUiU,GAAkBjU,EAAM,KAAK,EAAE,OAAO;AAAA,mBAC3C,CAACA,MAAWA,EAAM,aAAa,MAAMiU,GAAkBjU,EAAM,KAAK,EAAE,MAAO;AAAA;AAAA,WAEnF,CAACA,MAAUgU,GAAqBhU,EAAM,QAAQ,EAAE,MAAM,MAAM;AAAA,YAC3D,CAACA,MACTA,EAAM,aAAa,SAAS,aAAagU,GAAqBhU,EAAM,QAAQ,EAAE,OAAO,MAAM,EAAE;AAAA,sBAC3E,CAACA,MAAUgU,GAAqBhU,EAAM,QAAQ,EAAE,WAAW,MAAM;AAAA;AAAA;AAAA,aAG1E,CAACA,MAAUgU,GAAqBhU,EAAM,QAAQ,EAAE,YAAY,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,aAKlE,CAACA,MAAUgU,GAAqBhU,EAAM,QAAQ,EAAE,MAAM,QAAQ;AAAA,wBACnD,CAACA,MAAUgU,GAAqBhU,EAAM,QAAQ,EAAE,WAAW,QAAQ;AAAA,oBACvE,CAACA,MACfA,EAAM,aAAa,gBAAgBgU,GAAqBhU,EAAM,QAAQ,EAAE,OAAO,QAAQ;AAAA;AAAA;AAAA,eAG9E,CAACA,MAAUgU,GAAqBhU,EAAM,QAAQ,EAAE,YAAY,QAAQ;AAAA;AAAA;AAAA,GClF7EqB,KAAMC,EAAmB,OAAO,GACzB8S,KAAQ,CAAC;AAAA,EACpB,WAAAjU;AAAA,EACA,YAAAuD;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,KAAA5D;AAAA,EACA,SAAA6D;AAAA,EACA,QAAAuQ;AAAA,EACA,MAAAlR,IAAO;AAAA,EACP,SAAAzB,IAAU;AAAA,EACV,GAAGC;AACL,MAAkB;AAChB,QAAM2S,IAAoCD,KAAW,MAE/CE,IACJ,gBAAAvS;AAAA,IAACQ;AAAAA,IAAA;AAAA,MACE,GAAGb;AAAA,MACJ,KAAA1B;AAAA,MACA,UAAA0D;AAAA,MACA,OAAOR;AAAA,MACP,UAAUzB;AAAA,MACV,YAAY4S;AAAA,MACZ,WAAWjT,GAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK;AAAA,IAAA;AAAA,EAAA;AAI7C,SACE,gBAAA9B,EAACsS,IAAA,EAAqB,WAAW7S,GAAI,aAAalB,CAAS,GAAG,YAAY,EAAQyD,GAChF,UAAA;AAAA,IAAA,gBAAA5B,EAACK,IAAA,EAAY,SAAAX,GAAkB,WAAWL,GAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK,GACrE,UAAAG,EAAA,CACH;AAAA,IACCyQ,IACC,gBAAA1S,EAACW,IAAA,EAAmB,OAAOY,GAAM,UAAUzB,GAAS,WAAW,EAAQiC,GACrE,UAAA;AAAA,MAAA,gBAAA3B;AAAA,QAACmS;AAAA,QAAA;AAAA,UACC,OAAOhR;AAAA,UACP,UAAUzB;AAAA,UACV,WAAW,EAAQiC;AAAA,UACnB,WAAWtC,GAAI,QAAQ;AAAA,UAEtB,UAAAgT;AAAA,QAAA;AAAA,MAAA;AAAA,MAEFE;AAAA,IAAA,EAAA,CACH,IAEAA;AAAA,IAEDzQ,KAAW,gBAAA9B,EAACM,IAAA,EAAc,SAAAZ,GAAmB,UAAAoC,EAAA,CAAQ;AAAA,EAAA,GACxD;AAEJ,GCjDa0Q,KAAgBvT,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAOdkB,EAAMf,EAAO,OAAU,EAAE,CAAC;AAAA,eACjCoF,GAAU,MAAM,IAAI,CAACxG,MAAWA,EAAM,YAAY,UAAU,IAAK;AAAA,GAGnEyI,KAAgBxH,EAAO;AAAA;AAAA;AAAA,WAGzB,CAACjB,MAAUA,EAAM,MAAM;AAAA;AAAA;AAAA;AAAA,sBAIZoB,EAAO,KAAQ;AAAA;AAAA,2BAEVe,EAAMf,EAAO,OAAU,EAAE,CAAC;AAAA,eACtCoF,GAAU,OAAO,IAAI,CAACxG,MAAWA,EAAM,YAAY,UAAU,IAAK;AAAA,GC5B3EqB,KAAMC,EAAmB,OAAO,GAEzBmT,KAAQ,CAAC;AAAA,EACpB,UAAAC;AAAA,EACA,UAAAlT;AAAA,EACA,WAAArB;AAAA,EACA,YAAAuD;AAAA,EACA,MAAAmN;AAAA,EACA,KAAA5Q;AAAA,EACA,OAAA0U,IAAQ;AAAA,EACR,GAAGhT;AACL,MACOkP,IAIE+C;AAAA,EACL,gBAAA5R,EAACwS,IAAA,EAAc,WAAWnT,GAAI,WAAWqC,KAAA,gBAAAA,EAAY,OAAO,GAAG,WAAW,EAAQgR,GAChF,UAAA,gBAAA1S;AAAA,IAACyG;AAAAA,IAAA;AAAA,MACE,GAAG9G;AAAA,MACJ,KAAA1B;AAAA,MACA,WAAWoB,GAAI,WAAWlB,GAAWuD,KAAA,gBAAAA,EAAY,OAAO;AAAA,MACxD,WAAW,EAAQgR;AAAA,MACnB,QAAQC;AAAA,MAEP,UAAAnT;AAAA,IAAA;AAAA,EAAA,GAEL;AAAA,EACA,SAAS;AAAA,IAfF,MCXEU,KAA0D;AAAA,EACrE,QAAQ;AAAA,IACN,QAAQd,EAAO,WAAW;AAAA,IAC1B,aAAaA,EAAO,WAAW;AAAA,EAAA;AAAA,EAEjC,OAAO;AAAA,IACL,QAAQA,EAAO;AAAA,IACf,aAAae,EAAMf,EAAO,KAAK,EAAE;AAAA,EAAA;AAErC,GCTagB,KAAkBnB,EAAO;AAAA;AAAA;AAAA;AAAA,GAMzBoB,KAAcpB,EAAOM,EAAU;AAAA;AAAA,GAI/BmM,KAAgBzM,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAOb,CAACjB,MAAUkC,GAAclC,EAAM,QAAQ,EAAE,MAAM;AAAA;AAAA,gBAEtDoB,EAAO,KAAK;AAAA,YAChB,CAACpB,MAAWA,EAAM,YAAY,gBAAgB,SAAU;AAAA,aACvD,CAACA,MAAWA,EAAM,YAAY,MAAM,CAAE;AAAA;AAAA;AAAA;AAAA;AAAA,oBAK/B,CAACA,MACfA,EAAM,YAAY,SAAYA,EAAM,aAAa,UAAUoB,EAAO,MAAMA,EAAO,KAAK;AAAA;AAAA,GAI7EwT,KAAoB3T,EAAO;AAAA,WAC7B,CAACjB,MAAUkC,GAAclC,EAAM,QAAQ,EAAE,WAAW;AAAA;AAAA,GAIlD6U,KAAqB5T,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAO5B6T,KAAoB7T,EAAO;AAAA;AAAA;AAAA;AAAA,GAM3B8T,KAAmB9T,EAAO;AAAA;AAAA;AAAA;AAAA,WAI5BG,EAAO,KAAK;AAAA,GAGV4T,KAAoB/T,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAS3BgU,KAAehU,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAMvB,CAACjB,MAAWA,EAAM,YAAY,gBAAgB,SAAU;AAAA,aACvD,CAACA,MAAWA,EAAM,YAAY,MAAM,CAAE;AAAA;AAAA;AAAA;AAAA,wBAI3B,CAACA,MAAWA,EAAM,YAAY,gBAAgBoB,EAAO,IAAK;AAAA;AAAA,GAIrE8T,KAAoBjU,EAAO;AAAA;AAAA,WAE7BG,EAAO,KAAK;AAAA,GAGV2B,KAAc9B,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,WAKvBG,EAAO,WAAW,CAAC;AAAA;AAAA;AAAA,GAKjBkB,KAAgBrB,EAAOc,EAAY;AAAA;AAAA,GC9E1CV,IAAMC,EAAmB,cAAc,GAEhC6T,KAAc,CAAC;AAAA,EAC1B,WAAAhV;AAAA,EACA,YAAAuD;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,cAAAyR,IAAe;AAAA,EACf,OAAAvR;AAAA,EACA,YAAAwR,IAAa;AAAA,EACb,SAAAvR;AAAA,EACA,YAAAwR,IAAa;AAAA,EACb,UAAAtR;AAAA,EACA,SAAA1F;AAAA,EACA,aAAA4M,IAAc;AAAA,EACd,KAAAjL;AAAA,EACA,mBAAAsV,IAAoB;AAAA,EACpB,OAAAxR;AAAA,EACA,SAAArC,IAAU;AAAA,EACV,GAAGC;AACL,MAAwB;AACtB,QAAM,CAACiD,GAAQC,CAAS,IAAIN,EAAS,EAAK,GACpC,CAACiR,GAAQC,CAAS,IAAIlR,EAAS,EAAE,GACjCmR,IAAkBzQ,EAAuB,IAAI,GAE7C0Q,IAAkB3O,GAAQ,MACvB1I,EAAQ,OAAO,CAACsX,MAAQ7R,EAAM,SAAS6R,EAAI,KAAK,CAAC,GACvD,CAACtX,GAASyF,CAAK,CAAC,GAEb8R,IAAkB7O,GAAQ,MAAM;AACpC,QAAI,CAACwO,EAAO,KAAA,EAAQ,QAAOlX;AAC3B,UAAMgH,IAAQkQ,EAAO,YAAA,EAAc,KAAA;AACnC,WAAOlX,EAAQ,OAAO,CAACsX,MAAQA,EAAI,MAAM,YAAA,EAAc,SAAStQ,CAAK,CAAC;AAAA,EACxE,GAAG,CAAChH,GAASkX,CAAM,CAAC,GAEdM,IACJT,MAAe,QAAWM,IAAkBA,EAAgB,MAAM,GAAGN,CAAU,GAC3EU,IAAcJ,EAAgB,SAASG,EAAa,QAEpDpE,IAAa,MAAM;AACvB,IAAK/N,MACHkB,EAAU,EAAI,GACd4Q,EAAU,EAAE;AAAA,EAEhB,GAEM7D,IAAcvM,EAAY,MAAM;AACpC,IAAAR,EAAU,EAAK,GACf4Q,EAAU,EAAE;AAAA,EACd,GAAG,CAAA,CAAE,GAEC5D,IAAe,CAAC5I,MAAwB;AAC5C,IAAIlF,EAAM,SAASkF,CAAW,IAC5BjF,EAASD,EAAM,OAAO,CAACmF,MAAMA,MAAMD,CAAW,CAAC,IAE/CjF,EAAS,CAAC,GAAGD,GAAOkF,CAAW,CAAC;AAAA,EAEpC,GAEM+M,IAAe,CAAC/M,MAAwB;AAC5C,IAAAjF,EAASD,EAAM,OAAO,CAACmF,MAAMA,MAAMD,CAAW,CAAC;AAAA,EACjD;AAEA,SAAA9D,GAAU,MAAM;AACd,QAAI,CAACP,EAAQ;AAEb,UAAM+N,IAAqB,CAAClV,MAAkB;AAC5C,MAAIiY,EAAgB,WAAW,CAACA,EAAgB,QAAQ,SAASjY,EAAE,MAAc,KAC/EmU,EAAA;AAAA,IAEJ;AAEA,oBAAS,iBAAiB,aAAae,CAAkB,GAElD,MAAM;AACX,eAAS,oBAAoB,aAAaA,CAAkB;AAAA,IAC9D;AAAA,EACF,GAAG,CAAC/N,GAAQgN,CAAW,CAAC,GAGtB,gBAAAhQ,EAACQ,MAAiB,GAAGT,GAAM,KAAA1B,GAAU,WAAWoB,EAAI,aAAalB,CAAS,GACvE,UAAA;AAAA,IAAA0D,KACC,gBAAA7B,EAACK,MAAY,SAAAX,GAAkB,WAAWL,EAAI,SAASqC,KAAA,gBAAAA,EAAY,OAAO,GACvE,UAAAG,EAAA,CACH;AAAA,IAEF,gBAAA7B;AAAA,MAAC0L;AAAAA,MAAA;AAAA,QACC,UAAUhM;AAAA,QACV,WAAWiC;AAAA,QACX,SAAS+N;AAAA,QACT,WAAWrQ,EAAI,WAAWqC,KAAA,gBAAAA,EAAY,OAAO;AAAA,QAE5C,UAAAiS,EAAgB,WAAW,IAC1B,gBAAA3T;AAAA,UAAC4S;AAAA,UAAA;AAAA,YACC,UAAUlT;AAAA,YACV,WAAWL,EAAI,eAAeqC,KAAA,gBAAAA,EAAY,WAAW;AAAA,YAEpD,UAAAwH;AAAA,UAAA;AAAA,QAAA,IAGH,gBAAAtJ,EAAAyR,IAAA,EACG,UAAA;AAAA,UAAAyC,EAAa,IAAI,CAACF,MACjB,gBAAA5T;AAAA,YAACuH;AAAA,YAAA;AAAA,cAEC,SAAS7H,MAAY,UAAU,QAAQ;AAAA,cACvC,WAAS;AAAA,cACT,UAAU,MAAMsU,EAAaJ,EAAI,KAAK;AAAA,cACtC,SAAS,CAACnY,MAAMA,EAAE,gBAAA;AAAA,cAClB,WAAW4D,EAAI,QAAQqC,KAAA,gBAAAA,EAAY,IAAI;AAAA,cAEtC,UAAAkS,EAAI;AAAA,YAAA;AAAA,YAPAA,EAAI;AAAA,UAAA,CASZ;AAAA,UACAG,IAAc,KACb,gBAAAnU;AAAA,YAAC2H;AAAA,YAAA;AAAA,cACC,SAAS7H,MAAY,UAAU,QAAQ;AAAA,cACvC,SAAS,CAACjE,MAAMA,EAAE,gBAAA;AAAA,cAClB,WAAW4D,EAAI,QAAQqC,KAAA,gBAAAA,EAAY,IAAI;AAAA,cACxC,UAAA;AAAA,gBAAA;AAAA,gBACGqS;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QACJ,EAAA,CAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,IAGHjS,uBACExB,IAAA,EAAc,SAAAZ,GAAkB,WAAWL,EAAI,SAAS,GACtD,UAAAyC,GACH;AAAA,sBAGD2Q,IAAA,EAAM,MAAM7P,GAAQ,OAAM,SAAQ,UAAQ,IAAC,WAAWvD,EAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK,GACnF,UAAA,gBAAA9B,EAACiT,IAAA,EAAmB,KAAKa,GACvB,UAAA;AAAA,MAAA,gBAAA9T,EAACkT,IAAA,EACC,UAAA;AAAA,QAAA,gBAAA9S,EAAC+S,MAAkB,UAAAO,EAAA,CAAW;AAAA,QAC9B,gBAAAtT;AAAA,UAACmF;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,wBAAOuC,IAAA,EAAE;AAAA,YACT,aAAa,CAAC,QAAQ;AAAA,YACtB,SAASkI;AAAA,UAAA;AAAA,QAAA;AAAA,MACX,GACF;AAAA,MAEA,gBAAA5P;AAAA,QAACoS;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,OAAOoB;AAAA,UACP,UAAU,CAAC/X,MAAMgY,EAAUhY,EAAE,OAAO,KAAK;AAAA,UACzC,aAAa8X;AAAA,UACb,WAAS;AAAA,UACT,WAAS;AAAA,UACT,WAAWlU,EAAI,UAAUqC,KAAA,gBAAAA,EAAY,MAAM;AAAA,QAAA;AAAA,MAAA;AAAA,MAG7C,gBAAA1B,EAACgT,IAAA,EAAkB,WAAW3T,EAAI,WAAWqC,KAAA,gBAAAA,EAAY,OAAO,GAC7D,UAAAmS,EAAgB,WAAW,IAC1B,gBAAA7T,EAACe,MAAY,WAAW1B,EAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK,GAAI,aAAa,IAEvEmS,EAAgB,IAAI,CAACD,MACnB,gBAAAhU;AAAA,QAACqT;AAAAA,QAAA;AAAA,UAEC,WAAW,EAAQW,EAAI;AAAA,UACvB,WAAWvU,EAAI,UAAUqC,KAAA,gBAAAA,EAAY,MAAM;AAAA,UAE3C,UAAA;AAAA,YAAA,gBAAA1B;AAAA,cAACiG;AAAA,cAAA;AAAA,gBACC,SAASlE,EAAM,SAAS6R,EAAI,KAAK;AAAA,gBACjC,UAAUA,EAAI;AAAA,gBACd,UAAU,MAAM/D,EAAa+D,EAAI,KAAK;AAAA,cAAA;AAAA,YAAA;AAAA,YAExC,gBAAA5T,EAACkT,IAAA,EAAmB,UAAAU,EAAI,MAAA,CAAM;AAAA,UAAA;AAAA,QAAA;AAAA,QATzBA,EAAI;AAAA,MAAA,CAWZ,EAAA,CAEL;AAAA,IAAA,EAAA,CACF,EAAA,CACF;AAAA,EAAA,GACF;AAEJ,GCvMaK,KAST;AAAA,EACF,SAAS;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,KAAK;AAAA,EAAA;AAAA,EAEP,SAAS;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,KAAK;AAAA,EAAA;AAET,GAEaC,KAQT;AAAA,EACF,QAAQ;AAAA,IACN,YAAY;AAAA,MACV,QAAQ/T,EAAMf,EAAO,OAAU,CAAC;AAAA,MAChC,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,QAAQ;AAAA,MACN,QAAQe,EAAMf,EAAO,OAAU,EAAE;AAAA,MACjC,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,OAAO;AAAA,MACL,QAAQA,EAAO;AAAA,MACf,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,OAAOe,EAAMf,EAAO,WAAW,GAAG,EAAE;AAAA,EAAA;AAAA,EAEtC,OAAO;AAAA,IACL,YAAY;AAAA,MACV,QAAQe,EAAMf,EAAO,KAAQ,CAAC;AAAA,MAC9B,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,QAAQ;AAAA,MACN,QAAQe,EAAMf,EAAO,KAAQ,EAAE;AAAA,MAC/B,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,OAAO;AAAA,MACL,QAAQA,EAAO;AAAA,MACf,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,OAAOe,EAAMf,EAAO,KAAQ,EAAE;AAAA,EAAA;AAElC,GChEa+U,KAAsB,CAAChT,MAC3B8S,GAAoB9S,CAAI,KAAK8S,GAAoB,SAG7CG,KAAyB,CAAC1U,MAC9BwU,GAAuBxU,CAAO,KAAKwU,GAAuB,QCItD9T,KAAkBnB,EAAO;AAAA;AAAA;AAAA;AAAA,GAMzBoB,KAAcpB,EAAOM,EAAU;AAAA;AAAA,GAI/B8U,KAAsBpV,EAAO;AAAA;AAAA,SAEjC,CAACjB,MAAUmW,GAAoBnW,EAAM,KAAK,EAAE,GAAG;AAAA,GAG3CwC,KAAcvB,EAAO;AAAA,WACvB,CAACjB,MAAUmW,GAAoBnW,EAAM,KAAK,EAAE,KAAK;AAAA,YAChD,CAACA,MAAUmW,GAAoBnW,EAAM,KAAK,EAAE,MAAM;AAAA,mBAC3C,CAACA,MAAUmW,GAAoBnW,EAAM,KAAK,EAAE,MAAM;AAAA,eACtD,CAACA,MAAUmW,GAAoBnW,EAAM,KAAK,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,sBAI7C,CAACA,MAAUoW,GAAuBpW,EAAM,QAAQ,EAAE,OAAO,MAAM;AAAA,sBAC/D,CAACA,MAAUoW,GAAuBpW,EAAM,QAAQ,EAAE,WAAW,MAAM;AAAA,WAC9E,CAACA,MAAUoW,GAAuBpW,EAAM,QAAQ,EAAE,MAAM,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAO5D,CAACA,MAAUoW,GAAuBpW,EAAM,QAAQ,EAAE,MAAM,QAAQ;AAAA,wBACrD,CAACA,MAAUoW,GAAuBpW,EAAM,QAAQ,EAAE,WAAW,QAAQ;AAAA,oBACzE,CAACA,MAAUoW,GAAuBpW,EAAM,QAAQ,EAAE,OAAO,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQxEsC,KAAgBrB,EAAOc,EAAY;AAAA;AAAA,GC3C1CV,KAAMC,EAAmB,UAAU,GAE5BgV,KAAU,CAAC;AAAA,EACtB,WAAAC;AAAA,EACA,WAAApW;AAAA,EACA,YAAAuD;AAAA,EACA,UAAAC;AAAA,EACA,OAAAE;AAAA,EACA,QAAA2S,IAAS;AAAA,EACT,SAAA1S;AAAA,EACA,UAAAE;AAAA,EACA,KAAA/D;AAAA,EACA,MAAAkD,IAAO;AAAA,EACP,OAAAY,IAAQ;AAAA,EACR,SAAArC,IAAU;AAAA,EACV,GAAGC;AACL,MAAoB;AAClB,QAAM8U,IAAYxR,EAAoC,EAAE;AAExD,EAAAE,GAAU,MAAM;AACd,IAAIoR,KAAaE,EAAU,QAAQ,CAAC,KAClCA,EAAU,QAAQ,CAAC,EAAE,MAAA;AAAA,EAEzB,GAAG,CAACF,CAAS,CAAC;AAEd,QAAMG,IAAarR,EAAY,CAACsR,MAAkB;AAChD,UAAMpC,IAAQkC,EAAU,QAAQE,CAAK;AACrC,IAAIpC,MACFA,EAAM,MAAA,GACNA,EAAM,OAAA;AAAA,EAEV,GAAG,CAAA,CAAE,GAECvL,IAAe3D;AAAA,IACnB,CAACsR,GAAelZ,MAAqC;AAEnD,YAAMmZ,IADanZ,EAAE,OAAO,MACH,QAAQ,OAAO,EAAE,EAAE,MAAM,EAAE;AAEpD,UAAI,CAACmZ,EAAO;AAEZ,YAAMnR,IAAW1B,EAAM,OAAOyS,GAAQ,GAAG,EAAE,MAAM,EAAE,GAG7CK,IAAkBpR,EAAS,UAAU,CAACqR,MAASA,MAAS,OAAOA,MAAS,EAAE,GAC1EC,IAAcF,MAAoB,KAAKA,IAAkBF;AAE/D,MAAAlR,EAASsR,CAAW,IAAIH;AACxB,YAAMI,IAAevR,EAAS,KAAK,EAAE,EAAE,QAAQ,MAAM,EAAE;AAEvD,MAAAzB,KAAA,QAAAA,EAAWgT;AAGX,YAAMC,IAAiBF,IAAc;AACrC,MAAIE,IAAiBT,KACnBE,EAAWO,CAAc;AAAA,IAE7B;AAAA,IACA,CAAClT,GAAOyS,GAAQxS,GAAU0S,CAAU;AAAA,EAAA,GAGhCQ,IAAgB7R;AAAA,IACpB,CAACsR,GAAelZ,MAAuC;AACrD,UAAIA,EAAE,QAAQ,aAAa;AACzB,QAAAA,EAAE,eAAA;AACF,cAAMgI,IAAW1B,EAAM,MAAM,EAAE;AAE/B,QAAI0B,EAASkR,CAAK,KAChBlR,EAASkR,CAAK,IAAI,IAClB3S,KAAA,QAAAA,EAAWyB,EAAS,KAAK,EAAE,MAClBkR,IAAQ,MACjBlR,EAASkR,IAAQ,CAAC,IAAI,IACtB3S,KAAA,QAAAA,EAAWyB,EAAS,KAAK,EAAE,IAC3BiR,EAAWC,IAAQ,CAAC;AAAA,MAExB,MAAA,CAAWlZ,EAAE,QAAQ,eAAekZ,IAAQ,KAC1ClZ,EAAE,eAAA,GACFiZ,EAAWC,IAAQ,CAAC,KACXlZ,EAAE,QAAQ,gBAAgBkZ,IAAQH,IAAS,MACpD/Y,EAAE,eAAA,GACFiZ,EAAWC,IAAQ,CAAC;AAAA,IAExB;AAAA,IACA,CAAC5S,GAAOyS,GAAQxS,GAAU0S,CAAU;AAAA,EAAA,GAGhCS,IAAc9R;AAAA,IAClB,CAAC5H,MAAwC;AACvC,MAAAA,EAAE,eAAA;AACF,YAAM2Z,IAAa3Z,EAAE,cAAc,QAAQ,MAAM,EAAE,QAAQ,OAAO,EAAE,EAAE,MAAM,GAAG+Y,CAAM;AAErF,UAAIY,GAAY;AACd,QAAApT,KAAA,QAAAA,EAAWoT;AAEX,cAAMC,IAAY,KAAK,IAAID,EAAW,QAAQZ,IAAS,CAAC;AACxD,QAAAE,EAAWW,CAAS;AAAA,MACtB;AAAA,IACF;AAAA,IACA,CAACb,GAAQxS,GAAU0S,CAAU;AAAA,EAAA;AAG/B,SACE,gBAAA9U,EAACQ,MAAgB,KAAAnC,GAAU,WAAWoB,GAAI,aAAalB,CAAS,GAAI,GAAGwB,GACpE,UAAA;AAAA,IAAAkC,KACC,gBAAA7B,EAACK,MAAY,SAAAX,GAAkB,WAAWL,GAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK,GACrE,UAAAG,EAAA,CACH;AAAA,IAEF,gBAAA7B,EAACqU,IAAA,EAAoB,OAAOlT,GACzB,UAAA,MAAM,KAAK,EAAE,QAAAqT,EAAA,CAAQ,EAAE,IAAI,CAACc,GAAGX,MAC9B,gBAAA3U;AAAA,MAACQ;AAAAA,MAAA;AAAA,QAEC,KAAK,CAAC+U,MAAO;AACX,UAAAd,EAAU,QAAQE,CAAK,IAAIY;AAAA,QAC7B;AAAA,QACA,MAAK;AAAA,QACL,WAAU;AAAA,QACV,cAAa;AAAA,QACb,WAAW;AAAA,QACX,UAAA5T;AAAA,QACA,OAAOI,EAAM4S,CAAK,KAAK;AAAA,QACvB,UAAU,CAAClZ,MAAMuL,EAAa2N,GAAOlZ,CAAC;AAAA,QACtC,WAAW,CAACA,MAAMyZ,EAAcP,GAAOlZ,CAAC;AAAA,QACxC,SAAS0Z;AAAA,QACT,SAAS,CAAC1Z,MAAMA,EAAE,OAAO,OAAA;AAAA,QACzB,OAAO0F;AAAA,QACP,UAAUzB;AAAA,QACV,WAAWL,GAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK;AAAA,MAAA;AAAA,MAhBpCiT;AAAA,IAAA,CAkBR,GACH;AAAA,IACC7S,uBACExB,IAAA,EAAc,SAAAZ,GAAkB,WAAWL,GAAI,SAAS,GACtD,UAAAyC,EAAA,CACH;AAAA,EAAA,GAEJ;AAEJ,GClJa0T,KAaT;AAAA,EACF,QAAQ;AAAA,IACN,KAAK;AAAA,MACH,QAAQrV,EAAMf,EAAO,WAAW,GAAG,EAAE;AAAA,MACrC,eAAeA,EAAO,WAAW;AAAA,MACjC,YAAYA,EAAO;AAAA,MACnB,mBAAmBA,EAAO;AAAA,MAC1B,aAAae,EAAMf,EAAO,WAAW,GAAG,EAAE;AAAA,IAAA;AAAA,IAE5C,KAAKA,EAAO;AAAA,IACZ,OAAOA,EAAO;AAAA,EAAO;AAAA,EAEvB,OAAO;AAAA,IACL,KAAK;AAAA,MACH,QAAQA,EAAO;AAAA,MACf,eAAeA,EAAO;AAAA,MACtB,YAAYA,EAAO;AAAA,MACnB,mBAAmBA,EAAO;AAAA,MAC1B,aAAae,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEtC,KAAKA,EAAO;AAAA,IACZ,OAAOA,EAAO;AAAA,EAAK;AAEvB,GCpCaqW,KAAuB,CAAC/V,MAC5B8V,GAAoB9V,CAAO,KAAK8V,GAAoB,QCoBhDpV,KAAkBnB,EAAO;AAAA;AAAA;AAAA;AAAA,YAI1B,CAACjB,MAAWA,EAAM,YAAY,gBAAgB,SAAU;AAAA,aACvD,CAACA,MAAWA,EAAM,YAAY,MAAM,CAAE;AAAA,GAGtCwC,KAAcvB,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQrB+G,KAAY/G,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAS1B,CAACjB,MACDA,EAAM,WACFyX,GAAqBzX,EAAM,QAAQ,EAAE,IAAI,gBACzCyX,GAAqBzX,EAAM,QAAQ,EAAE,IAAI,MAAM;AAAA,sBACnC,CAACA,MACnBA,EAAM,WACFyX,GAAqBzX,EAAM,QAAQ,EAAE,IAAI,oBACzCyX,GAAqBzX,EAAM,QAAQ,EAAE,IAAI,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,GAO9C0X,KAAYzW,EAAO;AAAA;AAAA;AAAA;AAAA,sBAIV,CAACjB,MAAUyX,GAAqBzX,EAAM,QAAQ,EAAE,GAAG;AAAA,aAC5D,CAACA,MAAWA,EAAM,WAAW,IAAI,CAAE;AAAA,eACjC,CAACA,MAAWA,EAAM,WAAW,aAAa,YAAa;AAAA;AAAA;AAAA;AAAA,GAMzDqC,KAAcpB,EAAO;AAAA;AAAA;AAAA;AAAA,WAIvB,CAACjB,MAAUyX,GAAqBzX,EAAM,QAAQ,EAAE,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GC3E1DqB,KAAMC,EAAmB,OAAO,GAEzBqW,KAAQ,CAAC;AAAA,EACpB,SAAAzP;AAAA,EACA,WAAA/H;AAAA,EACA,YAAAuD;AAAA,EACA,UAAAC;AAAA,EACA,OAAAE;AAAA,EACA,UAAAG;AAAA,EACA,KAAA/D;AAAA,EACA,SAAAyB,IAAU;AAAA,EACV,GAAGC;AACL,MAEI,gBAAAC;AAAA,EAACQ;AAAAA,EAAA;AAAA,IACC,WAAWf,GAAI,aAAalB,CAAS;AAAA,IACrC,WAAW,EAAQwD;AAAA,IACnB,UAAUjC;AAAA,IAEV,UAAA;AAAA,MAAA,gBAAAM;AAAA,QAACQ;AAAAA,QAAA;AAAA,UACE,GAAGb;AAAA,UACJ,KAAA1B;AAAA,UACA,MAAK;AAAA,UACL,WAAWoB,GAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK;AAAA,UACzC,SAAAwE;AAAA,UACA,UAAAvE;AAAA,UACA,UAAAK;AAAA,QAAA;AAAA,MAAA;AAAA,MAEF,gBAAAhC,EAACgG,IAAA,EAAU,WAAW3G,GAAI,OAAOqC,KAAA,gBAAAA,EAAY,GAAG,GAAG,UAAUwE,GAAS,UAAUxG,GAC9E,4BAACgW,IAAA,EAAU,WAAWrW,GAAI,OAAOqC,KAAA,gBAAAA,EAAY,GAAG,GAAG,UAAUwE,GAAS,UAAUxG,EAAA,CAAS,EAAA,CAC3F;AAAA,MACCmC,KACC,gBAAA7B,EAACK,IAAA,EAAY,WAAWhB,GAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK,GAAG,UAAUhC,GAChE,UAAAmC,EAAA,CACH;AAAA,IAAA;AAAA,EAAA;AAAA,GCzBK+T,KAA4E;AAAA,EACvF,QAAQ;AAAA,IACN,QAAQ;AAAA,MACN,QAAQzV,EAAMf,EAAO,OAAU,EAAE;AAAA,MACjC,OAAOe,EAAMf,EAAO,OAAU,EAAE;AAAA,MAChC,QAAQe,EAAMf,EAAO,OAAU,EAAE;AAAA,MACjC,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,eAAeA,EAAO;AAAA,IACtB,YAAY;AAAA,MACV,QAAQA,EAAO;AAAA,MACf,OAAOA,EAAO;AAAA,MACd,QAAQA,EAAO;AAAA,MACf,UAAUe,EAAMf,EAAO,OAAU,CAAC;AAAA,IAAA;AAAA,IAEpC,mBAAmBe,EAAMf,EAAO,OAAU,CAAC;AAAA,IAC3C,WAAWe,EAAMf,EAAO,OAAU,EAAE;AAAA,IACpC,OAAO;AAAA,MACL,QAAQA,EAAO;AAAA,MACf,OAAOA,EAAO;AAAA,MACd,QAAQA,EAAO;AAAA,MACf,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,aAAa;AAAA,MACX,QAAQe,EAAMf,EAAO,OAAU,EAAE;AAAA,MACjC,OAAOe,EAAMf,EAAO,OAAU,EAAE;AAAA,MAChC,QAAQe,EAAMf,EAAO,OAAU,EAAE;AAAA,MACjC,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,EACrC;AAAA,EAEF,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,QAAQA,EAAO;AAAA,MACf,OAAOA,EAAO;AAAA,MACd,QAAQA,EAAO;AAAA,MACf,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,eAAeA,EAAO;AAAA,IACtB,YAAY;AAAA,MACV,QAAQA,EAAO;AAAA,MACf,OAAOA,EAAO;AAAA,MACd,QAAQA,EAAO;AAAA,MACf,UAAUe,EAAMf,EAAO,KAAQ,CAAC;AAAA,IAAA;AAAA,IAElC,mBAAmBe,EAAMf,EAAO,KAAQ,CAAC;AAAA,IACzC,WAAWe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAClC,OAAO;AAAA,MACL,QAAQA,EAAO;AAAA,MACf,OAAOA,EAAO;AAAA,MACd,QAAQA,EAAO;AAAA,MACf,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,aAAa;AAAA,MACX,QAAQe,EAAMf,EAAO,KAAQ,EAAE;AAAA,MAC/B,OAAOe,EAAMf,EAAO,KAAQ,EAAE;AAAA,MAC9B,QAAQe,EAAMf,EAAO,KAAQ,EAAE;AAAA,MAC/B,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,EACnC;AAEJ,GCrEayW,KAA2B,CAACnW,MAChCkW,GAAyBlW,CAAO,KAAKkW,GAAyB,QCgB1DxV,KAAkBnB,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAMhB,CAACjB,MAAU;AAC7B,QAAMwI,IAAeqP,GAAyB7X,EAAM,QAAQ;AAC5D,SAAIA,EAAM,YAAkBwI,EAAa,WAAW,WAChDxI,EAAM,WAAiBwI,EAAa,oBACjCA,EAAa,WAAW;AACjC,CAAC;AAAA;AAAA,MAEG,CAACxI,MAAU;AACX,QAAMwI,IAAeqP,GAAyB7X,EAAM,QAAQ;AAC5D,SAAIA,EAAM,YAAkBwI,EAAa,OAAO,WAC5CxI,EAAM,WAAiBwI,EAAa,gBACjCA,EAAa,OAAO;AAC7B,CAAC;AAAA;AAAA,YAEO,CAACxI,MAAWA,EAAM,YAAY,gBAAgB,SAAU;AAAA;AAAA;AAAA;AAAA,WAIzD,CAACA,MAAWA,EAAM,aAAa,SAAS,aAAc;AAAA;AAAA;AAAA;AAAA,oBAI7C,CAACA,MAAU;AACzB,QAAMwI,IAAeqP,GAAyB7X,EAAM,QAAQ;AAC5D,SAAIA,EAAM,WAAiBwI,EAAa,gBACjCA,EAAa,OAAO;AAC7B,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQQhG,KAAcvB,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAYrBwH,KAAgBxH,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOvBoB,KAAcpB,EAAO;AAAA;AAAA;AAAA;AAAA,WAIvB,CAACjB,MAAU6X,GAAyB7X,EAAM,QAAQ,EAAE,MAAM,MAAM;AAAA;AAAA;AAAA,aAG9D,CAACA,MAAU6X,GAAyB7X,EAAM,QAAQ,EAAE,MAAM,QAAQ;AAAA;AAAA,GAIlE0I,KAAoBzH,EAAO;AAAA;AAAA;AAAA;AAAA,WAI7B,CAACjB,MAAU6X,GAAyB7X,EAAM,QAAQ,EAAE,YAAY,MAAM;AAAA;AAAA;AAAA,aAGpE,CAACA,MAAU6X,GAAyB7X,EAAM,QAAQ,EAAE,YAAY,QAAQ;AAAA;AAAA,GCtF/EqB,KAAMC,EAAmB,YAAY,GAE9BwW,KAAY,CAAC;AAAA,EACxB,SAAA5P;AAAA,EACA,WAAA/H;AAAA,EACA,YAAAuD;AAAA,EACA,aAAAkF;AAAA,EACA,UAAAjF;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,OAAAC;AAAA,EACA,UAAAG;AAAA,EACA,KAAA/D;AAAA,EACA,SAAAyB,IAAU;AAAA,EACV,GAAGC;AACL,MAEI,gBAAAC;AAAA,EAACQ;AAAAA,EAAA;AAAA,IACC,WAAWf,GAAI,aAAalB,CAAS;AAAA,IACrC,UAAU+H;AAAA,IACV,WAAW,EAAQvE;AAAA,IACnB,YAAYC;AAAA,IACZ,UAAUlC;AAAA,IACV,iBAAeiC;AAAA,IAEf,UAAA;AAAA,MAAA,gBAAA3B;AAAA,QAACQ;AAAAA,QAAA;AAAA,UACE,GAAGb;AAAA,UACJ,KAAA1B;AAAA,UACA,MAAK;AAAA,UACL,SAAAiI;AAAA,UACA,UAAAvE;AAAA,UACA,UAAAK;AAAA,QAAA;AAAA,MAAA;AAAA,MAEF,gBAAAhC;AAAA,QAAC2V;AAAA,QAAA;AAAA,UACC,WAAWjU,KAAA,gBAAAA,EAAY;AAAA,UACvB,SAAAwE;AAAA,UACA,UAAAvE;AAAA,UACA,SAAAjC;AAAA,UACA,UAAU,MAAM;AAAA,UAAC;AAAA,UACjB,UAAU;AAAA,UACV,eAAW;AAAA,QAAA;AAAA,MAAA;AAAA,wBAEZ+G,IAAA,EAAc,WAAWpH,GAAI,WAAWqC,KAAA,gBAAAA,EAAY,OAAO,GAC1D,UAAA;AAAA,QAAA,gBAAA1B,EAACK,IAAA,EAAY,WAAWhB,GAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK,GAAG,UAAUhC,GAChE,UAAAmC,EAAA,CACH;AAAA,QACC+E,KACC,gBAAA5G;AAAA,UAAC0G;AAAAA,UAAA;AAAA,YACC,WAAWrH,GAAI,eAAeqC,KAAA,gBAAAA,EAAY,WAAW;AAAA,YACrD,UAAUhC;AAAA,YAET,UAAAkH;AAAA,UAAA;AAAA,QAAA;AAAA,MACH,EAAA,CAEJ;AAAA,IAAA;AAAA,EAAA;AAAA,GC9DOmP,KAAoB;AAAA,EAC/B,OAAO;AAAA,IACL,OAAO3W,EAAO;AAAA,IACd,eAAee,EAAMf,EAAO,OAAU,EAAE;AAAA,EAAA;AAE5C,GCCagB,KAAkBnB,EAAO;AAAA;AAAA;AAAA;AAAA,GAMzBoB,KAAcpB,EAAO;AAAA;AAAA;AAAA;AAAA,WAIvB,CAACjB,MACRA,EAAM,YAAY+X,GAAkB,MAAM,gBAAgBA,GAAkB,MAAM,KAAK;AAAA;AAAA,GAI9EjP,KAAgB7H,EAAO;AAAA;AAAA;AAAA;AAAA,GClB9BI,KAAMC,EAAmB,aAAa,GAE/B0W,KAAa,CAA4B;AAAA,EACpD,WAAA7X;AAAA,EACA,YAAAuD;AAAA,EACA,UAAAC;AAAA,EACA,OAAAE;AAAA,EACA,MAAAoU;AAAA,EACA,UAAAjU;AAAA,EACA,SAAA1F;AAAA,EACA,KAAA2B;AAAA,EACA,OAAA8D;AAAA,EACA,SAAArC,IAAU;AAAA,EACV,GAAGC;AACL,MAEI,gBAAAC,EAACQ,MAAiB,GAAGT,GAAM,KAAA1B,GAAU,WAAWoB,GAAI,aAAalB,CAAS,GACvE,UAAA;AAAA,EAAA0D,KACC,gBAAA7B,EAACK,IAAA,EAAY,WAAWhB,GAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK,GAAG,WAAWC,GACjE,UAAAE,EAAA,CACH;AAAA,EAEF,gBAAA7B,EAAC8G,IAAA,EAAc,WAAWzH,GAAI,WAAWqC,KAAA,gBAAAA,EAAY,OAAO,GACzD,UAAApF,EAAQ,IAAI,CAAC6K,MACZ,gBAAAnH;AAAA,IAAC2V;AAAA,IAAA;AAAA,MAEC,WAAWjU,KAAA,gBAAAA,EAAY;AAAA,MACvB,MAAAuU;AAAA,MACA,SAASlU,MAAUoF,EAAO;AAAA,MAC1B,OAAOA,EAAO;AAAA,MACd,UAAAxF;AAAA,MACA,SAAAjC;AAAA,MACA,UAAU,MAAMsC,EAASmF,EAAO,KAAK;AAAA,IAAA;AAAA,IAPhCA,EAAO;AAAA,EAAA,CASf,EAAA,CACH;AAAA,GACF,GCtCS+O,KAAgB,IAChBC,KAAa,GACbC,KAAmB,GAEnBC,KAOT;AAAA,EACF,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,QAAQ;AAAA,EAAA;AAAA,EAEV,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,QAAQ;AAAA,EAAA;AAEZ,GAEaC,KAST;AAAA,EACF,QAAQ;AAAA,IACN,YAAY;AAAA,MACV,QAAQnW,EAAMf,EAAO,OAAU,CAAC;AAAA,MAChC,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,QAAQ;AAAA,MACN,QAAQe,EAAMf,EAAO,OAAU,EAAE;AAAA,MACjC,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,OAAO;AAAA,MACL,QAAQA,EAAO;AAAA,MACf,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,aAAae,EAAMf,EAAO,OAAU,EAAE;AAAA,IACtC,OAAOe,EAAMf,EAAO,WAAW,GAAG,EAAE;AAAA,EAAA;AAAA,EAEtC,OAAO;AAAA,IACL,YAAY;AAAA,MACV,QAAQe,EAAMf,EAAO,KAAQ,CAAC;AAAA,MAC9B,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,QAAQ;AAAA,MACN,QAAQe,EAAMf,EAAO,KAAQ,EAAE;AAAA,MAC/B,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,OAAO;AAAA,MACL,QAAQA,EAAO;AAAA,MACf,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,aAAae,EAAMf,EAAO,KAAQ,EAAE;AAAA,IACpC,OAAOe,EAAMf,EAAO,KAAQ,EAAE;AAAA,EAAA;AAElC,GCjEamX,KAAqB,CAACpV,MAC1BkV,GAAkBlV,CAAI,KAAKkV,GAAkB,SAGzCG,KAAwB,CAAC9W,MAC7B4W,GAAqB5W,CAAO,KAAK4W,GAAqB,QCDlDlW,KAAkBnB,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,WAK3B,CAACjB,MAAWA,EAAM,aAAa,SAAS,aAAc;AAAA,GAGpDqC,KAAcpB,EAAOM,EAAU;AAAA;AAAA,GAI/Be,KAAgBrB,EAAOc,EAAY;AAAA;AAAA,GAInC2L,KAAgBzM,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAexB,CAACjB,MAAWA,EAAM,YAAY,gBAAgB,SAAU;AAAA,YACxD,CAACA,MAAUuY,GAAmBvY,EAAM,KAAK,EAAE,MAAM;AAAA,aAChD,CAACA,MAAUuY,GAAmBvY,EAAM,KAAK,EAAE,OAAO;AAAA,mBAC5C,CAACA,MAAUuY,GAAmBvY,EAAM,KAAK,EAAE,MAAM;AAAA;AAAA,WAEzD,CAACA,MACRA,EAAM,YACFA,EAAM,YACJwY,GAAsBxY,EAAM,QAAQ,EAAE,MAAM,WAC5CwY,GAAsBxY,EAAM,QAAQ,EAAE,MAAM,SAC9CwY,GAAsBxY,EAAM,QAAQ,EAAE,WAAW;AAAA;AAAA,MAEnD,CAACA,MACDA,EAAM,YACFwY,GAAsBxY,EAAM,QAAQ,EAAE,OAAO,WAC7CwY,GAAsBxY,EAAM,QAAQ,EAAE,OAAO,MAAM;AAAA,sBACvC,CAACA,MACnBA,EAAM,YACFwY,GAAsBxY,EAAM,QAAQ,EAAE,WAAW,WACjDwY,GAAsBxY,EAAM,QAAQ,EAAE,WAAW,MAAM;AAAA,GAGlD+N,KAAoB9M,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQ3BwX,KAAgBxX,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAMd,CAACjB,MAAWA,EAAM,QAAQ,WAAW,MAAO;AAAA,GAG5D0Y,KAAiB;AAAA;AAAA;AAAA;AAAA,gBAIPtX,EAAO,KAAK;AAAA,sBACNe,EAAMf,EAAO,OAAO,EAAE,CAAC;AAAA;AAAA,2BAElBe,EAAMf,EAAO,OAAO,EAAE,CAAC;AAAA;AAAA,GAIrCsB,KAAiBzB,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAKjCyX,EAAc;AAAA,GAGLC,KAAuB1X,EAAO;AAAA;AAAA;AAAA,IAGvCyX,EAAc;AAAA,GAGLzD,KAAehU,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAUnB,CAACjB,MAAWA,EAAM,YAAYmC,EAAMf,EAAO,OAAO,CAAC,IAAI,aAAc;AAAA;AAAA;AAAA;AAAA;AAAA,YAKzE,CAACpB,MAAWA,EAAM,YAAY,gBAAgB,SAAU;AAAA,WACzD,CAACA,MAAWA,EAAM,YAAYmC,EAAMf,EAAO,OAAO,EAAE,IAAIA,EAAO,KAAM;AAAA;AAAA;AAAA;AAAA,kBAI9De,EAAMf,EAAO,OAAO,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAW3BwX,KAAkB3X,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,WAK3BG,EAAO,KAAK;AAAA,GCvHjBC,KAAMC,EAAmB,QAAQ,GAQ1BuX,KAAS,CAAC;AAAA,EACrB,WAAA1Y;AAAA,EACA,YAAAuD;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,WAAAC,IAAY;AAAA,EACZ,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAE;AAAA,EACA,SAAA1F;AAAA,EACA,aAAA4M,IAAc;AAAA,EACd,kBAAAuE;AAAA,EACA,KAAAxP;AAAA,EACA,MAAAkD,IAAO;AAAA,EACP,OAAAY;AAAA,EACA,SAAArC,IAAU;AAAA,EACV,GAAGC;AACL,MAAmB;AACjB,QAAM,CAACiD,GAAQC,CAAS,IAAIN,EAAS,EAAK,GACpC,CAACyL,GAAgBC,CAAiB,IAAI1L,EAAyB;AAAA,IACnE,KAAK;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,EAAA,CACR,GAEKS,IAAeC,EAAuB,IAAI,GAC1CyL,IAAazL,EAA0B,IAAI,GAC3C6T,IAAc7T,EAAuB,IAAI,GAEzC8T,IAAiBza,EAAQ,KAAK,CAACsX,MAAQA,EAAI,UAAU7R,CAAK,GAC1DiV,IAAgB,KAAK;AAAA,IACzB;AAAA,IACA1a,EAAQ,UAAU,CAACsX,MAAQA,EAAI,UAAU7R,CAAK;AAAA,EAAA,GAE1CkV,IAAc,EAAED,KAAiBd,KAAgBC,MAAcC,KAE/Dc,IAAuB,MAAM;AACjC,QAAI,CAACxI,EAAW,WAAW,CAACjB,EAAkB;AAE9C,UAAM2B,IAAcV,EAAW,QAAQ,sBAAA,GACjCyI,IAAiBH,KAAiBd,KAAgBC,MAAcC;AAEtE,QAAI3G,IAAML,EAAY,MAAM+H;AAE5B,UAAMC,IACJ9a,EAAQ,SAAS4Z,MAAiB5Z,EAAQ,SAAS,KAAK6Z,KAAaC,KAAmB,GACpFiB,IAAS,GACTC,KAAS,OAAO,cAAcF,IAAiB;AAErD,IAAI3H,IAAM4H,MAAQ5H,IAAM4H,IACpB5H,IAAM6H,OAAQ7H,IAAM6H,KAExBrJ,EAAkB;AAAA,MAChB,KAAAwB;AAAA,MACA,MAAML,EAAY,OAAOgH;AAAA,MACzB,OAAOhH,EAAY,QAAQgH,KAAmB;AAAA,IAAA,CAC/C;AAAA,EACH,GAEM1S,IAAe,CAACuD,MAAwB;;AAC5C,IAAAjF,KAAA,QAAAA,EAAWiF,IACXpE,EAAU,EAAK,IACf+C,IAAA8I,EAAW,YAAX,QAAA9I,EAAoB;AAAA,EACtB,GAEMsP,IAAgB,CAACzZ,MAA2B;AAChD,IAAIkG,KAAYrF,EAAQ,WAAW,MAE/Bb,EAAE,QAAQ,WAAWA,EAAE,QAAQ,OACjCA,EAAE,eAAA,GACFoH,EAAU,CAACsN,MAAS,CAACA,CAAI,KAChB1U,EAAE,QAAQ,YAAYmH,KAC/BnH,EAAE,eAAA,GACFoH,EAAU,EAAK,KACNpH,EAAE,QAAQ,eAAe,CAACmH,MACnCnH,EAAE,eAAA,GACFoH,EAAU,EAAI;AAAA,EAElB;AAEA,EAAA6N,GAAgB,MAAM;AACpB,IAAI9N,KAAU6K,KACZyJ,EAAA;AAAA,EAEJ,GAAG,CAACtU,GAAQ6K,GAAkBuJ,GAAe1a,EAAQ,MAAM,CAAC,GAE5D6G,GAAU,MAAM;AACd,QAAI,CAACP,EAAQ;AAEb,UAAM+N,IAAqB,CAAClV,MAAkB;AAC5C,YAAMoV,IAASpV,EAAE,QACXqV,KAAqB9N,EAAa,WAAW,CAACA,EAAa,QAAQ,SAAS6N,CAAM,GAClF0G,KAAoBT,EAAY,WAAW,CAACA,EAAY,QAAQ,SAASjG,CAAM;AAErF,MAAIpD,IACEqD,MAAsByG,MACxB1U,EAAU,EAAK,IAGbiO,MACFjO,EAAU,EAAK;AAAA,IAGrB,GAEMoO,IAAe,MAAM;AACzB,MAAIxD,KACFyJ,EAAA;AAAA,IAEJ,GAEMhG,IAAe,MAAM;AACzB,MAAIzD,KACFyJ,EAAA;AAAA,IAEJ;AAEA,oBAAS,iBAAiB,aAAavG,CAAkB,GAErDlD,MACF,OAAO,iBAAiB,UAAUwD,GAAc,EAAI,GACpD,OAAO,iBAAiB,UAAUC,CAAY,IAGzC,MAAM;AACX,eAAS,oBAAoB,aAAaP,CAAkB,GAC5D,OAAO,oBAAoB,UAAUM,GAAc,EAAI,GACvD,OAAO,oBAAoB,UAAUC,CAAY;AAAA,IACnD;AAAA,EACF,GAAG,CAACtO,GAAQ6K,CAAgB,CAAC;AAE7B,QAAM+J,IAAgB,MACpBlb,EAAQ,IAAI,CAAC6K,MACX,gBAAAvH;AAAA,IAACqT;AAAAA,IAAA;AAAA,MAEC,MAAK;AAAA,MACL,MAAK;AAAA,MACL,WAAW9L,EAAO,UAAUpF;AAAA,MAC5B,WAAWoF,EAAO,YAAY;AAAA,MAC9B,UAAUA,EAAO;AAAA,MACjB,iBAAeA,EAAO,UAAUpF;AAAA,MAChC,SAAS,MAAM2B,EAAayD,EAAO,KAAK;AAAA,MACxC,WAAW9H,GAAI,UAAUqC,KAAA,gBAAAA,EAAY,MAAM;AAAA,MAE3C,UAAA;AAAA,QAAA,gBAAA1B,EAAC,QAAA,EAAM,YAAO,MAAA,CAAM;AAAA,QACnBmH,EAAO,UAAUpF,KAChB,gBAAA/B,EAAC4W,MACC,UAAA,gBAAA5W,EAACqG,IAAA,EAAM,MAAM,GAAA,CAAI,EAAA,CACnB;AAAA,MAAA;AAAA,IAAA;AAAA,IAdGc,EAAO;AAAA,EAAA,CAiBf,GAEGsQ,IAAWhK,IACfmE;AAAA,IACE,gBAAA5R;AAAA,MAAC2W;AAAAA,MAAA;AAAA,QACC,KAAKG;AAAA,QACL,MAAK;AAAA,QACL,OAAO;AAAA,UACL,KAAK9I,EAAe;AAAA,UACpB,MAAMA,EAAe;AAAA,UACrB,OAAOA,EAAe;AAAA,QAAA;AAAA,QAExB,WAAW3O,GAAI,YAAYqC,KAAA,gBAAAA,EAAY,QAAQ;AAAA,QAE9C,UAAA8V,EAAA;AAAA,MAAc;AAAA,IAAA;AAAA,IAEjB/J;AAAA,EAAA,IAGF,gBAAAzN;AAAA,IAACU;AAAAA,IAAA;AAAA,MACC,KAAKoW;AAAA,MACL,MAAK;AAAA,MACL,OAAO,EAAE,KAAKG,EAAA;AAAA,MACd,WAAW5X,GAAI,YAAYqC,KAAA,gBAAAA,EAAY,QAAQ;AAAA,MAE9C,UAAA8V,EAAA;AAAA,IAAc;AAAA,EAAA;AAInB,SACE,gBAAA5X;AAAA,IAACQ;AAAAA,IAAA;AAAA,MACE,GAAGT;AAAA,MACJ,KAAK,CAAC+X,MAAS;AACX,QAAA1U,EAA+D,UAAU0U,GACvE,OAAOzZ,KAAQ,aAAYA,EAAIyZ,CAAI,IAC9BzZ,QAAS,UAAUyZ;AAAA,MAC9B;AAAA,MACA,YAAY9V;AAAA,MACZ,WAAWvC,GAAI,aAAalB,CAAS;AAAA,MAEpC,UAAA;AAAA,QAAA0D,KACC,gBAAA7B;AAAA,UAACK;AAAAA,UAAA;AAAA,YACC,SAASX,MAAY,UAAU,UAAU;AAAA,YACzC,WAAWL,GAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK;AAAA,YAExC,UAAAG;AAAA,UAAA;AAAA,QAAA;AAAA,QAIL,gBAAAjC;AAAA,UAAC8L;AAAAA,UAAA;AAAA,YACC,KAAKgD;AAAA,YACL,MAAK;AAAA,YACL,OAAOvN;AAAA,YACP,UAAUzB;AAAA,YACV,WAAWiC;AAAA,YACX,WAAW,EAAQoV;AAAA,YACnB,UAAApV;AAAA,YACA,SAAS,MAAM,CAACA,KAAYrF,EAAQ,SAAS,KAAKuG,EAAU,CAACsN,MAAS,CAACA,CAAI;AAAA,YAC3E,WAAW+E;AAAA,YACX,iBAAc;AAAA,YACd,iBAAetS;AAAA,YACf,WAAWvD,GAAI,WAAWqC,KAAA,gBAAAA,EAAY,OAAO;AAAA,YAE7C,UAAA;AAAA,cAAA,gBAAA1B,EAAC+L,IAAA,EAAmB,WAAAgL,KAAA,gBAAAA,EAAgB,UAAS7N,GAAY;AAAA,cACzD,gBAAAlJ,EAACyW,MAAc,OAAO7T,GACpB,4BAACiP,IAAA,EAAY,MAAM,IAAI,EAAA,CACzB;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGDjP,KAAU6U;AAAA,QACV3V,KAAW,gBAAA9B,EAACM,IAAA,EAAc,SAAAZ,GAAmB,UAAAoC,EAAA,CAAQ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG5D,GCnPa5B,KAAmD;AAAA,EAC9D,QAAQ;AAAA,IACN,QAAQd,EAAO,WAAW;AAAA,IAC1B,aAAaA,EAAO,WAAW;AAAA,EAAA;AAAA,EAEjC,OAAO;AAAA,IACL,QAAQA,EAAO;AAAA,IACf,aAAae,EAAMf,EAAO,KAAK,EAAE;AAAA,EAAA;AAErC,GCTagB,KAAkBnB,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOzBoB,KAAcpB,EAAOM,EAAU;AAAA;AAAA,GAI/BmM,KAAgBzM,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAWb,CAACjB,MAAUkC,GAAclC,EAAM,QAAQ,EAAE,MAAM;AAAA;AAAA,gBAEtDoB,EAAO,KAAK;AAAA,YAChB,CAACpB,MAAWA,EAAM,YAAY,gBAAgB,MAAO;AAAA,aACpD,CAACA,MAAWA,EAAM,YAAY,MAAM,CAAE;AAAA;AAAA;AAAA;AAAA,oBAI/B,CAACA,MACfA,EAAM,YACFkC,GAAclC,EAAM,QAAQ,EAAE,SAC9BA,EAAM,aAAa,UACjBoB,EAAO,MACPA,EAAO,KAAK;AAAA;AAAA;AAAA,IAGpB,CAACpB,MACDA,EAAM,YACN;AAAA,yBACqBA,EAAM,aAAa,UAAUoB,EAAO,MAAMA,EAAO,YAAY,CAAC;AAAA;AAAA,GAEpF;AAAA,GAGUoB,KAAcvB,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAOvBG,EAAO,KAAK;AAAA,YACX,CAACpB,MAAWA,EAAM,YAAY,gBAAgB,MAAO;AAAA;AAAA;AAAA,aAGpD,CAACA,MAAUkC,GAAclC,EAAM,QAAQ,EAAE,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQ3D0Y,KAAiB;AAAA;AAAA,sBAEDtX,EAAO,KAAK;AAAA,sBACZe,EAAMf,EAAO,OAAO,EAAE,CAAC;AAAA;AAAA,2BAElBe,EAAMf,EAAO,OAAO,EAAE,CAAC;AAAA;AAAA;AAAA,GAK5CuY,KAAuB,CAAChX,GAAgBwL,MACxCxL,IAAc,kBACXwL,MAAc,WAAW,qBAAqB,mBAGjDyL,KAAwB;AAAA;AAAA;AAAA;AAAA,GAMjBlX,KAAiBzB,EAAO;AAAA;AAAA;AAAA;AAAA,IAIjC,CAACjB,MACDA,EAAM,cAAc,WAAW,2BAA2B,2BAA2B;AAAA,IACrF0Y,EAAc;AAAA,aACL,CAAC1Y,MAAWA,EAAM,QAAQ,IAAI,CAAE;AAAA,gBAC7B,CAACA,MAAWA,EAAM,QAAQ,YAAY,QAAS;AAAA,eAChD,CAACA,MAAU2Z,GAAqB3Z,EAAM,OAAOA,EAAM,SAAS,CAAC;AAAA,gBAC5D4Z,EAAqB;AAAA,GAGxBjB,KAAuB1X,EAAO;AAAA;AAAA,IAEvCyX,EAAc;AAAA,aACL,CAAC1Y,MAAWA,EAAM,QAAQ,IAAI,CAAE;AAAA,gBAC7B,CAACA,MAAWA,EAAM,QAAQ,YAAY,QAAS;AAAA,eAChD,CAACA,MAAU2Z,GAAqB3Z,EAAM,OAAOA,EAAM,SAAS,CAAC;AAAA,gBAC5D4Z,EAAqB;AAAA,GAGxB3E,KAAehU,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAQxBG,EAAO,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAMCA,EAAO,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAgBtB2B,KAAc9B,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,WAKvBG,EAAO,WAAW,CAAC;AAAA;AAAA;AAAA,GAKjBkB,KAAgBrB,EAAOc,EAAY;AAAA;AAAA,GC1I1CV,KAAMC,EAAmB,MAAM,GAE/BuY,KAAe,GAQRC,KAAO,CAAC;AAAA,EACnB,WAAA3Z;AAAA,EACA,YAAAuD;AAAA,EACA,WAAAqW,IAAY;AAAA,EACZ,UAAApW,IAAW;AAAA,EACX,cAAAyR,IAAe;AAAA,EACf,UAAA4E,IAAW;AAAA,EACX,OAAAnW;AAAA,EACA,SAAAC;AAAA,EACA,UAAAE;AAAA,EACA,SAAA1F,IAAU,CAAA;AAAA,EACV,aAAA4M,IAAc;AAAA,EACd,kBAAAuE;AAAA,EACA,KAAAxP;AAAA,EACA,OAAA8D;AAAA,EACA,SAAArC,IAAU;AAAA,EACV,GAAGC;AACL,MAAiB;AACf,QAAMqD,IAAeC,EAAuB,IAAI,GAC1CyL,IAAazL,EAAuB,IAAI,GACxC6T,IAAc7T,EAAuB,IAAI,GACzCgV,IAAWhV,EAAyB,IAAI,GACxC,CAACZ,GAAYC,CAAa,IAAIC,EAAS,EAAE,GACzC,CAAC2V,GAAWC,CAAY,IAAI5V,EAAS,EAAK,GAC1C,CAAC6V,GAAkBC,CAAmB,IAAI9V,EAA2B,QAAQ,GAC7E,CAACyL,GAAgBC,CAAiB,IAAI1L,EAAyB;AAAA,IACnE,KAAK;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,EAAA,CACR,GAEKsR,IAAkB7O,GAAQ,MAAM;AACpC,UAAMsT,IAAYhc,EAAQ,OAAO,CAACsX,MAAQ,CAAC7R,EAAM,SAAS6R,EAAI,KAAK,CAAC;AACpE,QAAI,CAACvR,EAAW,KAAA,EAAQ,QAAOiW;AAC/B,UAAMhV,IAAQjB,EAAW,YAAA,EAAc,KAAA;AACvC,WAAOiW,EAAU,OAAO,CAAC1E,MAAQA,EAAI,MAAM,YAAA,EAAc,SAAStQ,CAAK,CAAC;AAAA,EAC1E,GAAG,CAAChH,GAASyF,GAAOM,CAAU,CAAC,GAEzBkW,IAAeL,KAAa5b,EAAQ,SAAS,GAE7Ckc,IAAyBnV,EAAY,MAAM;;AAC/C,QAAI,CAACqL,EAAW,QAAS;AAEzB,UAAM+J,IAAO/J,EAAW,QAAQ,sBAAA,GAC1B0I,MAAiBxR,KAAAkR,EAAY,YAAZ,gBAAAlR,GAAqB,iBAAgB,KACtD0J,IAAa,OAAO,cAAcmJ,EAAK,SAASZ,IAChDtI,IAAakJ,EAAK,MAAMZ,IAExBrI,KACJF,IAAa8H,KAAkB7H,IAAaD,IAAa,QAAQ;AAGnE,QAFA+I,EAAoB7I,EAAW,GAE3B/B,GAAkB;AACpB,YAAMgC,KACJD,OAAgB,WACZiJ,EAAK,SAASZ,KACdY,EAAK,MAAMrB,IAAiBS;AAElC,MAAA5J,EAAkB;AAAA,QAChB,KAAAwB;AAAA,QACA,MAAMgJ,EAAK;AAAA,QACX,OAAOA,EAAK;AAAA,MAAA,CACb;AAAA,IACH;AAAA,EACF,GAAG,CAAChL,CAAgB,CAAC;AAErB,EAAAtK,GAAU,MAAM;AACd,QAAI+U;AACF,aAAAM,EAAA,GACA,OAAO,iBAAiB,UAAUA,GAAwB,EAAI,GAC9D,OAAO,iBAAiB,UAAUA,CAAsB,GACjD,MAAM;AACX,eAAO,oBAAoB,UAAUA,GAAwB,EAAI,GACjE,OAAO,oBAAoB,UAAUA,CAAsB;AAAA,MAC7D;AAAA,EAEJ,GAAG,CAACN,GAAWM,CAAsB,CAAC;AAEtC,QAAME,IAASrV;AAAA,IACb,CAACsV,MAAqB;AACpB,YAAMC,IAAUD,EAAS,KAAA;AACzB,aAAI,CAACC,KAAW7W,EAAM,SAAS6W,CAAO,IAAU,MAChD5W,EAAS,CAAC,GAAGD,GAAO6W,CAAO,CAAC,GAC5BtW,EAAc,EAAE,GACT;AAAA,IACT;AAAA,IACA,CAACP,GAAOC,CAAQ;AAAA,EAAA,GAGZkT,IAAgB,CAACzZ,MAA6C;AAClE,QAAIA,EAAE,QAAQsc,KAAa1V,EAAW;AAEpC,UADA5G,EAAE,eAAA,GACEuc;AACF,QAAAU,EAAOrW,CAAU;AAAA,WACZ;AACL,cAAMwW,IAAiBhF,EAAgB;AAAA,UACrC,CAACD,MAAQA,EAAI,MAAM,kBAAkBvR,EAAW,YAAA,EAAc,KAAA;AAAA,QAAK;AAErE,QAAIwW,KACFH,EAAOG,EAAe,KAAK;AAAA,MAE/B;AAAA,QACF,CAAWpd,EAAE,QAAQ,eAAe,CAAC4G,KAAcN,EAAM,SAAS,KAChEC,EAASD,EAAM,MAAM,GAAG,EAAE,CAAC;AAAA,EAE/B,GAEM+W,IAAoB,CAAC7R,MAAwB;;AACjD,IAAAyR,EAAOzR,CAAW,IAClBrB,IAAAqS,EAAS,YAAT,QAAArS,EAAkB;AAAA,EACpB,GAEMoO,IAAe,CAAC2E,MAAqB;AACzC,IAAA3W,EAASD,EAAM,OAAO,CAACmF,MAAMA,MAAMyR,CAAQ,CAAC;AAAA,EAC9C,GAEMI,KAAuB,MAAM;;AACjC,IAAKpX,MACHiE,IAAAqS,EAAS,YAAT,QAAArS,EAAkB;AAAA,EAEtB,GAEMoT,KAAc,CAACL,MAAqB;AACxC,UAAMxR,IAAS7K,EAAQ,KAAK,CAACsX,MAAQA,EAAI,UAAU+E,CAAQ;AAC3D,YAAOxR,KAAA,gBAAAA,EAAQ,UAASwR;AAAA,EAC1B;AAEA,SACE,gBAAA/Y,EAACQ,MAAiB,GAAGT,GAAM,KAAA1B,GAAU,WAAWoB,GAAI,aAAalB,CAAS,GACvE,UAAA;AAAA,IAAA0D,uBACExB,IAAA,EAAY,SAAAX,GAAkB,WAAWL,GAAI,OAAO,GAClD,UAAAwC,GACH;AAAA,IAEF,gBAAAjC,EAAC,SAAI,KAAKoD,GAAc,OAAO,EAAE,UAAU,cACzC,UAAA;AAAA,MAAA,gBAAApD;AAAA,QAAC8L;AAAA,QAAA;AAAA,UACC,KAAKgD;AAAA,UACL,UAAUhP;AAAA,UACV,WAAWiC;AAAA,UACX,UAAUuW;AAAA,UACV,SAASa;AAAA,UACT,WAAW1Z,GAAI,WAAWqC,KAAA,gBAAAA,EAAY,OAAO;AAAA,UAE5C,UAAA;AAAA,YAAAK,EAAM,IAAI,CAAC3F,MACV,gBAAA4D;AAAA,cAACuH;AAAA,cAAA;AAAA,gBAEC,SAAS7H,MAAY,UAAU,QAAQ;AAAA,gBACvC,WAAW,CAACiC;AAAA,gBACZ,UAAU,MAAMqS,EAAa5X,CAAG;AAAA,gBAChC,WAAWiD,GAAI,QAAQqC,KAAA,gBAAAA,EAAY,IAAI;AAAA,gBAEtC,aAAYtF,CAAG;AAAA,cAAA;AAAA,cANXA;AAAA,YAAA,CAQR;AAAA,YACD,gBAAA4D;AAAA,cAACQ;AAAAA,cAAA;AAAA,gBACC,KAAKyX;AAAA,gBACL,MAAK;AAAA,gBACL,OAAO5V;AAAA,gBACP,UAAU,CAAC5G,MAAM6G,EAAc7G,EAAE,OAAO,KAAK;AAAA,gBAC7C,SAAS,MAAM0c,EAAa,EAAI;AAAA,gBAChC,QAAQ,MAAM,WAAW,MAAMA,EAAa,EAAK,GAAG,GAAG;AAAA,gBACvD,WAAWjD;AAAA,gBACX,aAAanT,EAAM,WAAW,IAAImH,IAAc;AAAA,gBAChD,UAAAvH;AAAA,gBACA,WAAWA;AAAA,gBACX,UAAUjC;AAAA,gBACV,WAAWL,GAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK;AAAA,cAAA;AAAA,YAAA;AAAA,UAC3C;AAAA,QAAA;AAAA,MAAA;AAAA,MAGDpF,EAAQ,SAAS,MACfmR,IACCmE;AAAA,QACE,gBAAA5R;AAAA,UAAC2W;AAAA,UAAA;AAAA,YACC,KAAKG;AAAA,YACL,OAAOyB;AAAA,YACP,WAAWH;AAAA,YACX,OAAO;AAAA,cACL,KAAKpK,EAAe;AAAA,cACpB,MAAMA,EAAe;AAAA,cACrB,OAAOA,EAAe;AAAA,YAAA;AAAA,YAExB,WAAW3O,GAAI,YAAYqC,KAAA,gBAAAA,EAAY,QAAQ;AAAA,YAE9C,YAAgB,WAAW,IAC1B,gBAAA1B,EAACe,IAAA,EAAY,WAAW1B,GAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK,GACnD,UAAA0R,EAAA,CACH,IAEAS,EAAgB,IAAI,CAACD,MACnB,gBAAA5T;AAAA,cAACiT;AAAA,cAAA;AAAA,gBAEC,MAAK;AAAA,gBACL,aAAa,CAACxX,MAAMA,EAAE,eAAA;AAAA,gBACtB,SAAS,MAAMqd,EAAkBlF,EAAI,KAAK;AAAA,gBAC1C,WAAWvU,GAAI,UAAUqC,KAAA,gBAAAA,EAAY,MAAM;AAAA,gBAE1C,UAAAkS,EAAI;AAAA,cAAA;AAAA,cANAA,EAAI;AAAA,YAAA,CAQZ;AAAA,UAAA;AAAA,QAAA;AAAA,QAGLnG;AAAA,MAAA,IAGF,gBAAAzN;AAAA,QAACU;AAAA,QAAA;AAAA,UACC,KAAKoW;AAAA,UACL,OAAOyB;AAAA,UACP,WAAWH;AAAA,UACX,WAAW/Y,GAAI,YAAYqC,KAAA,gBAAAA,EAAY,QAAQ;AAAA,UAE9C,YAAgB,WAAW,IAC1B,gBAAA1B,EAACe,IAAA,EAAY,WAAW1B,GAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK,GACnD,UAAA0R,EAAA,CACH,IAEAS,EAAgB,IAAI,CAACD,MACnB,gBAAA5T;AAAA,YAACiT;AAAA,YAAA;AAAA,cAEC,MAAK;AAAA,cACL,aAAa,CAACxX,MAAMA,EAAE,eAAA;AAAA,cACtB,SAAS,MAAMqd,EAAkBlF,EAAI,KAAK;AAAA,cAC1C,WAAWvU,GAAI,UAAUqC,KAAA,gBAAAA,EAAY,MAAM;AAAA,cAE1C,UAAAkS,EAAI;AAAA,YAAA;AAAA,YANAA,EAAI;AAAA,UAAA,CAQZ;AAAA,QAAA;AAAA,MAAA;AAAA,IAEL,GAEN;AAAA,IACC9R,uBACExB,IAAA,EAAc,SAAAZ,GAAkB,WAAWL,GAAI,SAAS,GACtD,UAAAyC,EAAA,CACH;AAAA,EAAA,GAEJ;AAEJ,GCvQamX,KAST;AAAA,EACF,QAAQ;AAAA,IACN,YAAY;AAAA,MACV,QAAQ9Y,EAAMf,EAAO,OAAU,CAAC;AAAA,MAChC,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,QAAQ;AAAA,MACN,QAAQe,EAAMf,EAAO,OAAU,EAAE;AAAA,MACjC,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,OAAO;AAAA,MACL,QAAQA,EAAO;AAAA,MACf,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,aAAa;AAAA,MACX,QAAQe,EAAMf,EAAO,OAAU,EAAE;AAAA,MACjC,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,OAAOe,EAAMf,EAAO,WAAW,GAAG,EAAE;AAAA,EAAA;AAAA,EAEtC,OAAO;AAAA,IACL,YAAY;AAAA,MACV,QAAQe,EAAMf,EAAO,KAAQ,CAAC;AAAA,MAC9B,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,QAAQ;AAAA,MACN,QAAQe,EAAMf,EAAO,KAAQ,EAAE;AAAA,MAC/B,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,OAAO;AAAA,MACL,QAAQA,EAAO;AAAA,MACf,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,aAAa;AAAA,MACX,QAAQe,EAAMf,EAAO,KAAQ,EAAE;AAAA,MAC/B,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,OAAOe,EAAMf,EAAO,KAAQ,EAAE;AAAA,EAAA;AAElC,GChDa8Z,KAA0B,CAACxZ,MAC/BuZ,GAAuBvZ,CAAO,KAAKuZ,GAAuB,QCQtD7Y,KAAkBnB,EAAO;AAAA;AAAA;AAAA;AAAA,WAI3B,CAACjB,MAAWA,EAAM,aAAa,SAAS,aAAc;AAAA,GAGpDqC,KAAcpB,EAAOM,EAAU;AAAA;AAAA,GAI/B4Z,KAAiBla,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAW1B,CAACjB,MAAUkb,GAAwBlb,EAAM,QAAQ,EAAE,MAAM,MAAM;AAAA,sBACpD,CAACA,MAAUkb,GAAwBlb,EAAM,QAAQ,EAAE,OAAO,MAAM;AAAA,sBAChE,CAACA,MAAUkb,GAAwBlb,EAAM,QAAQ,EAAE,WAAW,MAAM;AAAA;AAAA;AAAA,aAG7E,CAACA,MAAUkb,GAAwBlb,EAAM,QAAQ,EAAE,YAAY,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAMrE,CAACA,MAAUkb,GAAwBlb,EAAM,QAAQ,EAAE,MAAM,QAAQ;AAAA,wBACtD,CAACA,MAAUkb,GAAwBlb,EAAM,QAAQ,EAAE,WAAW,QAAQ;AAAA,oBAC1E,CAACA,MAAUkb,GAAwBlb,EAAM,QAAQ,EAAE,OAAO,QAAQ;AAAA;AAAA;AAAA,eAGvE,CAACA,MAAUkb,GAAwBlb,EAAM,QAAQ,EAAE,YAAY,QAAQ;AAAA;AAAA;AAAA,GAKzEob,KAAena,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOtBqB,KAAgBrB,EAAOc,EAAY;AAAA;AAAA;AAAA,GAKnCsZ,KAAgBpa,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,WAKzB,CAACjB,MAAWA,EAAM,aAAa,UAAUoB,EAAO,MAAMA,EAAO,WAAW,CAAE;AAAA,GC7D/EC,KAAMC,EAAmB,UAAU,GAE5Bga,KAAW,CAAC;AAAA,EACvB,WAAAnb;AAAA,EACA,YAAAuD;AAAA,EACA,OAAA6X;AAAA,EACA,UAAA5X;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,KAAA7D;AAAA,EACA,OAAA8D;AAAA,EACA,SAAArC,IAAU;AAAA,EACV,MAAA8Z,IAAO;AAAA,EACP,GAAG7Z;AACL,MAAqB;AACnB,QAAM6U,IAAS,OAAOzS,KAAU,WAAWA,EAAM,SAAS,GACpD0X,IAAa3X,KAAWyX,MAAU;AAExC,SACE,gBAAA3Z,EAACQ,IAAA,EAAgB,WAAWf,GAAI,aAAalB,CAAS,GAAG,YAAY,EAAQyD,GAC1E,UAAA;AAAA,IAAAC,KACC,gBAAA7B,EAACK,MAAY,SAAAX,GAAkB,WAAWL,GAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK,GACrE,UAAAG,EAAA,CACH;AAAA,IAEF,gBAAA7B;AAAA,MAACmZ;AAAA,MAAA;AAAA,QACE,GAAGxZ;AAAA,QACJ,KAAA1B;AAAA,QACA,MAAAub;AAAA,QACA,OAAAzX;AAAA,QACA,UAAAJ;AAAA,QACA,UAAUjC;AAAA,QACV,WAAWL,GAAI,YAAYqC,KAAA,gBAAAA,EAAY,QAAQ;AAAA,MAAA;AAAA,IAAA;AAAA,IAEhD+X,uBACEL,IAAA,EACE,UAAA;AAAA,MAAAtX,uBACExB,IAAA,EAAc,SAAAZ,GAAkB,WAAWL,GAAI,SAAS,GACtD,UAAAyC,GACH;AAAA,MAEDyX,MAAU,UACT,gBAAA3Z,EAACyZ,IAAA,EAAc,UAAU3Z,GAAS,WAAWL,GAAI,SAAS,GACvD,UAAA;AAAA,QAAAmV;AAAA,QAAO;AAAA,QAAE+E;AAAA,MAAA,EAAA,CACZ;AAAA,IAAA,EAAA,CAEJ;AAAA,EAAA,GAEJ;AAEJ,GC3DaG,KAeT;AAAA,EACF,QAAQ;AAAA,IACN,OAAO;AAAA,MACL,YAAYvZ,EAAMf,EAAO,WAAW,GAAG,EAAE;AAAA,MACzC,mBAAmBA,EAAO;AAAA,MAC1B,QAAQe,EAAMf,EAAO,WAAW,GAAG,EAAE;AAAA,MACrC,eAAeA,EAAO;AAAA,IAAO;AAAA,IAE/B,OAAO;AAAA,MACL,YAAYA,EAAO;AAAA,MACnB,mBAAmBA,EAAO;AAAA,IAAO;AAAA,IAEnC,OAAOA,EAAO;AAAA,EAAO;AAAA,EAEvB,OAAO;AAAA,IACL,OAAO;AAAA,MACL,YAAYe,EAAMf,EAAO,KAAQ,EAAE;AAAA,MACnC,mBAAmBA,EAAO;AAAA,MAC1B,QAAQA,EAAO;AAAA,MACf,eAAeA,EAAO;AAAA,IAAK;AAAA,IAE7B,OAAO;AAAA,MACL,YAAYA,EAAO;AAAA,MACnB,mBAAmBA,EAAO;AAAA,IAAO;AAAA,IAEnC,OAAOA,EAAO;AAAA,EAAK;AAEvB,GC1Caua,KAAwB,CAACja,MAC7Bga,GAAqBha,CAAO,KAAKga,GAAqB,QCoBlDtZ,KAAkBnB,EAAO;AAAA;AAAA;AAAA;AAAA,YAI1B,CAACjB,MAAWA,EAAM,YAAY,gBAAgB,SAAU;AAAA,aACvD,CAACA,MAAWA,EAAM,YAAY,MAAM,CAAE;AAAA,GAGtCwC,KAAcvB,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQrB2a,KAAc3a,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAO5B,CAACjB,MACDA,EAAM,WACF2b,GAAsB3b,EAAM,QAAQ,EAAE,MAAM,gBAC5C2b,GAAsB3b,EAAM,QAAQ,EAAE,MAAM,MAAM;AAAA,sBACtC,CAACA,MACnBA,EAAM,WACF2b,GAAsB3b,EAAM,QAAQ,EAAE,MAAM,oBAC5C2b,GAAsB3b,EAAM,QAAQ,EAAE,MAAM,UAAU;AAAA;AAAA;AAAA;AAAA,GAMjD6b,KAAc5a,EAAO;AAAA;AAAA;AAAA,UAGxB,CAACjB,MAAWA,EAAM,WAAW,SAAS,KAAM;AAAA;AAAA;AAAA;AAAA,sBAIhC,CAACA,MACnBA,EAAM,WACF2b,GAAsB3b,EAAM,QAAQ,EAAE,MAAM,oBAC5C2b,GAAsB3b,EAAM,QAAQ,EAAE,MAAM,UAAU;AAAA;AAAA;AAAA,GAKjDqC,KAAcpB,EAAO;AAAA;AAAA;AAAA;AAAA,WAIvB,CAACjB,MAAU2b,GAAsB3b,EAAM,QAAQ,EAAE,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GC3E3DqB,KAAMC,EAAmB,QAAQ,GAE1Bwa,KAAS,CAAC;AAAA,EACrB,SAAA5T;AAAA,EACA,WAAA/H;AAAA,EACA,YAAAuD;AAAA,EACA,UAAAC;AAAA,EACA,OAAAE;AAAA,EACA,UAAAG;AAAA,EACA,KAAA/D;AAAA,EACA,SAAAyB,IAAU;AAAA,EACV,GAAGC;AACL,MAEI,gBAAAC;AAAA,EAACQ;AAAAA,EAAA;AAAA,IACC,WAAWf,GAAI,aAAalB,CAAS;AAAA,IACrC,WAAW,EAAQwD;AAAA,IACnB,UAAUjC;AAAA,IAEV,UAAA;AAAA,MAAA,gBAAAM;AAAA,QAACQ;AAAAA,QAAA;AAAA,UACE,GAAGb;AAAA,UACJ,KAAA1B;AAAA,UACA,MAAK;AAAA,UACL,WAAWoB,GAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK;AAAA,UACzC,SAAAwE;AAAA,UACA,UAAAvE;AAAA,UACA,UAAAK;AAAA,QAAA;AAAA,MAAA;AAAA,MAEF,gBAAAhC;AAAA,QAAC4Z;AAAA,QAAA;AAAA,UACC,WAAWva,GAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK;AAAA,UACzC,UAAUwE;AAAA,UACV,UAAUxG;AAAA,UAEV,UAAA,gBAAAM;AAAA,YAAC6Z;AAAA,YAAA;AAAA,cACC,WAAWxa,GAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK;AAAA,cACzC,UAAUwE;AAAA,cACV,UAAUxG;AAAA,YAAA;AAAA,UAAA;AAAA,QACZ;AAAA,MAAA;AAAA,MAEDmC,KACC,gBAAA7B,EAACK,IAAA,EAAY,WAAWhB,GAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK,GAAG,UAAUhC,GAChE,UAAAmC,EAAA,CACH;AAAA,IAAA;AAAA,EAAA;AAAA,GClCKkY,KAA+E;AAAA,EAC1F,QAAQ;AAAA,IACN,QAAQ;AAAA,MACN,QAAQ5Z,EAAMf,EAAO,OAAU,EAAE;AAAA,MACjC,OAAOe,EAAMf,EAAO,OAAU,EAAE;AAAA,MAChC,QAAQe,EAAMf,EAAO,OAAU,EAAE;AAAA,MACjC,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,eAAeA,EAAO;AAAA,IACtB,YAAY;AAAA,MACV,QAAQA,EAAO;AAAA,MACf,OAAOA,EAAO;AAAA,MACd,QAAQA,EAAO;AAAA,MACf,UAAUe,EAAMf,EAAO,OAAU,CAAC;AAAA,IAAA;AAAA,IAEpC,mBAAmBe,EAAMf,EAAO,OAAU,CAAC;AAAA,IAC3C,OAAO;AAAA,MACL,QAAQA,EAAO;AAAA,MACf,OAAOA,EAAO;AAAA,MACd,QAAQA,EAAO;AAAA,MACf,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,IAErC,aAAa;AAAA,MACX,QAAQe,EAAMf,EAAO,OAAU,EAAE;AAAA,MACjC,OAAOe,EAAMf,EAAO,OAAU,EAAE;AAAA,MAChC,QAAQe,EAAMf,EAAO,OAAU,EAAE;AAAA,MACjC,UAAUe,EAAMf,EAAO,OAAU,EAAE;AAAA,IAAA;AAAA,EACrC;AAAA,EAEF,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,QAAQA,EAAO;AAAA,MACf,OAAOA,EAAO;AAAA,MACd,QAAQA,EAAO;AAAA,MACf,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,eAAeA,EAAO;AAAA,IACtB,YAAY;AAAA,MACV,QAAQA,EAAO;AAAA,MACf,OAAOA,EAAO;AAAA,MACd,QAAQA,EAAO;AAAA,MACf,UAAUe,EAAMf,EAAO,KAAQ,CAAC;AAAA,IAAA;AAAA,IAElC,mBAAmBe,EAAMf,EAAO,KAAQ,CAAC;AAAA,IACzC,OAAO;AAAA,MACL,QAAQA,EAAO;AAAA,MACf,OAAOA,EAAO;AAAA,MACd,QAAQA,EAAO;AAAA,MACf,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,IAEnC,aAAa;AAAA,MACX,QAAQe,EAAMf,EAAO,KAAQ,EAAE;AAAA,MAC/B,OAAOe,EAAMf,EAAO,KAAQ,EAAE;AAAA,MAC9B,QAAQe,EAAMf,EAAO,KAAQ,EAAE;AAAA,MAC/B,UAAUe,EAAMf,EAAO,KAAQ,EAAE;AAAA,IAAA;AAAA,EACnC;AAEJ,GClEa4a,KAA4B,CAACta,MACjCqa,GAA0Bra,CAAO,KAAKqa,GAA0B,QCgB5D3Z,KAAkBnB,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAMhB,CAACjB,MAAU;AAC7B,QAAMwI,IAAewT,GAA0Bhc,EAAM,QAAQ;AAC7D,SAAIA,EAAM,YAAkBwI,EAAa,WAAW,WAChDxI,EAAM,WAAiBwI,EAAa,oBACjCA,EAAa,WAAW;AACjC,CAAC;AAAA;AAAA,MAEG,CAACxI,MAAU;AACX,QAAMwI,IAAewT,GAA0Bhc,EAAM,QAAQ;AAC7D,SAAIA,EAAM,YAAkBwI,EAAa,OAAO,WAC5CxI,EAAM,WAAiBwI,EAAa,gBACjCA,EAAa,OAAO;AAC7B,CAAC;AAAA;AAAA,YAEO,CAACxI,MAAWA,EAAM,YAAY,gBAAgB,SAAU;AAAA;AAAA;AAAA;AAAA,WAIzD,CAACA,MAAWA,EAAM,aAAa,SAAS,aAAc;AAAA;AAAA;AAAA;AAAA,oBAI7C,CAACA,MAAU;AACzB,QAAMwI,IAAewT,GAA0Bhc,EAAM,QAAQ;AAC7D,SAAIA,EAAM,WAAiBwI,EAAa,gBACjCA,EAAa,OAAO;AAC7B,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQQhG,KAAcvB,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAYrBwH,KAAgBxH,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOvBoB,KAAcpB,EAAO;AAAA;AAAA;AAAA;AAAA,WAIvB,CAACjB,MAAUgc,GAA0Bhc,EAAM,QAAQ,EAAE,MAAM,MAAM;AAAA;AAAA;AAAA,aAG/D,CAACA,MAAUgc,GAA0Bhc,EAAM,QAAQ,EAAE,MAAM,QAAQ;AAAA;AAAA,GAInE0I,KAAoBzH,EAAO;AAAA;AAAA;AAAA;AAAA,WAI7B,CAACjB,MAAUgc,GAA0Bhc,EAAM,QAAQ,EAAE,YAAY,MAAM;AAAA;AAAA;AAAA,aAGrE,CAACA,MAAUgc,GAA0Bhc,EAAM,QAAQ,EAAE,YAAY,QAAQ;AAAA;AAAA,GCtFhFqB,KAAMC,EAAmB,aAAa,GAE/B2a,KAAa,CAAC;AAAA,EACzB,SAAA/T;AAAA,EACA,WAAA/H;AAAA,EACA,YAAAuD;AAAA,EACA,aAAAkF;AAAA,EACA,UAAAjF;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,OAAAC;AAAA,EACA,UAAAG;AAAA,EACA,KAAA/D;AAAA,EACA,SAAAyB,IAAU;AAAA,EACV,GAAGC;AACL,MAEI,gBAAAC;AAAA,EAACQ;AAAAA,EAAA;AAAA,IACC,WAAWf,GAAI,aAAalB,CAAS;AAAA,IACrC,UAAU+H;AAAA,IACV,WAAW,EAAQvE;AAAA,IACnB,YAAYC;AAAA,IACZ,UAAUlC;AAAA,IACV,iBAAeiC;AAAA,IAEf,UAAA;AAAA,MAAA,gBAAA3B;AAAA,QAACQ;AAAA,QAAA;AAAA,UACE,GAAGb;AAAA,UACJ,KAAA1B;AAAA,UACA,MAAK;AAAA,UACL,SAAAiI;AAAA,UACA,UAAAvE;AAAA,UACA,UAAAK;AAAA,QAAA;AAAA,MAAA;AAAA,wBAEDyE,IAAA,EAAc,WAAWpH,GAAI,WAAWqC,KAAA,gBAAAA,EAAY,OAAO,GAC1D,UAAA;AAAA,QAAA,gBAAA1B,EAACK,IAAA,EAAY,WAAWhB,GAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK,GAAG,UAAUhC,GAChE,UAAAmC,EAAA,CACH;AAAA,QACC+E,KACC,gBAAA5G;AAAA,UAAC0G;AAAA,UAAA;AAAA,YACC,WAAWrH,GAAI,eAAeqC,KAAA,gBAAAA,EAAY,WAAW;AAAA,YACrD,UAAUhC;AAAA,YAET,UAAAkH;AAAA,UAAA;AAAA,QAAA;AAAA,MACH,GAEJ;AAAA,MACA,gBAAA5G;AAAA,QAAC8Z;AAAA,QAAA;AAAA,UACC,WAAWpY,KAAA,gBAAAA,EAAY;AAAA,UACvB,SAAAwE;AAAA,UACA,UAAAvE;AAAA,UACA,SAAAjC;AAAA,UACA,UAAU,MAAM;AAAA,UAAC;AAAA,UACjB,UAAU;AAAA,UACV,eAAW;AAAA,QAAA;AAAA,MAAA;AAAA,IACb;AAAA,EAAA;AAAA,GC9DOwa,KAAqB;AAAA,EAChC,OAAO;AAAA,IACL,OAAO9a,EAAO;AAAA,IACd,eAAee,EAAMf,EAAO,OAAU,EAAE;AAAA,EAAA;AAE5C,GCCagB,KAAkBnB,EAAO;AAAA;AAAA;AAAA;AAAA,GAMzBoB,KAAcpB,EAAO;AAAA;AAAA;AAAA;AAAA,WAIvB,CAACjB,MACRA,EAAM,YAAYkc,GAAmB,MAAM,gBAAgBA,GAAmB,MAAM,KAAK;AAAA;AAAA,GAIhFpT,KAAgB7H,EAAO;AAAA;AAAA;AAAA;AAAA,GClB9BI,KAAMC,EAAmB,cAAc,GAEhC6a,KAAc,CAAC;AAAA,EAC1B,WAAAhc;AAAA,EACA,YAAAuD;AAAA,EACA,UAAAC;AAAA,EACA,OAAAE;AAAA,EACA,UAAAG;AAAA,EACA,SAAA1F;AAAA,EACA,KAAA2B;AAAA,EACA,OAAA8D;AAAA,EACA,SAAArC,IAAU;AAAA,EACV,GAAGC;AACL,MAAwB;AACtB,QAAMqH,IAAe,CAACC,GAAqBf,MAAqB;AAC9D,IACElE,EADEkE,IACO,CAAC,GAAGnE,GAAOkF,CAAW,IAEtBlF,EAAM,OAAO,CAACmF,MAAMA,MAAMD,CAAW,CAFd;AAAA,EAIpC;AAEA,SACE,gBAAArH,EAACQ,MAAiB,GAAGT,GAAM,KAAA1B,GAAU,WAAWoB,GAAI,aAAalB,CAAS,GACvE,UAAA;AAAA,IAAA0D,KACC,gBAAA7B,EAACK,IAAA,EAAY,WAAWhB,GAAI,SAASqC,KAAA,gBAAAA,EAAY,KAAK,GAAG,WAAWC,GACjE,UAAAE,EAAA,CACH;AAAA,IAEF,gBAAA7B,EAAC8G,IAAA,EAAc,WAAWzH,GAAI,WAAWqC,KAAA,gBAAAA,EAAY,OAAO,GACzD,UAAApF,EAAQ,IAAI,CAAC6K,MACZ,gBAAAnH;AAAA,MAAC8Z;AAAA,MAAA;AAAA,QAEC,WAAWpY,KAAA,gBAAAA,EAAY;AAAA,QACvB,SAASK,EAAM,SAASoF,EAAO,KAAK;AAAA,QACpC,OAAOA,EAAO;AAAA,QACd,UAAAxF;AAAA,QACA,SAAAjC;AAAA,QACA,UAAU,CAACjE,MAAMuL,EAAaG,EAAO,OAAO1L,EAAE,OAAO,OAAO;AAAA,MAAA;AAAA,MANvD0L,EAAO;AAAA,IAAA,CAQf,EAAA,CACH;AAAA,EAAA,GACF;AAEJ;","x_google_ignoreList":[0,1,2,3]}