stp-ui-kit 0.0.51 → 0.0.52

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.
@@ -1 +1 @@
1
- {"version":3,"file":"stp-ui-kit.es.js","sources":["../node_modules/classnames/index.js","../src/components/Typography/Typography.tsx","../node_modules/dayjs/dayjs.min.js","../src/components/Banner/utils/utils.ts","../src/components/Banner/Banner.tsx","../src/components/Button/Button.tsx","../node_modules/lucide-react/dist/esm/shared/src/utils.js","../node_modules/lucide-react/dist/esm/defaultAttributes.js","../node_modules/lucide-react/dist/esm/Icon.js","../node_modules/lucide-react/dist/esm/createLucideIcon.js","../node_modules/lucide-react/dist/esm/icons/check-check.js","../node_modules/lucide-react/dist/esm/icons/chevron-down.js","../node_modules/lucide-react/dist/esm/icons/chevron-up.js","../node_modules/lucide-react/dist/esm/icons/circle-alert.js","../node_modules/lucide-react/dist/esm/icons/octagon-alert.js","../node_modules/lucide-react/dist/esm/icons/triangle-alert.js","../node_modules/lucide-react/dist/esm/icons/x.js","../src/components/InlineError/InlineError.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/NavigationItem/NavigationItem.tsx","../src/components/Collapse/Collapse.tsx","../src/components/CourseCollapse/CourseCollapse.tsx","../src/components/Dropdown/Dropdown.tsx","../src/components/Empty/Empty.tsx","../src/components/FormItem/FormItemContext.tsx","../src/components/FormItem/FormItem.tsx","../src/components/IconButton/IconButton.tsx","../src/components/Input/BaseInputWrapper.tsx","../src/components/Input/Input.tsx","../node_modules/sonner/dist/index.mjs","../src/components/Message/CustomToaster.tsx","../src/components/Message/Message.tsx","../src/components/Modal/Modal.tsx","../src/components/Modal/ModalApi.tsx","../src/components/PageHeader/PageHeader.tsx","../src/components/ProgressLine/ProgressLine.tsx","../src/components/RadioButton/RadioButton.tsx","../src/components/SectionHeader/SectionHeader.tsx","../src/components/Table/Cell.tsx","../node_modules/clsx/dist/clsx.mjs","../node_modules/tailwind-merge/dist/bundle-mjs.mjs","../src/lib/utils.ts","../src/components/ui/table.tsx","../src/components/Table/Table.tsx","../src/components/Tooltip/Tooltip.tsx","../src/components/TopBar/TopBar.tsx","../src/components/Input/TextArea.tsx"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import classNames from \"classnames\";\r\nimport { ReactNode } from \"react\";\r\nimport styles from \"./Typography.module.scss\";\r\n\r\nexport interface TypographyProps {\r\n variant?:\r\n | \"heading-xl\"\r\n | \"heading-lg\"\r\n | \"heading-md\"\r\n | \"heading-sm\"\r\n | \"heading-xs\"\r\n | \"body-lg\"\r\n | \"body-md\"\r\n | \"body-sm\";\r\n className?: string;\r\n children: ReactNode;\r\n weight?: \"regular\" | \"semibold\" | \"bold\" | \"medium\";\r\n}\r\n\r\nexport const Typography = ({\r\n variant = \"body-md\",\r\n className = \"\",\r\n children,\r\n weight,\r\n}: TypographyProps) => {\r\n const variantClass = styles[variant] || \"\";\r\n const weightClass = styles[weight || \"\"] || \"\";\r\n\r\n return (\r\n <span\r\n className={classNames(\r\n styles.typography,\r\n variantClass,\r\n weightClass,\r\n className,\r\n )}\r\n >\r\n {children}\r\n </span>\r\n );\r\n};\r\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","import dayjs from \"dayjs\";\r\n\r\nexport const formatDeadline = (date: string | Date): string => {\r\n // Use dayjs to parse the input date\r\n const day = dayjs(date);\r\n\r\n // Get the day suffix (e.g., \"st\", \"nd\", \"rd\", \"th\")\r\n const dayOfMonth = day.date();\r\n const suffix =\r\n dayOfMonth === 1 || dayOfMonth === 21 || dayOfMonth === 31\r\n ? \"st\"\r\n : dayOfMonth === 2 || dayOfMonth === 22\r\n ? \"nd\"\r\n : dayOfMonth === 3 || dayOfMonth === 23\r\n ? \"rd\"\r\n : \"th\";\r\n\r\n // Format the date in the desired format \"May 18th, 13:00\"\r\n const formattedDate = day.format(\"MMMM D, HH:mm\");\r\n\r\n // Replace the day with the day + suffix (convert dayOfMonth to string)\r\n const formattedDeadline = formattedDate.replace(dayOfMonth.toString(), `${dayOfMonth}${suffix}`);\r\n\r\n return `${formattedDeadline} (UTC +5)`;\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Typography } from \"../Typography/Typography\";\r\nimport styles from \"./Banner.module.scss\";\r\nimport { formatDeadline } from \"./utils/utils\";\r\n\r\ninterface BannerProps {\r\n color: string;\r\n title: string;\r\n bgPattern: string;\r\n bgPatternFinished?: string;\r\n buttonColor: string;\r\n deadline: string;\r\n onClick: () => void;\r\n}\r\n\r\nexport const Banner = ({\r\n color,\r\n title,\r\n bgPattern,\r\n deadline,\r\n bgPatternFinished,\r\n buttonColor,\r\n onClick,\r\n}: BannerProps) => {\r\n // const { t } = useTranslation(\"common\");\r\n const [isFinished, setIsFinished] = useState(false);\r\n const [timeLeft, setTimeLeft] = useState({\r\n days: 0,\r\n hours: 0,\r\n minutes: 0,\r\n seconds: 0,\r\n });\r\n\r\n useEffect(() => {\r\n const deadlineDate = new Date(deadline);\r\n const calculateTimeUnits = (milliseconds: number) => ({\r\n days: Math.floor(milliseconds / (1000 * 60 * 60 * 24)),\r\n hours: Math.floor((milliseconds / (1000 * 60 * 60)) % 24),\r\n minutes: Math.floor((milliseconds / (1000 * 60)) % 60),\r\n seconds: Math.floor((milliseconds / 1000) % 60),\r\n });\r\n\r\n const updateCountdown = () => {\r\n const now = Date.now();\r\n const remaining = deadlineDate.getTime() - now;\r\n\r\n if (remaining <= 0) {\r\n setIsFinished(true);\r\n setTimeLeft({ days: 0, hours: 0, minutes: 0, seconds: 0 });\r\n } else {\r\n setTimeLeft(calculateTimeUnits(remaining));\r\n }\r\n };\r\n\r\n updateCountdown();\r\n const interval = setInterval(updateCountdown, 1000);\r\n return () => clearInterval(interval);\r\n }, [deadline]);\r\n\r\n const renderTimerCell = (value: number, label: string) => (\r\n <div className={styles.timerCell}>\r\n <Typography\r\n variant='heading-lg'\r\n className={styles.timerCount}\r\n >\r\n {value}\r\n </Typography>\r\n {label}\r\n </div>\r\n );\r\n\r\n return (\r\n <div\r\n className={styles.container}\r\n style={{ backgroundColor: color }}\r\n >\r\n <div className={styles.content}>\r\n <div className={styles.title}>\r\n <Typography variant='heading-md'>{title}</Typography>\r\n <Typography variant='body-md'>{formatDeadline(deadline)}</Typography>\r\n </div>\r\n <div className={styles.timer}>\r\n {renderTimerCell(timeLeft.days, \"Days\")}\r\n {renderTimerCell(timeLeft.hours, \"Hours\")}\r\n {renderTimerCell(timeLeft.minutes, \"Minutes\")}\r\n {renderTimerCell(timeLeft.seconds, \"Seconds\")}\r\n </div>\r\n </div>\r\n <div\r\n className={styles.pattern}\r\n style={\r\n {\r\n \"--pattern-color\": color,\r\n \"--pattern-url\": `url(${\r\n isFinished ? (bgPatternFinished ?? bgPattern) : bgPattern\r\n })`,\r\n } as React.CSSProperties\r\n }\r\n >\r\n {isFinished && (\r\n <button\r\n className={styles.button}\r\n style={{ backgroundColor: buttonColor }}\r\n onClick={onClick}\r\n >\r\n <Typography variant='heading-md'>{\"Start\"}</Typography>\r\n </button>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport { ButtonHTMLAttributes, ReactNode } from \"react\";\r\nimport styles from \"./Button.module.scss\";\r\n\r\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\r\n state?: \"default\" | \"primary\" | \"tertiary\" | \"plain\";\r\n size?: \"small\" | \"medium\" | \"large\";\r\n selected?: boolean;\r\n children: ReactNode;\r\n className?: string;\r\n onClick?: () => void;\r\n}\r\n\r\nexport const Button = ({\r\n state = \"default\",\r\n size = \"medium\",\r\n selected = false,\r\n disabled = false,\r\n children,\r\n onClick = () => {},\r\n className = \"\",\r\n ...rest\r\n}: ButtonProps) => {\r\n const buttonClass = classNames(\r\n styles.btn,\r\n styles[state],\r\n styles[size],\r\n {\r\n [styles[`${state}-selected`]]: selected,\r\n },\r\n className,\r\n );\r\n\r\n return (\r\n <button\r\n className={buttonClass}\r\n onClick={onClick}\r\n disabled={disabled}\r\n {...rest}\r\n >\r\n {children}\r\n </button>\r\n );\r\n};\r\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst toCamelCase = (string) => string.replace(\n /^([A-Z])|[\\s-_]+(\\w)/g,\n (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()\n);\nconst toPascalCase = (string) => {\n const camelCase = toCamelCase(string);\n return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);\n};\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n}).join(\" \").trim();\nconst hasA11yProp = (props) => {\n for (const prop in props) {\n if (prop.startsWith(\"aria-\") || prop === \"role\" || prop === \"title\") {\n return true;\n }\n }\n};\n\nexport { hasA11yProp, mergeClasses, toCamelCase, toKebabCase, toPascalCase };\n//# sourceMappingURL=utils.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { mergeClasses, hasA11yProp } from './shared/src/utils.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...!children && !hasA11yProp(rest) && { \"aria-hidden\": \"true\" },\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n )\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses, toKebabCase, toPascalCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className\n ),\n ...props\n })\n );\n Component.displayName = toPascalCase(iconName);\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M18 6 7 17l-5-5\", key: \"116fxf\" }],\n [\"path\", { d: \"m22 10-7.5 7.5L13 16\", key: \"ke71qq\" }]\n];\nconst CheckCheck = createLucideIcon(\"check-check\", __iconNode);\n\nexport { __iconNode, CheckCheck as default };\n//# sourceMappingURL=check-check.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"m6 9 6 6 6-6\", key: \"qrunsl\" }]];\nconst ChevronDown = createLucideIcon(\"chevron-down\", __iconNode);\n\nexport { __iconNode, ChevronDown as default };\n//# sourceMappingURL=chevron-down.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"m18 15-6-6-6 6\", key: \"153udz\" }]];\nconst ChevronUp = createLucideIcon(\"chevron-up\", __iconNode);\n\nexport { __iconNode, ChevronUp as default };\n//# sourceMappingURL=chevron-up.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"8\", y2: \"12\", key: \"1pkeuh\" }],\n [\"line\", { x1: \"12\", x2: \"12.01\", y1: \"16\", y2: \"16\", key: \"4dfq90\" }]\n];\nconst CircleAlert = createLucideIcon(\"circle-alert\", __iconNode);\n\nexport { __iconNode, CircleAlert as default };\n//# sourceMappingURL=circle-alert.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 16h.01\", key: \"1drbdi\" }],\n [\"path\", { d: \"M12 8v4\", key: \"1got3b\" }],\n [\n \"path\",\n {\n d: \"M15.312 2a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586l-4.688-4.688A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2z\",\n key: \"1fd625\"\n }\n ]\n];\nconst OctagonAlert = createLucideIcon(\"octagon-alert\", __iconNode);\n\nexport { __iconNode, OctagonAlert as default };\n//# sourceMappingURL=octagon-alert.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\",\n key: \"wmoenq\"\n }\n ],\n [\"path\", { d: \"M12 9v4\", key: \"juzpu7\" }],\n [\"path\", { d: \"M12 17h.01\", key: \"p32p05\" }]\n];\nconst TriangleAlert = createLucideIcon(\"triangle-alert\", __iconNode);\n\nexport { __iconNode, TriangleAlert as default };\n//# sourceMappingURL=triangle-alert.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\n [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\n];\nconst X = createLucideIcon(\"x\", __iconNode);\n\nexport { __iconNode, X as default };\n//# sourceMappingURL=x.js.map\n","import classNames from \"classnames\";\r\nimport { CircleAlert } from \"lucide-react\";\r\nimport { PropsWithChildren } from \"react\";\r\nimport styles from \"./InlineError.module.scss\";\r\n\r\nexport const InlineError = ({ children }: PropsWithChildren) => {\r\n return (\r\n <div className={classNames(styles.message)}>\r\n <CircleAlert\r\n className={styles.critical}\r\n size={20}\r\n />\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport React, { useEffect, useRef } from \"react\";\r\nimport { InlineError } from \"../InlineError/InlineError\";\r\nimport styles from \"./Checkbox.module.scss\";\r\n\r\ninterface CheckboxProps extends React.InputHTMLAttributes<HTMLInputElement> {\r\n label?: string;\r\n error?: string;\r\n helperText?: string;\r\n indeterminate?: boolean;\r\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\r\n}\r\n\r\nexport const Checkbox: React.FC<CheckboxProps> = ({\r\n label,\r\n error,\r\n helperText,\r\n disabled,\r\n className,\r\n indeterminate,\r\n onChange,\r\n ...rest\r\n}) => {\r\n const ref = useRef<HTMLInputElement>(null);\r\n\r\n useEffect(() => {\r\n if (ref.current) {\r\n ref.current.indeterminate = !!indeterminate;\r\n }\r\n }, [indeterminate]);\r\n\r\n const handleLabelClick = () => {\r\n if (ref.current && !disabled) {\r\n const event = {\r\n target: ref.current,\r\n } as React.ChangeEvent<HTMLInputElement>;\r\n onChange?.(event);\r\n }\r\n };\r\n\r\n return (\r\n <div className={styles.formItem}>\r\n <input\r\n ref={ref}\r\n type='checkbox'\r\n className={classNames(className, styles.checkbox, {\r\n [styles.error]: !!error,\r\n })}\r\n disabled={disabled}\r\n onChange={onChange}\r\n {...rest}\r\n />\r\n <div className={styles.labelContainer}>\r\n <div\r\n className={classNames(styles.label, {\r\n [styles.disabled]: disabled,\r\n })}\r\n onClick={handleLabelClick}\r\n >\r\n {label}\r\n </div>\r\n {error && (\r\n <div\r\n className={classNames(styles.message, {\r\n [styles.error]: !!error,\r\n })}\r\n >\r\n {error ? <InlineError>{error}</InlineError> : helperText}\r\n </div>\r\n )}\r\n {helperText && !error && (\r\n <div\r\n className={classNames(styles.message, {\r\n [styles.error]: !!error,\r\n })}\r\n >\r\n {helperText}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport React from \"react\";\r\nimport { Typography } from \"../Typography/Typography\";\r\nimport styles from \"./NavigationItem.module.scss\";\r\n\r\nexport interface NavigationItemProps {\r\n icon?: React.ReactNode;\r\n label: string;\r\n secondaryIcon?: React.ReactNode;\r\n collapsed?: boolean;\r\n active?: boolean;\r\n isParentNode?: boolean;\r\n onClick?: () => void;\r\n className?: string;\r\n}\r\n\r\nexport const NavigationItem = ({\r\n icon,\r\n label,\r\n secondaryIcon,\r\n collapsed = false,\r\n active = false,\r\n isParentNode = false,\r\n onClick,\r\n className,\r\n}: NavigationItemProps) => {\r\n return (\r\n <div\r\n className={classNames(\r\n styles.navigationItem,\r\n active && styles.active,\r\n className,\r\n )}\r\n onClick={onClick}\r\n >\r\n <div className={styles.container}>\r\n <div className={styles.IconContainer}>\r\n {icon}\r\n {isParentNode && (\r\n <img\r\n src='/assets/icons/ParentLine.svg'\r\n alt='Arrow Indicator'\r\n className={styles.ParentLine}\r\n />\r\n )}\r\n </div>\r\n\r\n <Typography\r\n variant='body-md'\r\n className={classNames(collapsed && styles.collapsed, styles.label)}\r\n >\r\n {label}\r\n </Typography>\r\n </div>\r\n {secondaryIcon && (\r\n <div\r\n className={classNames(\r\n styles.secondaryIcon,\r\n collapsed && styles.collapsed,\r\n )}\r\n >\r\n {secondaryIcon}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport { ChevronDown, ChevronUp } from \"lucide-react\";\r\nimport { useState } from \"react\";\r\nimport { NavigationItem } from \"../NavigationItem/NavigationItem\";\r\nimport styles from \"./Collapse.module.scss\";\r\n\r\nexport interface NavItem {\r\n id: string;\r\n name: string;\r\n icon?: React.ReactNode;\r\n children?: NavItem[];\r\n}\r\n\r\nexport interface CollapseProps {\r\n activeItemId: string;\r\n onChange: (item: NavItem) => void;\r\n item: NavItem;\r\n}\r\n\r\nexport const Collapse = ({ activeItemId, onChange, item }: CollapseProps) => {\r\n const sideArrowIndex = item.children?.findIndex(\r\n (child) => child.id === activeItemId,\r\n );\r\n\r\n const [isOpen, setIsOpen] = useState(sideArrowIndex !== -1);\r\n\r\n const handleToggle = () => {\r\n if (item.children) {\r\n setIsOpen(!isOpen);\r\n }\r\n onChange(item);\r\n };\r\n\r\n return (\r\n <div>\r\n <NavigationItem\r\n icon={item.icon}\r\n label={item.name}\r\n secondaryIcon={\r\n isOpen ? <ChevronUp size={20} /> : <ChevronDown size={20} />\r\n }\r\n onClick={handleToggle}\r\n isParentNode={isOpen && sideArrowIndex !== -1}\r\n active={sideArrowIndex !== -1 && !isOpen}\r\n className={classNames(isOpen && sideArrowIndex === -1 && styles.isOpen)}\r\n />\r\n <div className={styles.childContainer}>\r\n {isOpen &&\r\n item.children?.map((subRoute, index) => (\r\n <div\r\n key={subRoute.id}\r\n className={classNames(\r\n styles.ArrowContainer,\r\n activeItemId === subRoute.id ? styles.active : \"\",\r\n )}\r\n onClick={() => onChange(subRoute)}\r\n >\r\n <div className={styles.arrowBlock}>\r\n {sideArrowIndex === index && (\r\n <img\r\n src='/assets/icons/ArrowLine.svg'\r\n alt='Arrow Indicator'\r\n />\r\n )}\r\n {index < (sideArrowIndex ?? -1) && (\r\n <img\r\n src='/assets/icons/SideLine.svg'\r\n alt='Side Indicator'\r\n />\r\n )}\r\n </div>\r\n <NavigationItem\r\n icon={subRoute.icon}\r\n label={subRoute.name}\r\n active={subRoute.id === activeItemId}\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport { CheckCheck, ChevronDown, ChevronUp } from \"lucide-react\";\r\nimport { useState } from \"react\";\r\nimport { NavigationItem } from \"../NavigationItem/NavigationItem\";\r\nimport styles from \"./CourseCollapse.module.scss\";\r\n\r\nexport interface CourseNavItem {\r\n id: string;\r\n name: string;\r\n icon?: React.ReactNode;\r\n completed?: boolean;\r\n children?: CourseNavItem[];\r\n}\r\n\r\nexport interface CourseCollapseProps {\r\n activeItemId: string;\r\n onChange: (item: CourseNavItem) => void;\r\n item: CourseNavItem;\r\n}\r\n\r\nexport const CourseCollapse = ({\r\n activeItemId,\r\n onChange,\r\n item,\r\n}: CourseCollapseProps) => {\r\n const sideArrowIndex = item.children?.findIndex(\r\n (child) => child.id === activeItemId,\r\n );\r\n\r\n const [isOpen, setIsOpen] = useState(sideArrowIndex !== -1);\r\n\r\n const handleToggle = () => {\r\n if (item.children) {\r\n setIsOpen(!isOpen);\r\n }\r\n onChange(item);\r\n };\r\n\r\n return (\r\n <div>\r\n <NavigationItem\r\n icon={item.icon}\r\n label={item.name}\r\n secondaryIcon={\r\n isOpen ? <ChevronUp size={20} /> : <ChevronDown size={20} />\r\n }\r\n onClick={handleToggle}\r\n isParentNode={isOpen && sideArrowIndex !== -1}\r\n active={sideArrowIndex !== -1 && !isOpen}\r\n className={classNames(isOpen && sideArrowIndex === -1 && styles.isOpen)}\r\n />\r\n <div className={styles.childContainer}>\r\n {isOpen &&\r\n item.children?.map((subRoute, index) => (\r\n <div\r\n key={subRoute.id}\r\n className={classNames(\r\n styles.ArrowContainer,\r\n activeItemId === subRoute.id ? styles.active : \"\",\r\n )}\r\n onClick={() => onChange(subRoute)}\r\n >\r\n <div className={styles.arrowBlock}>\r\n {sideArrowIndex === index && (\r\n <img\r\n src='/assets/icons/ArrowLine.svg'\r\n alt='Arrow Indicator'\r\n />\r\n )}\r\n {index < (sideArrowIndex ?? -1) && (\r\n <img\r\n src='/assets/icons/SideLine.svg'\r\n alt='Side Indicator'\r\n />\r\n )}\r\n </div>\r\n <NavigationItem\r\n icon={subRoute.icon}\r\n label={subRoute.name}\r\n key={subRoute.id}\r\n active={subRoute.id === activeItemId}\r\n secondaryIcon={\r\n subRoute.completed && (\r\n <CheckCheck\r\n size={20}\r\n className={styles.iconCheck}\r\n />\r\n )\r\n }\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { InlineError } from \"../InlineError/InlineError\";\r\nimport styles from \"./Dropdown.module.scss\";\r\n\r\ninterface DropdownOption {\r\n label: string;\r\n value: string | number;\r\n disabled?: boolean;\r\n}\r\n\r\ninterface DropdownProps {\r\n label?: string;\r\n error?: string;\r\n helperText?: string;\r\n disabled?: boolean;\r\n readOnly?: boolean;\r\n className?: string;\r\n placeholder?: string;\r\n value?: string | number;\r\n options: DropdownOption[];\r\n onChange?: (value: string | number) => void;\r\n onFocus?: () => void;\r\n onBlur?: () => void;\r\n}\r\n\r\nexport const Dropdown = React.forwardRef<HTMLDivElement, DropdownProps>(\r\n (\r\n {\r\n label,\r\n error,\r\n helperText,\r\n disabled,\r\n readOnly,\r\n className,\r\n placeholder = \"Select an option\",\r\n value,\r\n options,\r\n onChange,\r\n onFocus,\r\n onBlur,\r\n },\r\n ref,\r\n ) => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [focusedIndex, setFocusedIndex] = useState(-1);\r\n const dropdownRef = useRef<HTMLDivElement>(null);\r\n const optionsRef = useRef<HTMLDivElement[]>([]);\r\n\r\n const selectedOption = options.find((option) => option.value === value);\r\n\r\n const handleToggle = () => {\r\n if (disabled || readOnly) return;\r\n\r\n if (!isOpen) {\r\n setIsOpen(true);\r\n setFocusedIndex(selectedOption ? options.indexOf(selectedOption) : -1);\r\n onFocus?.();\r\n } else {\r\n setIsOpen(false);\r\n setFocusedIndex(-1);\r\n onBlur?.();\r\n }\r\n };\r\n\r\n const handleOptionSelect = (option: DropdownOption) => {\r\n if (option.disabled) return;\r\n\r\n onChange?.(option.value);\r\n setIsOpen(false);\r\n setFocusedIndex(-1);\r\n onBlur?.();\r\n };\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent) => {\r\n if (disabled || readOnly) return;\r\n\r\n switch (e.key) {\r\n case \"Enter\":\r\n case \" \":\r\n e.preventDefault();\r\n if (!isOpen) {\r\n setIsOpen(true);\r\n setFocusedIndex(\r\n selectedOption ? options.indexOf(selectedOption) : 0,\r\n );\r\n onFocus?.();\r\n } else if (focusedIndex >= 0) {\r\n const option = options[focusedIndex];\r\n if (!option.disabled) {\r\n handleOptionSelect(option);\r\n }\r\n }\r\n break;\r\n case \"Escape\":\r\n if (isOpen) {\r\n setIsOpen(false);\r\n setFocusedIndex(-1);\r\n onBlur?.();\r\n }\r\n break;\r\n case \"ArrowDown\":\r\n e.preventDefault();\r\n if (!isOpen) {\r\n setIsOpen(true);\r\n setFocusedIndex(0);\r\n onFocus?.();\r\n } else {\r\n const nextIndex =\r\n focusedIndex < options.length - 1 ? focusedIndex + 1 : 0;\r\n setFocusedIndex(nextIndex);\r\n }\r\n break;\r\n case \"ArrowUp\":\r\n e.preventDefault();\r\n if (!isOpen) {\r\n setIsOpen(true);\r\n setFocusedIndex(options.length - 1);\r\n onFocus?.();\r\n } else {\r\n const prevIndex =\r\n focusedIndex > 0 ? focusedIndex - 1 : options.length - 1;\r\n setFocusedIndex(prevIndex);\r\n }\r\n break;\r\n }\r\n };\r\n\r\n // Close dropdown when clicking outside\r\n useEffect(() => {\r\n const handleClickOutside = (event: MouseEvent) => {\r\n if (\r\n dropdownRef.current &&\r\n !dropdownRef.current.contains(event.target as Node)\r\n ) {\r\n setIsOpen(false);\r\n setFocusedIndex(-1);\r\n onBlur?.();\r\n }\r\n };\r\n\r\n if (isOpen) {\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () =>\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n }\r\n }, [isOpen, onBlur]);\r\n\r\n // Scroll focused option into view\r\n useEffect(() => {\r\n if (focusedIndex >= 0 && optionsRef.current[focusedIndex]) {\r\n optionsRef.current[focusedIndex].scrollIntoView({\r\n block: \"nearest\",\r\n });\r\n }\r\n }, [focusedIndex]);\r\n\r\n return (\r\n <div className={styles.formItem}>\r\n {label && (\r\n <label\r\n className={classNames(styles.label, {\r\n [styles.disabled]: disabled,\r\n [styles.readOnly]: readOnly,\r\n })}\r\n >\r\n {label}\r\n </label>\r\n )}\r\n <div\r\n ref={dropdownRef}\r\n className={classNames(styles.inputContainer, className, {\r\n [styles.disabled]: disabled,\r\n [styles.readOnly]: readOnly,\r\n [styles.error]: !!error,\r\n [styles.open]: isOpen,\r\n })}\r\n >\r\n <div\r\n ref={ref}\r\n className={classNames(styles.trigger)}\r\n tabIndex={disabled || readOnly ? -1 : 0}\r\n onClick={handleToggle}\r\n onKeyDown={handleKeyDown}\r\n role='combobox'\r\n aria-expanded={isOpen}\r\n aria-haspopup='listbox'\r\n aria-label={label}\r\n >\r\n <span className={styles.value}>\r\n {selectedOption ? selectedOption.label : placeholder}\r\n </span>\r\n <svg\r\n className={classNames(styles.chevron, {\r\n [styles.rotated]: isOpen,\r\n })}\r\n width='16'\r\n height='16'\r\n viewBox='0 0 16 16'\r\n fill='none'\r\n xmlns='http://www.w3.org/2000/svg'\r\n >\r\n <path\r\n d='M4 6L8 10L12 6'\r\n stroke='currentColor'\r\n strokeWidth='2'\r\n strokeLinecap='round'\r\n strokeLinejoin='round'\r\n />\r\n </svg>\r\n </div>\r\n\r\n {isOpen && (\r\n <div\r\n className={styles.options}\r\n role='listbox'\r\n >\r\n <div className={styles.container}>\r\n {options.map((option, index) => (\r\n <div\r\n key={option.value}\r\n ref={(el) => (optionsRef.current[index] = el!)}\r\n className={classNames(styles.option, {\r\n [styles.selected]: option.value === value,\r\n [styles.focused]: index === focusedIndex,\r\n [styles.disabled]: option.disabled,\r\n })}\r\n onClick={() => handleOptionSelect(option)}\r\n role='option'\r\n aria-selected={option.value === value}\r\n >\r\n {option.label}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n <div\r\n className={classNames(styles.message, {\r\n [styles.error]: !!error,\r\n })}\r\n >\r\n {error ? <InlineError>{error}</InlineError> : helperText}\r\n </div>\r\n </div>\r\n );\r\n },\r\n);\r\n\r\nDropdown.displayName = \"Dropdown\";\r\nexport type { DropdownProps, DropdownOption };\r\n","import classNames from \"classnames\";\r\nimport { ReactNode } from \"react\";\r\nimport { Button } from \"../Button/Button\";\r\nimport { Typography } from \"../Typography/Typography\";\r\nimport styles from \"./Empty.module.scss\";\r\n\r\nexport interface EmptyProps {\r\n children: ReactNode;\r\n className?: string;\r\n}\r\n\r\nconst EmptyBase = ({ children, className = \"\" }: EmptyProps) => (\r\n <div className={`${styles.emptyContainer} ${className}`}>{children}</div>\r\n);\r\n\r\nexport interface EmptyTextProps {\r\n children: ReactNode;\r\n className?: string;\r\n}\r\n\r\nconst EmptyTitle = ({ children, className = \"\" }: EmptyTextProps) => (\r\n <>\r\n <Typography\r\n className={classNames(className, styles.desktop)}\r\n variant={\"heading-md\"}\r\n >\r\n {children}\r\n </Typography>\r\n <Typography\r\n className={classNames(className, styles.mobile)}\r\n variant={\"heading-sm\"}\r\n >\r\n {children}\r\n </Typography>\r\n </>\r\n);\r\n\r\nconst EmptyContext = ({ children, className = \"\" }: EmptyTextProps) => (\r\n <div className={classNames(className)}>{children}</div>\r\n);\r\n\r\nconst EmptyContent = ({ children, className = \"\" }: EmptyTextProps) => (\r\n <div className={`${styles.content} ${className}`}>{children}</div>\r\n);\r\n\r\nconst EmptyButtonContent = ({ children, className = \"\" }: EmptyTextProps) => (\r\n <div className={`${styles.buttonContent} ${className}`}>{children}</div>\r\n);\r\n\r\nexport interface EmptyButtonProps {\r\n children: ReactNode;\r\n onClick?: () => void;\r\n className?: string;\r\n}\r\n\r\nconst EmptyPrimaryButton = ({\r\n children,\r\n onClick,\r\n className = \"\",\r\n}: EmptyButtonProps) => (\r\n <Button\r\n state={\"primary\"}\r\n size='medium'\r\n className={`${styles.buttons} ${className}`}\r\n onClick={onClick}\r\n >\r\n {children}\r\n </Button>\r\n);\r\n\r\nconst EmptySecondaryButton = ({\r\n children,\r\n onClick,\r\n className = \"\",\r\n}: EmptyButtonProps) => (\r\n <Button\r\n size='medium'\r\n className={`${styles.buttons} ${className}`}\r\n onClick={onClick}\r\n >\r\n {children}\r\n </Button>\r\n);\r\n\r\ninterface EmptyImageProps {\r\n src: string;\r\n className?: string;\r\n alt?: string;\r\n}\r\n\r\nconst EmptyImage = ({\r\n src,\r\n className = \"\",\r\n alt = \"Empty state image\",\r\n}: EmptyImageProps) => (\r\n <img\r\n className={classNames(styles.imageContent, className)}\r\n src={src}\r\n alt={alt}\r\n />\r\n);\r\n\r\ninterface EmptyType extends React.FC<EmptyProps> {\r\n Title: typeof EmptyTitle;\r\n Context: typeof EmptyContext;\r\n Content: typeof EmptyContent;\r\n ButtonContent: typeof EmptyButtonContent;\r\n PrimaryButton: typeof EmptyPrimaryButton;\r\n SecondaryButton: typeof EmptySecondaryButton;\r\n Image: typeof EmptyImage;\r\n}\r\n\r\nconst Empty = EmptyBase as EmptyType;\r\n\r\nEmpty.Title = EmptyTitle;\r\nEmpty.Context = EmptyContext;\r\nEmpty.Content = EmptyContent;\r\nEmpty.ButtonContent = EmptyButtonContent;\r\nEmpty.PrimaryButton = EmptyPrimaryButton;\r\nEmpty.SecondaryButton = EmptySecondaryButton;\r\nEmpty.Image = EmptyImage;\r\n\r\nexport { Empty };\r\n","import { createContext, useContext } from \"react\";\r\n\r\nexport type FormItemState = \"default\" | \"error\" | \"disabled\" | \"readOnly\";\r\n\r\nexport interface FormItemContextValue {\r\n state: FormItemState;\r\n}\r\n\r\nexport const FormItemContext = createContext<FormItemContextValue>({\r\n state: \"default\",\r\n});\r\n\r\nexport const useFormItem = () => useContext(FormItemContext);\r\n","// FormItem.tsx\r\nimport classNames from \"classnames\";\r\nimport { CircleAlert } from \"lucide-react\";\r\nimport React, { PropsWithChildren, ReactNode } from \"react\";\r\nimport styles from \"./FormItem.module.scss\";\r\nimport { FormItemContext, useFormItem } from \"./FormItemContext\";\r\n\r\n// Тип состояния формы\r\ntype FormState = \"default\" | \"error\" | \"disabled\" | \"readOnly\";\r\n\r\n// Props для FormItem\r\ninterface FormItemProps {\r\n children: ReactNode;\r\n error?: boolean;\r\n disabled?: boolean;\r\n readOnly?: boolean;\r\n}\r\n\r\n// FormItem Component\r\nconst FormItem = ({ children, error, disabled, readOnly }: FormItemProps) => {\r\n let state: FormState = \"default\";\r\n\r\n if (error) state = \"error\";\r\n else if (disabled) state = \"disabled\";\r\n else if (readOnly) state = \"readOnly\";\r\n\r\n return (\r\n <FormItemContext.Provider value={{ state }}>\r\n <div className={styles.formItem}>{children}</div>\r\n </FormItemContext.Provider>\r\n );\r\n};\r\n\r\n// Label Component\r\nconst Label = ({ children }: PropsWithChildren) => {\r\n const { state } = useFormItem();\r\n\r\n return (\r\n <label\r\n className={classNames(\r\n styles.label,\r\n state === \"disabled\" && styles.disabled,\r\n state === \"readOnly\" && styles.readOnly,\r\n )}\r\n >\r\n {children}\r\n </label>\r\n );\r\n};\r\n\r\n// Props для Input\r\ninterface InputProps extends React.ComponentPropsWithoutRef<\"input\"> {\r\n as?: React.ElementType;\r\n className?: string;\r\n}\r\n\r\n// Input Component (Flexible)\r\nconst Input = React.forwardRef<HTMLElement, InputProps>(\r\n ({ as: Component = \"input\", className, ...props }, ref) => {\r\n const { state } = useFormItem();\r\n\r\n return (\r\n <Component\r\n ref={ref}\r\n className={classNames(styles.input, styles[state], className)}\r\n disabled={state === \"disabled\"}\r\n readOnly={state === \"readOnly\"}\r\n {...props}\r\n />\r\n );\r\n },\r\n);\r\nInput.displayName = \"FormItem.Input\";\r\n\r\n// Message Component\r\nconst Message = ({ children }: PropsWithChildren) => {\r\n const { state } = useFormItem();\r\n if (!children) return null;\r\n\r\n return (\r\n <div\r\n className={classNames(\r\n styles.message,\r\n state === \"error\" ? styles.error : styles.default,\r\n )}\r\n >\r\n {state === \"error\" && <CircleAlert className={styles.critical} />}\r\n {children}\r\n </div>\r\n );\r\n};\r\n\r\n// Combine exports\r\nFormItem.Label = Label;\r\nFormItem.Input = Input;\r\nFormItem.Message = Message;\r\n\r\nexport { FormItem };\r\n","import classNames from \"classnames\";\r\nimport React from \"react\";\r\nimport styles from \"./IconButton.module.scss\";\r\n\r\nexport interface IconButtonProps\r\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n state?: \"default\" | \"primary\" | \"tertiary\" | \"plain\";\r\n size?: \"small\" | \"medium\" | \"large\";\r\n selected?: boolean;\r\n children: React.ReactNode;\r\n className?: string;\r\n onClick?: () => void;\r\n}\r\n\r\nexport const IconButton = ({\r\n state = \"default\",\r\n size = \"medium\",\r\n selected = false,\r\n disabled = false,\r\n children,\r\n onClick = () => {},\r\n className = \"\",\r\n ...rest\r\n}: IconButtonProps) => {\r\n const buttonClass = classNames(\r\n styles.btn,\r\n styles[state],\r\n styles[size],\r\n {\r\n [styles[`${state}-selected`]]: selected,\r\n },\r\n className,\r\n );\r\n\r\n return (\r\n <button\r\n className={buttonClass}\r\n onClick={onClick}\r\n disabled={disabled}\r\n {...rest}\r\n >\r\n {children}\r\n </button>\r\n );\r\n};\r\n\r\nexport default IconButton;\r\n","import classNames from \"classnames\";\r\nimport React from \"react\";\r\nimport { InlineError } from \"../InlineError/InlineError\";\r\nimport styles from \"./Input.module.scss\";\r\n\r\ninterface BaseInputWrapperProps {\r\n label?: string;\r\n error?: string;\r\n helperText?: string;\r\n disabled?: boolean;\r\n readOnly?: boolean;\r\n prefix?: React.ReactNode;\r\n postfix?: React.ReactNode;\r\n children: React.ReactNode;\r\n}\r\n\r\nexport const BaseInputWrapper = ({\r\n label,\r\n error,\r\n helperText,\r\n disabled,\r\n readOnly,\r\n prefix,\r\n postfix,\r\n children,\r\n}: BaseInputWrapperProps) => (\r\n <div className={styles.formItem}>\r\n {label && (\r\n <label\r\n className={classNames(styles.label, {\r\n [styles.disabled]: disabled,\r\n [styles.readOnly]: readOnly,\r\n })}\r\n >\r\n {label}\r\n </label>\r\n )}\r\n <div\r\n className={classNames(styles.inputContainer, {\r\n [styles.disabled]: disabled,\r\n [styles.readOnly]: readOnly,\r\n [styles.error]: !!error,\r\n })}\r\n >\r\n {prefix}\r\n {children}\r\n {postfix}\r\n </div>\r\n <div\r\n className={classNames(styles.message, {\r\n [styles.error]: !!error,\r\n })}\r\n >\r\n {error ? <InlineError>{error}</InlineError> : helperText}\r\n </div>\r\n </div>\r\n);\r\n","import classNames from \"classnames\";\r\nimport React from \"react\";\r\nimport { BaseInputWrapper } from \"./BaseInputWrapper\";\r\nimport styles from \"./Input.module.scss\";\r\n\r\ninterface InputProps\r\n extends Omit<\r\n React.InputHTMLAttributes<HTMLInputElement>,\r\n \"prefix\" | \"postfix\"\r\n > {\r\n label?: string;\r\n error?: string;\r\n helperText?: string;\r\n prefix?: React.ReactNode;\r\n postfix?: React.ReactNode;\r\n maskRegex?: string;\r\n textPrefix?: string;\r\n}\r\n\r\nexport const Input = React.forwardRef<HTMLInputElement, InputProps>(\r\n (\r\n {\r\n label,\r\n error,\r\n helperText,\r\n prefix,\r\n postfix,\r\n disabled,\r\n readOnly,\r\n className,\r\n maskRegex,\r\n textPrefix,\r\n onChange,\r\n onFocus,\r\n ...rest\r\n },\r\n ref,\r\n ) => {\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n if (maskRegex && !new RegExp(maskRegex).test(e.target.value)) {\r\n e.target.setCustomValidity(\"Неверный формат\");\r\n } else {\r\n e.target.setCustomValidity(\"\");\r\n }\r\n onChange?.(e);\r\n };\r\n\r\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\r\n if (textPrefix && !e.target.value) {\r\n const newVal = textPrefix;\r\n e.target.value = newVal;\r\n e.target.setSelectionRange(newVal.length, newVal.length);\r\n e.target.dispatchEvent(new Event(\"input\", { bubbles: true }));\r\n }\r\n onFocus?.(e);\r\n };\r\n\r\n return (\r\n <BaseInputWrapper\r\n label={label}\r\n error={error}\r\n helperText={helperText}\r\n prefix={prefix}\r\n postfix={postfix}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n >\r\n <input\r\n ref={ref}\r\n className={classNames(styles.input, className)}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n onChange={handleChange}\r\n onFocus={handleFocus}\r\n {...rest}\r\n />\r\n </BaseInputWrapper>\r\n );\r\n },\r\n);\r\n\r\nInput.displayName = \"Input\";\r\nexport type { InputProps };\r\n","'use client';\nfunction __insertCSS(code) {\n if (!code || typeof document == 'undefined') return\n let head = document.head || document.getElementsByTagName('head')[0]\n let style = document.createElement('style')\n style.type = 'text/css'\n head.appendChild(style)\n ;style.styleSheet ? (style.styleSheet.cssText = code) : style.appendChild(document.createTextNode(code))\n}\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nconst getAsset = (type)=>{\n switch(type){\n case 'success':\n return SuccessIcon;\n case 'info':\n return InfoIcon;\n case 'warning':\n return WarningIcon;\n case 'error':\n return ErrorIcon;\n default:\n return null;\n }\n};\nconst bars = Array(12).fill(0);\nconst Loader = ({ visible, className })=>{\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: [\n 'sonner-loading-wrapper',\n className\n ].filter(Boolean).join(' '),\n \"data-visible\": visible\n }, /*#__PURE__*/ React.createElement(\"div\", {\n className: \"sonner-spinner\"\n }, bars.map((_, i)=>/*#__PURE__*/ React.createElement(\"div\", {\n className: \"sonner-loading-bar\",\n key: `spinner-bar-${i}`\n }))));\n};\nconst SuccessIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n height: \"20\",\n width: \"20\"\n}, /*#__PURE__*/ React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z\",\n clipRule: \"evenodd\"\n}));\nconst WarningIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n height: \"20\",\n width: \"20\"\n}, /*#__PURE__*/ React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z\",\n clipRule: \"evenodd\"\n}));\nconst InfoIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n height: \"20\",\n width: \"20\"\n}, /*#__PURE__*/ React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z\",\n clipRule: \"evenodd\"\n}));\nconst ErrorIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n height: \"20\",\n width: \"20\"\n}, /*#__PURE__*/ React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z\",\n clipRule: \"evenodd\"\n}));\nconst CloseIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"12\",\n height: \"12\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/ React.createElement(\"line\", {\n x1: \"18\",\n y1: \"6\",\n x2: \"6\",\n y2: \"18\"\n}), /*#__PURE__*/ React.createElement(\"line\", {\n x1: \"6\",\n y1: \"6\",\n x2: \"18\",\n y2: \"18\"\n}));\n\nconst useIsDocumentHidden = ()=>{\n const [isDocumentHidden, setIsDocumentHidden] = React.useState(document.hidden);\n React.useEffect(()=>{\n const callback = ()=>{\n setIsDocumentHidden(document.hidden);\n };\n document.addEventListener('visibilitychange', callback);\n return ()=>window.removeEventListener('visibilitychange', callback);\n }, []);\n return isDocumentHidden;\n};\n\nlet toastsCounter = 1;\nclass Observer {\n constructor(){\n // We use arrow functions to maintain the correct `this` reference\n this.subscribe = (subscriber)=>{\n this.subscribers.push(subscriber);\n return ()=>{\n const index = this.subscribers.indexOf(subscriber);\n this.subscribers.splice(index, 1);\n };\n };\n this.publish = (data)=>{\n this.subscribers.forEach((subscriber)=>subscriber(data));\n };\n this.addToast = (data)=>{\n this.publish(data);\n this.toasts = [\n ...this.toasts,\n data\n ];\n };\n this.create = (data)=>{\n var _data_id;\n const { message, ...rest } = data;\n const id = typeof (data == null ? void 0 : data.id) === 'number' || ((_data_id = data.id) == null ? void 0 : _data_id.length) > 0 ? data.id : toastsCounter++;\n const alreadyExists = this.toasts.find((toast)=>{\n return toast.id === id;\n });\n const dismissible = data.dismissible === undefined ? true : data.dismissible;\n if (this.dismissedToasts.has(id)) {\n this.dismissedToasts.delete(id);\n }\n if (alreadyExists) {\n this.toasts = this.toasts.map((toast)=>{\n if (toast.id === id) {\n this.publish({\n ...toast,\n ...data,\n id,\n title: message\n });\n return {\n ...toast,\n ...data,\n id,\n dismissible,\n title: message\n };\n }\n return toast;\n });\n } else {\n this.addToast({\n title: message,\n ...rest,\n dismissible,\n id\n });\n }\n return id;\n };\n this.dismiss = (id)=>{\n if (id) {\n this.dismissedToasts.add(id);\n requestAnimationFrame(()=>this.subscribers.forEach((subscriber)=>subscriber({\n id,\n dismiss: true\n })));\n } else {\n this.toasts.forEach((toast)=>{\n this.subscribers.forEach((subscriber)=>subscriber({\n id: toast.id,\n dismiss: true\n }));\n });\n }\n return id;\n };\n this.message = (message, data)=>{\n return this.create({\n ...data,\n message\n });\n };\n this.error = (message, data)=>{\n return this.create({\n ...data,\n message,\n type: 'error'\n });\n };\n this.success = (message, data)=>{\n return this.create({\n ...data,\n type: 'success',\n message\n });\n };\n this.info = (message, data)=>{\n return this.create({\n ...data,\n type: 'info',\n message\n });\n };\n this.warning = (message, data)=>{\n return this.create({\n ...data,\n type: 'warning',\n message\n });\n };\n this.loading = (message, data)=>{\n return this.create({\n ...data,\n type: 'loading',\n message\n });\n };\n this.promise = (promise, data)=>{\n if (!data) {\n // Nothing to show\n return;\n }\n let id = undefined;\n if (data.loading !== undefined) {\n id = this.create({\n ...data,\n promise,\n type: 'loading',\n message: data.loading,\n description: typeof data.description !== 'function' ? data.description : undefined\n });\n }\n const p = Promise.resolve(promise instanceof Function ? promise() : promise);\n let shouldDismiss = id !== undefined;\n let result;\n const originalPromise = p.then(async (response)=>{\n result = [\n 'resolve',\n response\n ];\n const isReactElementResponse = React.isValidElement(response);\n if (isReactElementResponse) {\n shouldDismiss = false;\n this.create({\n id,\n type: 'default',\n message: response\n });\n } else if (isHttpResponse(response) && !response.ok) {\n shouldDismiss = false;\n const promiseData = typeof data.error === 'function' ? await data.error(`HTTP error! status: ${response.status}`) : data.error;\n const description = typeof data.description === 'function' ? await data.description(`HTTP error! status: ${response.status}`) : data.description;\n const isExtendedResult = typeof promiseData === 'object' && !React.isValidElement(promiseData);\n const toastSettings = isExtendedResult ? promiseData : {\n message: promiseData\n };\n this.create({\n id,\n type: 'error',\n description,\n ...toastSettings\n });\n } else if (response instanceof Error) {\n shouldDismiss = false;\n const promiseData = typeof data.error === 'function' ? await data.error(response) : data.error;\n const description = typeof data.description === 'function' ? await data.description(response) : data.description;\n const isExtendedResult = typeof promiseData === 'object' && !React.isValidElement(promiseData);\n const toastSettings = isExtendedResult ? promiseData : {\n message: promiseData\n };\n this.create({\n id,\n type: 'error',\n description,\n ...toastSettings\n });\n } else if (data.success !== undefined) {\n shouldDismiss = false;\n const promiseData = typeof data.success === 'function' ? await data.success(response) : data.success;\n const description = typeof data.description === 'function' ? await data.description(response) : data.description;\n const isExtendedResult = typeof promiseData === 'object' && !React.isValidElement(promiseData);\n const toastSettings = isExtendedResult ? promiseData : {\n message: promiseData\n };\n this.create({\n id,\n type: 'success',\n description,\n ...toastSettings\n });\n }\n }).catch(async (error)=>{\n result = [\n 'reject',\n error\n ];\n if (data.error !== undefined) {\n shouldDismiss = false;\n const promiseData = typeof data.error === 'function' ? await data.error(error) : data.error;\n const description = typeof data.description === 'function' ? await data.description(error) : data.description;\n const isExtendedResult = typeof promiseData === 'object' && !React.isValidElement(promiseData);\n const toastSettings = isExtendedResult ? promiseData : {\n message: promiseData\n };\n this.create({\n id,\n type: 'error',\n description,\n ...toastSettings\n });\n }\n }).finally(()=>{\n if (shouldDismiss) {\n // Toast is still in load state (and will be indefinitely — dismiss it)\n this.dismiss(id);\n id = undefined;\n }\n data.finally == null ? void 0 : data.finally.call(data);\n });\n const unwrap = ()=>new Promise((resolve, reject)=>originalPromise.then(()=>result[0] === 'reject' ? reject(result[1]) : resolve(result[1])).catch(reject));\n if (typeof id !== 'string' && typeof id !== 'number') {\n // cannot Object.assign on undefined\n return {\n unwrap\n };\n } else {\n return Object.assign(id, {\n unwrap\n });\n }\n };\n this.custom = (jsx, data)=>{\n const id = (data == null ? void 0 : data.id) || toastsCounter++;\n this.create({\n jsx: jsx(id),\n id,\n ...data\n });\n return id;\n };\n this.getActiveToasts = ()=>{\n return this.toasts.filter((toast)=>!this.dismissedToasts.has(toast.id));\n };\n this.subscribers = [];\n this.toasts = [];\n this.dismissedToasts = new Set();\n }\n}\nconst ToastState = new Observer();\n// bind this to the toast function\nconst toastFunction = (message, data)=>{\n const id = (data == null ? void 0 : data.id) || toastsCounter++;\n ToastState.addToast({\n title: message,\n ...data,\n id\n });\n return id;\n};\nconst isHttpResponse = (data)=>{\n return data && typeof data === 'object' && 'ok' in data && typeof data.ok === 'boolean' && 'status' in data && typeof data.status === 'number';\n};\nconst basicToast = toastFunction;\nconst getHistory = ()=>ToastState.toasts;\nconst getToasts = ()=>ToastState.getActiveToasts();\n// We use `Object.assign` to maintain the correct types as we would lose them otherwise\nconst toast = Object.assign(basicToast, {\n success: ToastState.success,\n info: ToastState.info,\n warning: ToastState.warning,\n error: ToastState.error,\n custom: ToastState.custom,\n message: ToastState.message,\n promise: ToastState.promise,\n dismiss: ToastState.dismiss,\n loading: ToastState.loading\n}, {\n getHistory,\n getToasts\n});\n\n__insertCSS(\"[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}\");\n\nfunction isAction(action) {\n return action.label !== undefined;\n}\n\n// Visible toasts amount\nconst VISIBLE_TOASTS_AMOUNT = 3;\n// Viewport padding\nconst VIEWPORT_OFFSET = '24px';\n// Mobile viewport padding\nconst MOBILE_VIEWPORT_OFFSET = '16px';\n// Default lifetime of a toasts (in ms)\nconst TOAST_LIFETIME = 4000;\n// Default toast width\nconst TOAST_WIDTH = 356;\n// Default gap between toasts\nconst GAP = 14;\n// Threshold to dismiss a toast\nconst SWIPE_THRESHOLD = 45;\n// Equal to exit animation duration\nconst TIME_BEFORE_UNMOUNT = 200;\nfunction cn(...classes) {\n return classes.filter(Boolean).join(' ');\n}\nfunction getDefaultSwipeDirections(position) {\n const [y, x] = position.split('-');\n const directions = [];\n if (y) {\n directions.push(y);\n }\n if (x) {\n directions.push(x);\n }\n return directions;\n}\nconst Toast = (props)=>{\n var _toast_classNames, _toast_classNames1, _toast_classNames2, _toast_classNames3, _toast_classNames4, _toast_classNames5, _toast_classNames6, _toast_classNames7, _toast_classNames8;\n const { invert: ToasterInvert, toast, unstyled, interacting, setHeights, visibleToasts, heights, index, toasts, expanded, removeToast, defaultRichColors, closeButton: closeButtonFromToaster, style, cancelButtonStyle, actionButtonStyle, className = '', descriptionClassName = '', duration: durationFromToaster, position, gap, expandByDefault, classNames, icons, closeButtonAriaLabel = 'Close toast' } = props;\n const [swipeDirection, setSwipeDirection] = React.useState(null);\n const [swipeOutDirection, setSwipeOutDirection] = React.useState(null);\n const [mounted, setMounted] = React.useState(false);\n const [removed, setRemoved] = React.useState(false);\n const [swiping, setSwiping] = React.useState(false);\n const [swipeOut, setSwipeOut] = React.useState(false);\n const [isSwiped, setIsSwiped] = React.useState(false);\n const [offsetBeforeRemove, setOffsetBeforeRemove] = React.useState(0);\n const [initialHeight, setInitialHeight] = React.useState(0);\n const remainingTime = React.useRef(toast.duration || durationFromToaster || TOAST_LIFETIME);\n const dragStartTime = React.useRef(null);\n const toastRef = React.useRef(null);\n const isFront = index === 0;\n const isVisible = index + 1 <= visibleToasts;\n const toastType = toast.type;\n const dismissible = toast.dismissible !== false;\n const toastClassname = toast.className || '';\n const toastDescriptionClassname = toast.descriptionClassName || '';\n // Height index is used to calculate the offset as it gets updated before the toast array, which means we can calculate the new layout faster.\n const heightIndex = React.useMemo(()=>heights.findIndex((height)=>height.toastId === toast.id) || 0, [\n heights,\n toast.id\n ]);\n const closeButton = React.useMemo(()=>{\n var _toast_closeButton;\n return (_toast_closeButton = toast.closeButton) != null ? _toast_closeButton : closeButtonFromToaster;\n }, [\n toast.closeButton,\n closeButtonFromToaster\n ]);\n const duration = React.useMemo(()=>toast.duration || durationFromToaster || TOAST_LIFETIME, [\n toast.duration,\n durationFromToaster\n ]);\n const closeTimerStartTimeRef = React.useRef(0);\n const offset = React.useRef(0);\n const lastCloseTimerStartTimeRef = React.useRef(0);\n const pointerStartRef = React.useRef(null);\n const [y, x] = position.split('-');\n const toastsHeightBefore = React.useMemo(()=>{\n return heights.reduce((prev, curr, reducerIndex)=>{\n // Calculate offset up until current toast\n if (reducerIndex >= heightIndex) {\n return prev;\n }\n return prev + curr.height;\n }, 0);\n }, [\n heights,\n heightIndex\n ]);\n const isDocumentHidden = useIsDocumentHidden();\n const invert = toast.invert || ToasterInvert;\n const disabled = toastType === 'loading';\n offset.current = React.useMemo(()=>heightIndex * gap + toastsHeightBefore, [\n heightIndex,\n toastsHeightBefore\n ]);\n React.useEffect(()=>{\n remainingTime.current = duration;\n }, [\n duration\n ]);\n React.useEffect(()=>{\n // Trigger enter animation without using CSS animation\n setMounted(true);\n }, []);\n React.useEffect(()=>{\n const toastNode = toastRef.current;\n if (toastNode) {\n const height = toastNode.getBoundingClientRect().height;\n // Add toast height to heights array after the toast is mounted\n setInitialHeight(height);\n setHeights((h)=>[\n {\n toastId: toast.id,\n height,\n position: toast.position\n },\n ...h\n ]);\n return ()=>setHeights((h)=>h.filter((height)=>height.toastId !== toast.id));\n }\n }, [\n setHeights,\n toast.id\n ]);\n React.useLayoutEffect(()=>{\n // Keep height up to date with the content in case it updates\n if (!mounted) return;\n const toastNode = toastRef.current;\n const originalHeight = toastNode.style.height;\n toastNode.style.height = 'auto';\n const newHeight = toastNode.getBoundingClientRect().height;\n toastNode.style.height = originalHeight;\n setInitialHeight(newHeight);\n setHeights((heights)=>{\n const alreadyExists = heights.find((height)=>height.toastId === toast.id);\n if (!alreadyExists) {\n return [\n {\n toastId: toast.id,\n height: newHeight,\n position: toast.position\n },\n ...heights\n ];\n } else {\n return heights.map((height)=>height.toastId === toast.id ? {\n ...height,\n height: newHeight\n } : height);\n }\n });\n }, [\n mounted,\n toast.title,\n toast.description,\n setHeights,\n toast.id,\n toast.jsx,\n toast.action,\n toast.cancel\n ]);\n const deleteToast = React.useCallback(()=>{\n // Save the offset for the exit swipe animation\n setRemoved(true);\n setOffsetBeforeRemove(offset.current);\n setHeights((h)=>h.filter((height)=>height.toastId !== toast.id));\n setTimeout(()=>{\n removeToast(toast);\n }, TIME_BEFORE_UNMOUNT);\n }, [\n toast,\n removeToast,\n setHeights,\n offset\n ]);\n React.useEffect(()=>{\n if (toast.promise && toastType === 'loading' || toast.duration === Infinity || toast.type === 'loading') return;\n let timeoutId;\n // Pause the timer on each hover\n const pauseTimer = ()=>{\n if (lastCloseTimerStartTimeRef.current < closeTimerStartTimeRef.current) {\n // Get the elapsed time since the timer started\n const elapsedTime = new Date().getTime() - closeTimerStartTimeRef.current;\n remainingTime.current = remainingTime.current - elapsedTime;\n }\n lastCloseTimerStartTimeRef.current = new Date().getTime();\n };\n const startTimer = ()=>{\n // setTimeout(, Infinity) behaves as if the delay is 0.\n // As a result, the toast would be closed immediately, giving the appearance that it was never rendered.\n // See: https://github.com/denysdovhan/wtfjs?tab=readme-ov-file#an-infinite-timeout\n if (remainingTime.current === Infinity) return;\n closeTimerStartTimeRef.current = new Date().getTime();\n // Let the toast know it has started\n timeoutId = setTimeout(()=>{\n toast.onAutoClose == null ? void 0 : toast.onAutoClose.call(toast, toast);\n deleteToast();\n }, remainingTime.current);\n };\n if (expanded || interacting || isDocumentHidden) {\n pauseTimer();\n } else {\n startTimer();\n }\n return ()=>clearTimeout(timeoutId);\n }, [\n expanded,\n interacting,\n toast,\n toastType,\n isDocumentHidden,\n deleteToast\n ]);\n React.useEffect(()=>{\n if (toast.delete) {\n deleteToast();\n toast.onDismiss == null ? void 0 : toast.onDismiss.call(toast, toast);\n }\n }, [\n deleteToast,\n toast.delete\n ]);\n function getLoadingIcon() {\n var _toast_classNames;\n if (icons == null ? void 0 : icons.loading) {\n var _toast_classNames1;\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: cn(classNames == null ? void 0 : classNames.loader, toast == null ? void 0 : (_toast_classNames1 = toast.classNames) == null ? void 0 : _toast_classNames1.loader, 'sonner-loader'),\n \"data-visible\": toastType === 'loading'\n }, icons.loading);\n }\n return /*#__PURE__*/ React.createElement(Loader, {\n className: cn(classNames == null ? void 0 : classNames.loader, toast == null ? void 0 : (_toast_classNames = toast.classNames) == null ? void 0 : _toast_classNames.loader),\n visible: toastType === 'loading'\n });\n }\n const icon = toast.icon || (icons == null ? void 0 : icons[toastType]) || getAsset(toastType);\n var _toast_richColors, _icons_close;\n return /*#__PURE__*/ React.createElement(\"li\", {\n tabIndex: 0,\n ref: toastRef,\n className: cn(className, toastClassname, classNames == null ? void 0 : classNames.toast, toast == null ? void 0 : (_toast_classNames = toast.classNames) == null ? void 0 : _toast_classNames.toast, classNames == null ? void 0 : classNames.default, classNames == null ? void 0 : classNames[toastType], toast == null ? void 0 : (_toast_classNames1 = toast.classNames) == null ? void 0 : _toast_classNames1[toastType]),\n \"data-sonner-toast\": \"\",\n \"data-rich-colors\": (_toast_richColors = toast.richColors) != null ? _toast_richColors : defaultRichColors,\n \"data-styled\": !Boolean(toast.jsx || toast.unstyled || unstyled),\n \"data-mounted\": mounted,\n \"data-promise\": Boolean(toast.promise),\n \"data-swiped\": isSwiped,\n \"data-removed\": removed,\n \"data-visible\": isVisible,\n \"data-y-position\": y,\n \"data-x-position\": x,\n \"data-index\": index,\n \"data-front\": isFront,\n \"data-swiping\": swiping,\n \"data-dismissible\": dismissible,\n \"data-type\": toastType,\n \"data-invert\": invert,\n \"data-swipe-out\": swipeOut,\n \"data-swipe-direction\": swipeOutDirection,\n \"data-expanded\": Boolean(expanded || expandByDefault && mounted),\n style: {\n '--index': index,\n '--toasts-before': index,\n '--z-index': toasts.length - index,\n '--offset': `${removed ? offsetBeforeRemove : offset.current}px`,\n '--initial-height': expandByDefault ? 'auto' : `${initialHeight}px`,\n ...style,\n ...toast.style\n },\n onDragEnd: ()=>{\n setSwiping(false);\n setSwipeDirection(null);\n pointerStartRef.current = null;\n },\n onPointerDown: (event)=>{\n if (disabled || !dismissible) return;\n dragStartTime.current = new Date();\n setOffsetBeforeRemove(offset.current);\n // Ensure we maintain correct pointer capture even when going outside of the toast (e.g. when swiping)\n event.target.setPointerCapture(event.pointerId);\n if (event.target.tagName === 'BUTTON') return;\n setSwiping(true);\n pointerStartRef.current = {\n x: event.clientX,\n y: event.clientY\n };\n },\n onPointerUp: ()=>{\n var _toastRef_current, _toastRef_current1, _dragStartTime_current;\n if (swipeOut || !dismissible) return;\n pointerStartRef.current = null;\n const swipeAmountX = Number(((_toastRef_current = toastRef.current) == null ? void 0 : _toastRef_current.style.getPropertyValue('--swipe-amount-x').replace('px', '')) || 0);\n const swipeAmountY = Number(((_toastRef_current1 = toastRef.current) == null ? void 0 : _toastRef_current1.style.getPropertyValue('--swipe-amount-y').replace('px', '')) || 0);\n const timeTaken = new Date().getTime() - ((_dragStartTime_current = dragStartTime.current) == null ? void 0 : _dragStartTime_current.getTime());\n const swipeAmount = swipeDirection === 'x' ? swipeAmountX : swipeAmountY;\n const velocity = Math.abs(swipeAmount) / timeTaken;\n if (Math.abs(swipeAmount) >= SWIPE_THRESHOLD || velocity > 0.11) {\n setOffsetBeforeRemove(offset.current);\n toast.onDismiss == null ? void 0 : toast.onDismiss.call(toast, toast);\n if (swipeDirection === 'x') {\n setSwipeOutDirection(swipeAmountX > 0 ? 'right' : 'left');\n } else {\n setSwipeOutDirection(swipeAmountY > 0 ? 'down' : 'up');\n }\n deleteToast();\n setSwipeOut(true);\n return;\n } else {\n var _toastRef_current2, _toastRef_current3;\n (_toastRef_current2 = toastRef.current) == null ? void 0 : _toastRef_current2.style.setProperty('--swipe-amount-x', `0px`);\n (_toastRef_current3 = toastRef.current) == null ? void 0 : _toastRef_current3.style.setProperty('--swipe-amount-y', `0px`);\n }\n setIsSwiped(false);\n setSwiping(false);\n setSwipeDirection(null);\n },\n onPointerMove: (event)=>{\n var _window_getSelection, // Apply transform using both x and y values\n _toastRef_current, _toastRef_current1;\n if (!pointerStartRef.current || !dismissible) return;\n const isHighlighted = ((_window_getSelection = window.getSelection()) == null ? void 0 : _window_getSelection.toString().length) > 0;\n if (isHighlighted) return;\n const yDelta = event.clientY - pointerStartRef.current.y;\n const xDelta = event.clientX - pointerStartRef.current.x;\n var _props_swipeDirections;\n const swipeDirections = (_props_swipeDirections = props.swipeDirections) != null ? _props_swipeDirections : getDefaultSwipeDirections(position);\n // Determine swipe direction if not already locked\n if (!swipeDirection && (Math.abs(xDelta) > 1 || Math.abs(yDelta) > 1)) {\n setSwipeDirection(Math.abs(xDelta) > Math.abs(yDelta) ? 'x' : 'y');\n }\n let swipeAmount = {\n x: 0,\n y: 0\n };\n const getDampening = (delta)=>{\n const factor = Math.abs(delta) / 20;\n return 1 / (1.5 + factor);\n };\n // Only apply swipe in the locked direction\n if (swipeDirection === 'y') {\n // Handle vertical swipes\n if (swipeDirections.includes('top') || swipeDirections.includes('bottom')) {\n if (swipeDirections.includes('top') && yDelta < 0 || swipeDirections.includes('bottom') && yDelta > 0) {\n swipeAmount.y = yDelta;\n } else {\n // Smoothly transition to dampened movement\n const dampenedDelta = yDelta * getDampening(yDelta);\n // Ensure we don't jump when transitioning to dampened movement\n swipeAmount.y = Math.abs(dampenedDelta) < Math.abs(yDelta) ? dampenedDelta : yDelta;\n }\n }\n } else if (swipeDirection === 'x') {\n // Handle horizontal swipes\n if (swipeDirections.includes('left') || swipeDirections.includes('right')) {\n if (swipeDirections.includes('left') && xDelta < 0 || swipeDirections.includes('right') && xDelta > 0) {\n swipeAmount.x = xDelta;\n } else {\n // Smoothly transition to dampened movement\n const dampenedDelta = xDelta * getDampening(xDelta);\n // Ensure we don't jump when transitioning to dampened movement\n swipeAmount.x = Math.abs(dampenedDelta) < Math.abs(xDelta) ? dampenedDelta : xDelta;\n }\n }\n }\n if (Math.abs(swipeAmount.x) > 0 || Math.abs(swipeAmount.y) > 0) {\n setIsSwiped(true);\n }\n (_toastRef_current = toastRef.current) == null ? void 0 : _toastRef_current.style.setProperty('--swipe-amount-x', `${swipeAmount.x}px`);\n (_toastRef_current1 = toastRef.current) == null ? void 0 : _toastRef_current1.style.setProperty('--swipe-amount-y', `${swipeAmount.y}px`);\n }\n }, closeButton && !toast.jsx && toastType !== 'loading' ? /*#__PURE__*/ React.createElement(\"button\", {\n \"aria-label\": closeButtonAriaLabel,\n \"data-disabled\": disabled,\n \"data-close-button\": true,\n onClick: disabled || !dismissible ? ()=>{} : ()=>{\n deleteToast();\n toast.onDismiss == null ? void 0 : toast.onDismiss.call(toast, toast);\n },\n className: cn(classNames == null ? void 0 : classNames.closeButton, toast == null ? void 0 : (_toast_classNames2 = toast.classNames) == null ? void 0 : _toast_classNames2.closeButton)\n }, (_icons_close = icons == null ? void 0 : icons.close) != null ? _icons_close : CloseIcon) : null, (toastType || toast.icon || toast.promise) && toast.icon !== null && ((icons == null ? void 0 : icons[toastType]) !== null || toast.icon) ? /*#__PURE__*/ React.createElement(\"div\", {\n \"data-icon\": \"\",\n className: cn(classNames == null ? void 0 : classNames.icon, toast == null ? void 0 : (_toast_classNames3 = toast.classNames) == null ? void 0 : _toast_classNames3.icon)\n }, toast.promise || toast.type === 'loading' && !toast.icon ? toast.icon || getLoadingIcon() : null, toast.type !== 'loading' ? icon : null) : null, /*#__PURE__*/ React.createElement(\"div\", {\n \"data-content\": \"\",\n className: cn(classNames == null ? void 0 : classNames.content, toast == null ? void 0 : (_toast_classNames4 = toast.classNames) == null ? void 0 : _toast_classNames4.content)\n }, /*#__PURE__*/ React.createElement(\"div\", {\n \"data-title\": \"\",\n className: cn(classNames == null ? void 0 : classNames.title, toast == null ? void 0 : (_toast_classNames5 = toast.classNames) == null ? void 0 : _toast_classNames5.title)\n }, toast.jsx ? toast.jsx : typeof toast.title === 'function' ? toast.title() : toast.title), toast.description ? /*#__PURE__*/ React.createElement(\"div\", {\n \"data-description\": \"\",\n className: cn(descriptionClassName, toastDescriptionClassname, classNames == null ? void 0 : classNames.description, toast == null ? void 0 : (_toast_classNames6 = toast.classNames) == null ? void 0 : _toast_classNames6.description)\n }, typeof toast.description === 'function' ? toast.description() : toast.description) : null), /*#__PURE__*/ React.isValidElement(toast.cancel) ? toast.cancel : toast.cancel && isAction(toast.cancel) ? /*#__PURE__*/ React.createElement(\"button\", {\n \"data-button\": true,\n \"data-cancel\": true,\n style: toast.cancelButtonStyle || cancelButtonStyle,\n onClick: (event)=>{\n // We need to check twice because typescript\n if (!isAction(toast.cancel)) return;\n if (!dismissible) return;\n toast.cancel.onClick == null ? void 0 : toast.cancel.onClick.call(toast.cancel, event);\n deleteToast();\n },\n className: cn(classNames == null ? void 0 : classNames.cancelButton, toast == null ? void 0 : (_toast_classNames7 = toast.classNames) == null ? void 0 : _toast_classNames7.cancelButton)\n }, toast.cancel.label) : null, /*#__PURE__*/ React.isValidElement(toast.action) ? toast.action : toast.action && isAction(toast.action) ? /*#__PURE__*/ React.createElement(\"button\", {\n \"data-button\": true,\n \"data-action\": true,\n style: toast.actionButtonStyle || actionButtonStyle,\n onClick: (event)=>{\n // We need to check twice because typescript\n if (!isAction(toast.action)) return;\n toast.action.onClick == null ? void 0 : toast.action.onClick.call(toast.action, event);\n if (event.defaultPrevented) return;\n deleteToast();\n },\n className: cn(classNames == null ? void 0 : classNames.actionButton, toast == null ? void 0 : (_toast_classNames8 = toast.classNames) == null ? void 0 : _toast_classNames8.actionButton)\n }, toast.action.label) : null);\n};\nfunction getDocumentDirection() {\n if (typeof window === 'undefined') return 'ltr';\n if (typeof document === 'undefined') return 'ltr'; // For Fresh purpose\n const dirAttribute = document.documentElement.getAttribute('dir');\n if (dirAttribute === 'auto' || !dirAttribute) {\n return window.getComputedStyle(document.documentElement).direction;\n }\n return dirAttribute;\n}\nfunction assignOffset(defaultOffset, mobileOffset) {\n const styles = {};\n [\n defaultOffset,\n mobileOffset\n ].forEach((offset, index)=>{\n const isMobile = index === 1;\n const prefix = isMobile ? '--mobile-offset' : '--offset';\n const defaultValue = isMobile ? MOBILE_VIEWPORT_OFFSET : VIEWPORT_OFFSET;\n function assignAll(offset) {\n [\n 'top',\n 'right',\n 'bottom',\n 'left'\n ].forEach((key)=>{\n styles[`${prefix}-${key}`] = typeof offset === 'number' ? `${offset}px` : offset;\n });\n }\n if (typeof offset === 'number' || typeof offset === 'string') {\n assignAll(offset);\n } else if (typeof offset === 'object') {\n [\n 'top',\n 'right',\n 'bottom',\n 'left'\n ].forEach((key)=>{\n if (offset[key] === undefined) {\n styles[`${prefix}-${key}`] = defaultValue;\n } else {\n styles[`${prefix}-${key}`] = typeof offset[key] === 'number' ? `${offset[key]}px` : offset[key];\n }\n });\n } else {\n assignAll(defaultValue);\n }\n });\n return styles;\n}\nfunction useSonner() {\n const [activeToasts, setActiveToasts] = React.useState([]);\n React.useEffect(()=>{\n return ToastState.subscribe((toast)=>{\n if (toast.dismiss) {\n setTimeout(()=>{\n ReactDOM.flushSync(()=>{\n setActiveToasts((toasts)=>toasts.filter((t)=>t.id !== toast.id));\n });\n });\n return;\n }\n // Prevent batching, temp solution.\n setTimeout(()=>{\n ReactDOM.flushSync(()=>{\n setActiveToasts((toasts)=>{\n const indexOfExistingToast = toasts.findIndex((t)=>t.id === toast.id);\n // Update the toast if it already exists\n if (indexOfExistingToast !== -1) {\n return [\n ...toasts.slice(0, indexOfExistingToast),\n {\n ...toasts[indexOfExistingToast],\n ...toast\n },\n ...toasts.slice(indexOfExistingToast + 1)\n ];\n }\n return [\n toast,\n ...toasts\n ];\n });\n });\n });\n });\n }, []);\n return {\n toasts: activeToasts\n };\n}\nconst Toaster = /*#__PURE__*/ React.forwardRef(function Toaster(props, ref) {\n const { invert, position = 'bottom-right', hotkey = [\n 'altKey',\n 'KeyT'\n ], expand, closeButton, className, offset, mobileOffset, theme = 'light', richColors, duration, style, visibleToasts = VISIBLE_TOASTS_AMOUNT, toastOptions, dir = getDocumentDirection(), gap = GAP, icons, containerAriaLabel = 'Notifications' } = props;\n const [toasts, setToasts] = React.useState([]);\n const possiblePositions = React.useMemo(()=>{\n return Array.from(new Set([\n position\n ].concat(toasts.filter((toast)=>toast.position).map((toast)=>toast.position))));\n }, [\n toasts,\n position\n ]);\n const [heights, setHeights] = React.useState([]);\n const [expanded, setExpanded] = React.useState(false);\n const [interacting, setInteracting] = React.useState(false);\n const [actualTheme, setActualTheme] = React.useState(theme !== 'system' ? theme : typeof window !== 'undefined' ? window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' : 'light');\n const listRef = React.useRef(null);\n const hotkeyLabel = hotkey.join('+').replace(/Key/g, '').replace(/Digit/g, '');\n const lastFocusedElementRef = React.useRef(null);\n const isFocusWithinRef = React.useRef(false);\n const removeToast = React.useCallback((toastToRemove)=>{\n setToasts((toasts)=>{\n var _toasts_find;\n if (!((_toasts_find = toasts.find((toast)=>toast.id === toastToRemove.id)) == null ? void 0 : _toasts_find.delete)) {\n ToastState.dismiss(toastToRemove.id);\n }\n return toasts.filter(({ id })=>id !== toastToRemove.id);\n });\n }, []);\n React.useEffect(()=>{\n return ToastState.subscribe((toast)=>{\n if (toast.dismiss) {\n // Prevent batching of other state updates\n requestAnimationFrame(()=>{\n setToasts((toasts)=>toasts.map((t)=>t.id === toast.id ? {\n ...t,\n delete: true\n } : t));\n });\n return;\n }\n // Prevent batching, temp solution.\n setTimeout(()=>{\n ReactDOM.flushSync(()=>{\n setToasts((toasts)=>{\n const indexOfExistingToast = toasts.findIndex((t)=>t.id === toast.id);\n // Update the toast if it already exists\n if (indexOfExistingToast !== -1) {\n return [\n ...toasts.slice(0, indexOfExistingToast),\n {\n ...toasts[indexOfExistingToast],\n ...toast\n },\n ...toasts.slice(indexOfExistingToast + 1)\n ];\n }\n return [\n toast,\n ...toasts\n ];\n });\n });\n });\n });\n }, [\n toasts\n ]);\n React.useEffect(()=>{\n if (theme !== 'system') {\n setActualTheme(theme);\n return;\n }\n if (theme === 'system') {\n // check if current preference is dark\n if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {\n // it's currently dark\n setActualTheme('dark');\n } else {\n // it's not dark\n setActualTheme('light');\n }\n }\n if (typeof window === 'undefined') return;\n const darkMediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n try {\n // Chrome & Firefox\n darkMediaQuery.addEventListener('change', ({ matches })=>{\n if (matches) {\n setActualTheme('dark');\n } else {\n setActualTheme('light');\n }\n });\n } catch (error) {\n // Safari < 14\n darkMediaQuery.addListener(({ matches })=>{\n try {\n if (matches) {\n setActualTheme('dark');\n } else {\n setActualTheme('light');\n }\n } catch (e) {\n console.error(e);\n }\n });\n }\n }, [\n theme\n ]);\n React.useEffect(()=>{\n // Ensure expanded is always false when no toasts are present / only one left\n if (toasts.length <= 1) {\n setExpanded(false);\n }\n }, [\n toasts\n ]);\n React.useEffect(()=>{\n const handleKeyDown = (event)=>{\n var _listRef_current;\n const isHotkeyPressed = hotkey.every((key)=>event[key] || event.code === key);\n if (isHotkeyPressed) {\n var _listRef_current1;\n setExpanded(true);\n (_listRef_current1 = listRef.current) == null ? void 0 : _listRef_current1.focus();\n }\n if (event.code === 'Escape' && (document.activeElement === listRef.current || ((_listRef_current = listRef.current) == null ? void 0 : _listRef_current.contains(document.activeElement)))) {\n setExpanded(false);\n }\n };\n document.addEventListener('keydown', handleKeyDown);\n return ()=>document.removeEventListener('keydown', handleKeyDown);\n }, [\n hotkey\n ]);\n React.useEffect(()=>{\n if (listRef.current) {\n return ()=>{\n if (lastFocusedElementRef.current) {\n lastFocusedElementRef.current.focus({\n preventScroll: true\n });\n lastFocusedElementRef.current = null;\n isFocusWithinRef.current = false;\n }\n };\n }\n }, [\n listRef.current\n ]);\n return(// Remove item from normal navigation flow, only available via hotkey\n /*#__PURE__*/ React.createElement(\"section\", {\n ref: ref,\n \"aria-label\": `${containerAriaLabel} ${hotkeyLabel}`,\n tabIndex: -1,\n \"aria-live\": \"polite\",\n \"aria-relevant\": \"additions text\",\n \"aria-atomic\": \"false\",\n suppressHydrationWarning: true\n }, possiblePositions.map((position, index)=>{\n var _heights_;\n const [y, x] = position.split('-');\n if (!toasts.length) return null;\n return /*#__PURE__*/ React.createElement(\"ol\", {\n key: position,\n dir: dir === 'auto' ? getDocumentDirection() : dir,\n tabIndex: -1,\n ref: listRef,\n className: className,\n \"data-sonner-toaster\": true,\n \"data-sonner-theme\": actualTheme,\n \"data-y-position\": y,\n \"data-x-position\": x,\n style: {\n '--front-toast-height': `${((_heights_ = heights[0]) == null ? void 0 : _heights_.height) || 0}px`,\n '--width': `${TOAST_WIDTH}px`,\n '--gap': `${gap}px`,\n ...style,\n ...assignOffset(offset, mobileOffset)\n },\n onBlur: (event)=>{\n if (isFocusWithinRef.current && !event.currentTarget.contains(event.relatedTarget)) {\n isFocusWithinRef.current = false;\n if (lastFocusedElementRef.current) {\n lastFocusedElementRef.current.focus({\n preventScroll: true\n });\n lastFocusedElementRef.current = null;\n }\n }\n },\n onFocus: (event)=>{\n const isNotDismissible = event.target instanceof HTMLElement && event.target.dataset.dismissible === 'false';\n if (isNotDismissible) return;\n if (!isFocusWithinRef.current) {\n isFocusWithinRef.current = true;\n lastFocusedElementRef.current = event.relatedTarget;\n }\n },\n onMouseEnter: ()=>setExpanded(true),\n onMouseMove: ()=>setExpanded(true),\n onMouseLeave: ()=>{\n // Avoid setting expanded to false when interacting with a toast, e.g. swiping\n if (!interacting) {\n setExpanded(false);\n }\n },\n onDragEnd: ()=>setExpanded(false),\n onPointerDown: (event)=>{\n const isNotDismissible = event.target instanceof HTMLElement && event.target.dataset.dismissible === 'false';\n if (isNotDismissible) return;\n setInteracting(true);\n },\n onPointerUp: ()=>setInteracting(false)\n }, toasts.filter((toast)=>!toast.position && index === 0 || toast.position === position).map((toast, index)=>{\n var _toastOptions_duration, _toastOptions_closeButton;\n return /*#__PURE__*/ React.createElement(Toast, {\n key: toast.id,\n icons: icons,\n index: index,\n toast: toast,\n defaultRichColors: richColors,\n duration: (_toastOptions_duration = toastOptions == null ? void 0 : toastOptions.duration) != null ? _toastOptions_duration : duration,\n className: toastOptions == null ? void 0 : toastOptions.className,\n descriptionClassName: toastOptions == null ? void 0 : toastOptions.descriptionClassName,\n invert: invert,\n visibleToasts: visibleToasts,\n closeButton: (_toastOptions_closeButton = toastOptions == null ? void 0 : toastOptions.closeButton) != null ? _toastOptions_closeButton : closeButton,\n interacting: interacting,\n position: position,\n style: toastOptions == null ? void 0 : toastOptions.style,\n unstyled: toastOptions == null ? void 0 : toastOptions.unstyled,\n classNames: toastOptions == null ? void 0 : toastOptions.classNames,\n cancelButtonStyle: toastOptions == null ? void 0 : toastOptions.cancelButtonStyle,\n actionButtonStyle: toastOptions == null ? void 0 : toastOptions.actionButtonStyle,\n closeButtonAriaLabel: toastOptions == null ? void 0 : toastOptions.closeButtonAriaLabel,\n removeToast: removeToast,\n toasts: toasts.filter((t)=>t.position == toast.position),\n heights: heights.filter((h)=>h.position == toast.position),\n setHeights: setHeights,\n expandByDefault: expand,\n gap: gap,\n expanded: expanded,\n swipeDirections: props.swipeDirections\n });\n }));\n })));\n});\n\nexport { Toaster, toast, useSonner };\n","import { Toaster, ToasterProps } from \"sonner\";\r\n\r\nexport const CustomToaster = (props: ToasterProps) => {\r\n return (\r\n <Toaster\r\n position='bottom-right'\r\n duration={3000}\r\n closeButton\r\n richColors\r\n {...props}\r\n />\r\n );\r\n};\r\n","import { OctagonAlert, TriangleAlert, X } from \"lucide-react\";\r\nimport { toast } from \"sonner\";\r\nimport IconButton from \"../IconButton/IconButton\";\r\nimport styles from \"./Message.module.scss\";\r\n\r\ntype MessageType = \"default\" | \"warning\" | \"error\";\r\n\r\nexport const message = {\r\n default(text: string) {\r\n toast.custom((t) => (\r\n <div className={`${styles.customToast} ${styles.default}`}>\r\n <div className={styles.content}>{text}</div>\r\n <IconButton\r\n className={styles.closeBtn}\r\n onClick={() => toast.dismiss(t)}\r\n >\r\n <X />\r\n </IconButton>\r\n </div>\r\n ));\r\n },\r\n\r\n warning(text: string) {\r\n toast.custom((t) => (\r\n <div className={`${styles.customToast} ${styles.warning}`}>\r\n <div className={styles.content}>\r\n <TriangleAlert className={styles.warningIcon} />\r\n {text}\r\n </div>\r\n <IconButton\r\n className={styles.closeBtn}\r\n onClick={() => toast.dismiss(t)}\r\n >\r\n <X />\r\n </IconButton>\r\n </div>\r\n ));\r\n },\r\n\r\n error(text: string) {\r\n toast.custom((t) => (\r\n <div className={`${styles.customToast} ${styles.error}`}>\r\n <div className={styles.content}>\r\n <OctagonAlert className={styles.criticalIcon} />\r\n {text}\r\n </div>\r\n <IconButton\r\n className={styles.closeBtn}\r\n onClick={() => toast.dismiss(t)}\r\n >\r\n <X />\r\n </IconButton>\r\n </div>\r\n ));\r\n },\r\n\r\n show(text: string, type: MessageType = \"default\") {\r\n if (type === \"error\") return this.error(text);\r\n if (type === \"warning\") return this.warning(text);\r\n return this.default(text);\r\n },\r\n};\r\n","import { OctagonAlert, TriangleAlert, X } from \"lucide-react\";\r\nimport React, { ReactNode } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport { Button, ButtonProps } from \"../Button/Button\";\r\nimport IconButton from \"../IconButton/IconButton\";\r\nimport { Typography } from \"../Typography/Typography\";\r\nimport styles from \"./Modal.module.scss\";\r\n\r\nexport interface ModalProps {\r\n activator?: ReactNode;\r\n open: boolean;\r\n onClose: () => void;\r\n title: string;\r\n primaryButtonProps?: ButtonProps;\r\n secondaryButtonProps?: ButtonProps[];\r\n tone?: \"default\" | \"critical\" | \"warning\";\r\n children: ReactNode;\r\n}\r\n\r\nconst ModalBase = ({\r\n open,\r\n onClose,\r\n title,\r\n primaryButtonProps,\r\n secondaryButtonProps = [],\r\n tone = \"default\",\r\n children,\r\n}: ModalProps) => {\r\n if (!open) return null;\r\n\r\n const toneClass = styles[`tone-${tone}`] || \"\";\r\n\r\n return createPortal(\r\n <div\r\n className={styles.modalLayout}\r\n onClick={onClose}\r\n >\r\n <div\r\n className={`${styles.modalContainer} ${toneClass}`}\r\n onClick={(e) => e.stopPropagation()}\r\n role='dialog'\r\n aria-modal='true'\r\n aria-labelledby='modal-title'\r\n >\r\n <div className={styles.header}>\r\n <div className={styles.title}>\r\n {tone === \"critical\" && (\r\n <OctagonAlert className={styles.critical} />\r\n )}\r\n {tone === \"warning\" && <TriangleAlert className={styles.warning} />}\r\n <Typography variant='heading-sm'>{title}</Typography>\r\n </div>\r\n <IconButton\r\n size='small'\r\n state='default'\r\n onClick={onClose}\r\n aria-label='Close modal'\r\n >\r\n <X />\r\n </IconButton>\r\n </div>\r\n\r\n <div className={styles.content}>{children}</div>\r\n\r\n <div className={styles.footer}>\r\n {secondaryButtonProps.map((props, i) => (\r\n <Button\r\n key={i}\r\n className={styles.secondaryButton}\r\n {...props}\r\n >\r\n {props.children}\r\n </Button>\r\n ))}\r\n {primaryButtonProps && (\r\n <Button\r\n type='button'\r\n state='primary'\r\n className={styles.primaryButton}\r\n {...primaryButtonProps}\r\n >\r\n {primaryButtonProps.children}\r\n </Button>\r\n )}\r\n </div>\r\n </div>\r\n </div>,\r\n document.body,\r\n );\r\n};\r\n\r\ninterface SectionProps {\r\n children: ReactNode;\r\n}\r\n\r\nconst Section = ({ children }: SectionProps) => (\r\n <section className={styles.section}>{children}</section>\r\n);\r\n\r\ninterface ModalComponent extends React.FC<ModalProps> {\r\n Section: typeof Section;\r\n}\r\n\r\nconst Modal = ModalBase as ModalComponent;\r\nModal.Section = Section;\r\n\r\nexport { Modal };\r\n","import React from \"react\";\r\nimport { createRoot } from \"react-dom/client\";\r\nimport { Modal } from \"@/components/Modal/Modal\";\r\n\r\nexport interface ModalShowOptions {\r\n title: string;\r\n content: React.ReactNode;\r\n onOk?: () => void;\r\n onCancel?: () => void;\r\n okText?: string;\r\n cancelText?: string;\r\n tone?: \"default\" | \"critical\" | \"warning\";\r\n style?: React.CSSProperties;\r\n centered?: boolean;\r\n}\r\n\r\nexport function showModal(options: ModalShowOptions) {\r\n const container = document.createElement(\"div\");\r\n document.body.appendChild(container);\r\n\r\n const root = createRoot(container);\r\n\r\n const unmount = () => {\r\n root.unmount();\r\n container.remove();\r\n };\r\n\r\n const handleOk = () => {\r\n options.onOk?.();\r\n unmount();\r\n };\r\n\r\n const handleCancel = () => {\r\n options.onCancel?.();\r\n unmount();\r\n };\r\n\r\n root.render(\r\n <Modal\r\n open={true}\r\n title={options.title}\r\n tone={options.tone}\r\n onClose={handleCancel}\r\n primaryButtonProps={{\r\n children: options.okText || \"OK\",\r\n onClick: handleOk,\r\n }}\r\n secondaryButtonProps={[\r\n {\r\n children: options.cancelText || \"Cancel\",\r\n onClick: handleCancel,\r\n },\r\n ]}\r\n >\r\n <Modal.Section>{options.content}</Modal.Section>\r\n </Modal>,\r\n );\r\n}\r\n\r\nexport const ModalAPI = {\r\n error: (opts: Omit<ModalShowOptions, \"tone\">) =>\r\n showModal({ ...opts, tone: \"critical\" }),\r\n\r\n warning: (opts: Omit<ModalShowOptions, \"tone\">) =>\r\n showModal({ ...opts, tone: \"warning\" }),\r\n\r\n info: (opts: Omit<ModalShowOptions, \"tone\">) =>\r\n showModal({ ...opts, tone: \"default\" }),\r\n};\r\n","import { PropsWithChildren } from \"react\";\r\nimport { Typography } from \"../Typography/Typography\";\r\nimport styles from \"./PageHeader.module.scss\";\r\n\r\nexport const PageHeader = ({ children }: PropsWithChildren) => {\r\n return (\r\n <header className={styles.pageHeader}>\r\n <Typography\r\n variant='heading-xl'\r\n className={styles.lg}\r\n >\r\n {children}\r\n </Typography>\r\n <Typography\r\n variant='heading-md'\r\n className={styles.mg}\r\n >\r\n {children}\r\n </Typography>\r\n </header>\r\n );\r\n};\r\n","import styles from \"./ProgressLine.module.scss\";\r\n\r\nexport interface ProgressLineProps {\r\n percent: number;\r\n}\r\nexport const ProgressLine = ({ percent }: ProgressLineProps) => {\r\n return (\r\n <div className={styles.container}>\r\n <div className={styles.line}>\r\n <div\r\n className={styles.progress}\r\n style={{ width: `${percent}%` }}\r\n ></div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport { InlineError } from \"../InlineError/InlineError\";\r\nimport styles from \"./Input.module.scss\";\r\n\r\ninterface RadioButtonProps extends React.InputHTMLAttributes<HTMLInputElement> {\r\n label?: string;\r\n error?: string;\r\n helperText?: string;\r\n name: string;\r\n onChange?: React.ChangeEventHandler<HTMLInputElement>; // Make sure onChange is passed\r\n}\r\n\r\nexport const RadioButton = ({\r\n label,\r\n error,\r\n helperText,\r\n disabled,\r\n className,\r\n name,\r\n onChange,\r\n ...rest\r\n}: RadioButtonProps) => {\r\n const handleLabelClick = () => {\r\n if (onChange) {\r\n const event = {\r\n target: {\r\n name,\r\n value: rest.value || \"\",\r\n },\r\n } as React.ChangeEvent<HTMLInputElement>;\r\n\r\n onChange(event);\r\n }\r\n };\r\n return (\r\n <div className={styles.formItem}>\r\n <input\r\n type='radio'\r\n className={classNames(className, styles.inputContainer, styles.radio)}\r\n disabled={disabled}\r\n name={name}\r\n onChange={onChange}\r\n {...rest}\r\n />\r\n <div className={styles.labelContainer}>\r\n <div\r\n className={classNames(styles.label, {\r\n [styles.disabled]: disabled,\r\n })}\r\n onClick={handleLabelClick}\r\n >\r\n {label}\r\n </div>\r\n {error && (\r\n <div\r\n className={classNames(styles.message, {\r\n [styles.error]: !!error,\r\n })}\r\n >\r\n {error ? <InlineError>{error}</InlineError> : helperText}\r\n </div>\r\n )}\r\n {helperText && !error && (\r\n <div\r\n className={classNames(styles.message, {\r\n [styles.error]: !!error,\r\n })}\r\n >\r\n {helperText}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import { ReactNode } from \"react\";\r\nimport { Typography } from \"../Typography/Typography\";\r\nimport styles from \"./SectionHeader.module.scss\";\r\n\r\nexport interface SectionHeaderProps {\r\n title: string;\r\n extra?: ReactNode;\r\n}\r\nexport const SectionHeader = ({ title, extra }: SectionHeaderProps) => {\r\n return (\r\n <div className={styles.container}>\r\n <Typography\r\n variant='heading-md'\r\n className={styles.notMobile}\r\n >\r\n {title}\r\n </Typography>\r\n <Typography\r\n variant='heading-sm'\r\n className={styles.mobile}\r\n >\r\n {title}\r\n </Typography>\r\n {extra}\r\n </div>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport { PropsWithChildren } from \"react\";\r\nimport styles from \"./Table.module.scss\";\r\n\r\nexport type CellType =\r\n | \"label\"\r\n | \"input\"\r\n | \"button\"\r\n | \"icon-button\"\r\n | \"checkbox\"\r\n | \"empty\"\r\n | \"icon-label\";\r\n\r\ntype Align =\r\n | \"top-left\"\r\n | \"top\"\r\n | \"top-right\"\r\n | \"middle-left\"\r\n | \"middle\"\r\n | \"middle-right\"\r\n | \"bottom-left\"\r\n | \"bottom\"\r\n | \"bottom-right\";\r\n\r\ninterface CellProps {\r\n cellType?: CellType;\r\n align?: Align;\r\n}\r\n\r\nexport const Cell = ({\r\n children,\r\n cellType = \"label\",\r\n align = \"middle-left\",\r\n ...props\r\n}: PropsWithChildren<CellProps>) => {\r\n const cellClass = classNames(\r\n styles.td,\r\n styles[cellType],\r\n styles[`align-${align}`],\r\n );\r\n\r\n return (\r\n <div\r\n {...props}\r\n className={cellClass}\r\n >\r\n {children}\r\n </div>\r\n );\r\n};\r\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","const CLASS_PART_SEPARATOR = '-';\nconst createClassGroupUtils = config => {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n classGroups\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n for (const classGroupId in classGroups) {\n processClassesRecursively(classGroups[classGroupId], classMap, classGroupId, theme);\n }\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst MODIFIER_SEPARATOR = ':';\nconst MODIFIER_SEPARATOR_LENGTH = MODIFIER_SEPARATOR.length;\nconst createParseClassName = config => {\n const {\n prefix,\n experimentalParseClassName\n } = config;\n /**\n * Parse class name into parts.\n *\n * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n */\n let parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let parenDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0 && parenDepth === 0) {\n if (currentCharacter === MODIFIER_SEPARATOR) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + MODIFIER_SEPARATOR_LENGTH;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n } else if (currentCharacter === '(') {\n parenDepth++;\n } else if (currentCharacter === ')') {\n parenDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const baseClassName = stripImportantModifier(baseClassNameWithImportantModifier);\n const hasImportantModifier = baseClassName !== baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (prefix) {\n const fullPrefix = prefix + MODIFIER_SEPARATOR;\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.substring(fullPrefix.length)) : {\n isExternal: true,\n modifiers: [],\n hasImportantModifier: false,\n baseClassName: className,\n maybePostfixModifierPosition: undefined\n };\n }\n if (experimentalParseClassName) {\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => experimentalParseClassName({\n className,\n parseClassName: parseClassNameOriginal\n });\n }\n return parseClassName;\n};\nconst stripImportantModifier = baseClassName => {\n if (baseClassName.endsWith(IMPORTANT_MODIFIER)) {\n return baseClassName.substring(0, baseClassName.length - 1);\n }\n /**\n * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.\n * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864\n */\n if (baseClassName.startsWith(IMPORTANT_MODIFIER)) {\n return baseClassName.substring(1);\n }\n return baseClassName;\n};\n\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst createSortModifiers = config => {\n const orderSensitiveModifiers = Object.fromEntries(config.orderSensitiveModifiers.map(modifier => [modifier, true]));\n const sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isPositionSensitive = modifier[0] === '[' || orderSensitiveModifiers[modifier];\n if (isPositionSensitive) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n };\n return sortModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n sortModifiers: createSortModifiers(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds,\n sortModifiers\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n isExternal,\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n if (isExternal) {\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n let hasPostfixModifier = !!maybePostfixModifierPosition;\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i;\nconst arbitraryVariableRegex = /^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isFraction = value => fractionRegex.test(value);\nconst isNumber = value => !!value && !Number.isNaN(Number(value));\nconst isInteger = value => !!value && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst isAny = () => true;\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst isAnyNonArbitrary = value => !isArbitraryValue(value) && !isArbitraryVariable(value);\nconst isArbitrarySize = value => getIsArbitraryValue(value, isLabelSize, isNever);\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, isLabelLength, isLengthOnly);\nconst isArbitraryNumber = value => getIsArbitraryValue(value, isLabelNumber, isNumber);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, isLabelPosition, isNever);\nconst isArbitraryImage = value => getIsArbitraryValue(value, isLabelImage, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, isLabelShadow, isShadow);\nconst isArbitraryVariable = value => arbitraryVariableRegex.test(value);\nconst isArbitraryVariableLength = value => getIsArbitraryVariable(value, isLabelLength);\nconst isArbitraryVariableFamilyName = value => getIsArbitraryVariable(value, isLabelFamilyName);\nconst isArbitraryVariablePosition = value => getIsArbitraryVariable(value, isLabelPosition);\nconst isArbitraryVariableSize = value => getIsArbitraryVariable(value, isLabelSize);\nconst isArbitraryVariableImage = value => getIsArbitraryVariable(value, isLabelImage);\nconst isArbitraryVariableShadow = value => getIsArbitraryVariable(value, isLabelShadow, true);\n// Helpers\nconst getIsArbitraryValue = (value, testLabel, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {\n const result = arbitraryVariableRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return shouldMatchNoLabel;\n }\n return false;\n};\n// Labels\nconst isLabelPosition = label => label === 'position' || label === 'percentage';\nconst isLabelImage = label => label === 'image' || label === 'url';\nconst isLabelSize = label => label === 'length' || label === 'size' || label === 'bg-size';\nconst isLabelLength = label => label === 'length';\nconst isLabelNumber = label => label === 'number';\nconst isLabelFamilyName = label => label === 'family-name';\nconst isLabelShadow = label => label === 'shadow';\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isAnyNonArbitrary,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isArbitraryVariable,\n isArbitraryVariableFamilyName,\n isArbitraryVariableImage,\n isArbitraryVariableLength,\n isArbitraryVariablePosition,\n isArbitraryVariableShadow,\n isArbitraryVariableSize,\n isFraction,\n isInteger,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n /**\n * Theme getters for theme variable namespaces\n * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces\n */\n /***/\n const themeColor = fromTheme('color');\n const themeFont = fromTheme('font');\n const themeText = fromTheme('text');\n const themeFontWeight = fromTheme('font-weight');\n const themeTracking = fromTheme('tracking');\n const themeLeading = fromTheme('leading');\n const themeBreakpoint = fromTheme('breakpoint');\n const themeContainer = fromTheme('container');\n const themeSpacing = fromTheme('spacing');\n const themeRadius = fromTheme('radius');\n const themeShadow = fromTheme('shadow');\n const themeInsetShadow = fromTheme('inset-shadow');\n const themeTextShadow = fromTheme('text-shadow');\n const themeDropShadow = fromTheme('drop-shadow');\n const themeBlur = fromTheme('blur');\n const themePerspective = fromTheme('perspective');\n const themeAspect = fromTheme('aspect');\n const themeEase = fromTheme('ease');\n const themeAnimate = fromTheme('animate');\n /**\n * Helpers to avoid repeating the same scales\n *\n * We use functions that create a new array every time they're called instead of static arrays.\n * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config.\n */\n /***/\n const scaleBreak = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const scalePosition = () => ['center', 'top', 'bottom', 'left', 'right', 'top-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-top', 'top-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-top', 'bottom-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-bottom', 'bottom-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-bottom'];\n const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue];\n const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const scaleOverscroll = () => ['auto', 'contain', 'none'];\n const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];\n const scaleInset = () => [isFraction, 'full', 'auto', ...scaleUnambiguousSpacing()];\n const scaleGridTemplateColsRows = () => [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartAndEnd = () => ['auto', {\n span: ['full', isInteger, isArbitraryVariable, isArbitraryValue]\n }, isInteger, isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartOrEnd = () => [isInteger, 'auto', isArbitraryVariable, isArbitraryValue];\n const scaleGridAutoColsRows = () => ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue];\n const scaleAlignPrimaryAxis = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch', 'baseline', 'center-safe', 'end-safe'];\n const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'];\n const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()];\n const scaleSizing = () => [isFraction, 'auto', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];\n const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];\n const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {\n position: [isArbitraryVariable, isArbitraryValue]\n }];\n const scaleBgRepeat = () => ['no-repeat', {\n repeat: ['', 'x', 'y', 'space', 'round']\n }];\n const scaleBgSize = () => ['auto', 'cover', 'contain', isArbitraryVariableSize, isArbitrarySize, {\n size: [isArbitraryVariable, isArbitraryValue]\n }];\n const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength];\n const scaleRadius = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', 'full', themeRadius, isArbitraryVariable, isArbitraryValue];\n const scaleBorderWidth = () => ['', isNumber, isArbitraryVariableLength, isArbitraryLength];\n const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double'];\n const scaleBlendMode = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition];\n const scaleBlur = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeBlur, isArbitraryVariable, isArbitraryValue];\n const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleTranslate = () => [isFraction, 'full', ...scaleUnambiguousSpacing()];\n return {\n cacheSize: 500,\n theme: {\n animate: ['spin', 'ping', 'pulse', 'bounce'],\n aspect: ['video'],\n blur: [isTshirtSize],\n breakpoint: [isTshirtSize],\n color: [isAny],\n container: [isTshirtSize],\n 'drop-shadow': [isTshirtSize],\n ease: ['in', 'out', 'in-out'],\n font: [isAnyNonArbitrary],\n 'font-weight': ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black'],\n 'inset-shadow': [isTshirtSize],\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'],\n perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'],\n radius: [isTshirtSize],\n shadow: [isTshirtSize],\n spacing: ['px', isNumber],\n text: [isTshirtSize],\n 'text-shadow': [isTshirtSize],\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest']\n },\n classGroups: {\n // --------------\n // --- Layout ---\n // --------------\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n * @deprecated since Tailwind CSS v4.0.0\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': scaleBreak()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': scaleBreak()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Screen Reader Only\n * @see https://tailwindcss.com/docs/display#screen-reader-only\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: scalePositionWithArbitrary()\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: scaleOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': scaleOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': scaleOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: scaleOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': scaleOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': scaleOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: scaleInset()\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': scaleInset()\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': scaleInset()\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: scaleInset()\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: scaleInset()\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: scaleInset()\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: scaleInset()\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: scaleInset()\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: scaleInset()\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------------\n // --- Flexbox and Grid ---\n // ------------------------\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: [isFraction, 'full', 'auto', themeContainer, ...scaleUnambiguousSpacing()]\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['nowrap', 'wrap', 'wrap-reverse']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: [isInteger, 'first', 'last', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': scaleGridAutoColsRows()\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': scaleGridAutoColsRows()\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: scaleUnambiguousSpacing()\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': scaleUnambiguousSpacing()\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': scaleUnambiguousSpacing()\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: [...scaleAlignPrimaryAxis(), 'normal']\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': [...scaleAlignSecondaryAxis(), 'normal']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...scaleAlignPrimaryAxis()]\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: [...scaleAlignSecondaryAxis(), {\n baseline: ['', 'last']\n }]\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', ...scaleAlignSecondaryAxis(), {\n baseline: ['', 'last']\n }]\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': scaleAlignPrimaryAxis()\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': [...scaleAlignSecondaryAxis(), 'baseline']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: scaleUnambiguousSpacing()\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: scaleUnambiguousSpacing()\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: scaleUnambiguousSpacing()\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: scaleMargin()\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: scaleMargin()\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: scaleMargin()\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: scaleMargin()\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: scaleMargin()\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: scaleMargin()\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: scaleMargin()\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: scaleMargin()\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: scaleMargin()\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x': [{\n 'space-x': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y': [{\n 'space-y': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y-reverse': ['space-y-reverse'],\n // --------------\n // --- Sizing ---\n // --------------\n /**\n * Size\n * @see https://tailwindcss.com/docs/width#setting-both-width-and-height\n */\n size: [{\n size: scaleSizing()\n }],\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: [themeContainer, 'screen', ...scaleSizing()]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [themeContainer, 'screen', /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'none', ...scaleSizing()]\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [themeContainer, 'screen', 'none', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'prose', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n {\n screen: [themeBreakpoint]\n }, ...scaleSizing()]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: ['screen', 'lh', ...scaleSizing()]\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': ['screen', 'lh', 'none', ...scaleSizing()]\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': ['screen', 'lh', ...scaleSizing()]\n }],\n // ------------------\n // --- Typography ---\n // ------------------\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Font Stretch\n * @see https://tailwindcss.com/docs/font-stretch\n */\n 'font-stretch': [{\n 'font-stretch': ['ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', isPercent, isArbitraryValue]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: [/** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n themeLeading, ...scaleUnambiguousSpacing()]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://v3.tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: scaleColor()\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: scaleColor()\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...scaleLineStyle(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: [isNumber, 'from-font', 'auto', isArbitraryVariable, isArbitraryLength]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: scaleColor()\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: scaleUnambiguousSpacing()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Overflow Wrap\n * @see https://tailwindcss.com/docs/overflow-wrap\n */\n wrap: [{\n wrap: ['break-word', 'anywhere', 'normal']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // -------------------\n // --- Backgrounds ---\n // -------------------\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: scaleBgPosition()\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: scaleBgRepeat()\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: scaleBgSize()\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n linear: [{\n to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isInteger, isArbitraryVariable, isArbitraryValue],\n radial: ['', isArbitraryVariable, isArbitraryValue],\n conic: [isInteger, isArbitraryVariable, isArbitraryValue]\n }, isArbitraryVariableImage, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: scaleColor()\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: scaleColor()\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: scaleColor()\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: scaleColor()\n }],\n // ---------------\n // --- Borders ---\n // ---------------\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: scaleRadius()\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': scaleRadius()\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': scaleRadius()\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': scaleRadius()\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': scaleRadius()\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': scaleRadius()\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': scaleRadius()\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': scaleRadius()\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': scaleRadius()\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': scaleRadius()\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': scaleRadius()\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': scaleRadius()\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': scaleRadius()\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': scaleRadius()\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': scaleRadius()\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: scaleBorderWidth()\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': scaleBorderWidth()\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': scaleBorderWidth()\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': scaleBorderWidth()\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': scaleBorderWidth()\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': scaleBorderWidth()\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': scaleBorderWidth()\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': scaleBorderWidth()\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': scaleBorderWidth()\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x': [{\n 'divide-x': scaleBorderWidth()\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y': [{\n 'divide-y': scaleBorderWidth()\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style\n */\n 'divide-style': [{\n divide: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: scaleColor()\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': scaleColor()\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': scaleColor()\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': scaleColor()\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': scaleColor()\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': scaleColor()\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': scaleColor()\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': scaleColor()\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': scaleColor()\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: scaleColor()\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: [...scaleLineStyle(), 'none', 'hidden']\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: scaleColor()\n }],\n // ---------------\n // --- Effects ---\n // ---------------\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color\n */\n 'shadow-color': [{\n shadow: scaleColor()\n }],\n /**\n * Inset Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow\n */\n 'inset-shadow': [{\n 'inset-shadow': ['none', themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Inset Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color\n */\n 'inset-shadow-color': [{\n 'inset-shadow': scaleColor()\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring\n */\n 'ring-w': [{\n ring: scaleBorderWidth()\n }],\n /**\n * Ring Width Inset\n * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color\n */\n 'ring-color': [{\n ring: scaleColor()\n }],\n /**\n * Ring Offset Width\n * @see https://v3.tailwindcss.com/docs/ring-offset-width\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-w': [{\n 'ring-offset': [isNumber, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://v3.tailwindcss.com/docs/ring-offset-color\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-color': [{\n 'ring-offset': scaleColor()\n }],\n /**\n * Inset Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring\n */\n 'inset-ring-w': [{\n 'inset-ring': scaleBorderWidth()\n }],\n /**\n * Inset Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color\n */\n 'inset-ring-color': [{\n 'inset-ring': scaleColor()\n }],\n /**\n * Text Shadow\n * @see https://tailwindcss.com/docs/text-shadow\n */\n 'text-shadow': [{\n 'text-shadow': ['none', themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Text Shadow Color\n * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color\n */\n 'text-shadow-color': [{\n 'text-shadow': scaleColor()\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': scaleBlendMode()\n }],\n /**\n * Mask Clip\n * @see https://tailwindcss.com/docs/mask-clip\n */\n 'mask-clip': [{\n 'mask-clip': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n }, 'mask-no-clip'],\n /**\n * Mask Composite\n * @see https://tailwindcss.com/docs/mask-composite\n */\n 'mask-composite': [{\n mask: ['add', 'subtract', 'intersect', 'exclude']\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image-linear-pos': [{\n 'mask-linear': [isNumber]\n }],\n 'mask-image-linear-from-pos': [{\n 'mask-linear-from': scaleMaskImagePosition()\n }],\n 'mask-image-linear-to-pos': [{\n 'mask-linear-to': scaleMaskImagePosition()\n }],\n 'mask-image-linear-from-color': [{\n 'mask-linear-from': scaleColor()\n }],\n 'mask-image-linear-to-color': [{\n 'mask-linear-to': scaleColor()\n }],\n 'mask-image-t-from-pos': [{\n 'mask-t-from': scaleMaskImagePosition()\n }],\n 'mask-image-t-to-pos': [{\n 'mask-t-to': scaleMaskImagePosition()\n }],\n 'mask-image-t-from-color': [{\n 'mask-t-from': scaleColor()\n }],\n 'mask-image-t-to-color': [{\n 'mask-t-to': scaleColor()\n }],\n 'mask-image-r-from-pos': [{\n 'mask-r-from': scaleMaskImagePosition()\n }],\n 'mask-image-r-to-pos': [{\n 'mask-r-to': scaleMaskImagePosition()\n }],\n 'mask-image-r-from-color': [{\n 'mask-r-from': scaleColor()\n }],\n 'mask-image-r-to-color': [{\n 'mask-r-to': scaleColor()\n }],\n 'mask-image-b-from-pos': [{\n 'mask-b-from': scaleMaskImagePosition()\n }],\n 'mask-image-b-to-pos': [{\n 'mask-b-to': scaleMaskImagePosition()\n }],\n 'mask-image-b-from-color': [{\n 'mask-b-from': scaleColor()\n }],\n 'mask-image-b-to-color': [{\n 'mask-b-to': scaleColor()\n }],\n 'mask-image-l-from-pos': [{\n 'mask-l-from': scaleMaskImagePosition()\n }],\n 'mask-image-l-to-pos': [{\n 'mask-l-to': scaleMaskImagePosition()\n }],\n 'mask-image-l-from-color': [{\n 'mask-l-from': scaleColor()\n }],\n 'mask-image-l-to-color': [{\n 'mask-l-to': scaleColor()\n }],\n 'mask-image-x-from-pos': [{\n 'mask-x-from': scaleMaskImagePosition()\n }],\n 'mask-image-x-to-pos': [{\n 'mask-x-to': scaleMaskImagePosition()\n }],\n 'mask-image-x-from-color': [{\n 'mask-x-from': scaleColor()\n }],\n 'mask-image-x-to-color': [{\n 'mask-x-to': scaleColor()\n }],\n 'mask-image-y-from-pos': [{\n 'mask-y-from': scaleMaskImagePosition()\n }],\n 'mask-image-y-to-pos': [{\n 'mask-y-to': scaleMaskImagePosition()\n }],\n 'mask-image-y-from-color': [{\n 'mask-y-from': scaleColor()\n }],\n 'mask-image-y-to-color': [{\n 'mask-y-to': scaleColor()\n }],\n 'mask-image-radial': [{\n 'mask-radial': [isArbitraryVariable, isArbitraryValue]\n }],\n 'mask-image-radial-from-pos': [{\n 'mask-radial-from': scaleMaskImagePosition()\n }],\n 'mask-image-radial-to-pos': [{\n 'mask-radial-to': scaleMaskImagePosition()\n }],\n 'mask-image-radial-from-color': [{\n 'mask-radial-from': scaleColor()\n }],\n 'mask-image-radial-to-color': [{\n 'mask-radial-to': scaleColor()\n }],\n 'mask-image-radial-shape': [{\n 'mask-radial': ['circle', 'ellipse']\n }],\n 'mask-image-radial-size': [{\n 'mask-radial': [{\n closest: ['side', 'corner'],\n farthest: ['side', 'corner']\n }]\n }],\n 'mask-image-radial-pos': [{\n 'mask-radial-at': scalePosition()\n }],\n 'mask-image-conic-pos': [{\n 'mask-conic': [isNumber]\n }],\n 'mask-image-conic-from-pos': [{\n 'mask-conic-from': scaleMaskImagePosition()\n }],\n 'mask-image-conic-to-pos': [{\n 'mask-conic-to': scaleMaskImagePosition()\n }],\n 'mask-image-conic-from-color': [{\n 'mask-conic-from': scaleColor()\n }],\n 'mask-image-conic-to-color': [{\n 'mask-conic-to': scaleColor()\n }],\n /**\n * Mask Mode\n * @see https://tailwindcss.com/docs/mask-mode\n */\n 'mask-mode': [{\n mask: ['alpha', 'luminance', 'match']\n }],\n /**\n * Mask Origin\n * @see https://tailwindcss.com/docs/mask-origin\n */\n 'mask-origin': [{\n 'mask-origin': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n }],\n /**\n * Mask Position\n * @see https://tailwindcss.com/docs/mask-position\n */\n 'mask-position': [{\n mask: scaleBgPosition()\n }],\n /**\n * Mask Repeat\n * @see https://tailwindcss.com/docs/mask-repeat\n */\n 'mask-repeat': [{\n mask: scaleBgRepeat()\n }],\n /**\n * Mask Size\n * @see https://tailwindcss.com/docs/mask-size\n */\n 'mask-size': [{\n mask: scaleBgSize()\n }],\n /**\n * Mask Type\n * @see https://tailwindcss.com/docs/mask-type\n */\n 'mask-type': [{\n 'mask-type': ['alpha', 'luminance']\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image': [{\n mask: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // ---------------\n // --- Filters ---\n // ---------------\n /**\n * Filter\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: scaleBlur()\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeDropShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Drop Shadow Color\n * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color\n */\n 'drop-shadow-color': [{\n 'drop-shadow': scaleColor()\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Filter\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': scaleBlur()\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n // --------------\n // --- Tables ---\n // --------------\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': scaleUnambiguousSpacing()\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // ---------------------------------\n // --- Transitions and Animation ---\n // ---------------------------------\n /**\n * Transition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['', 'all', 'colors', 'opacity', 'shadow', 'transform', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Behavior\n * @see https://tailwindcss.com/docs/transition-behavior\n */\n 'transition-behavior': [{\n transition: ['normal', 'discrete']\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------\n // --- Transforms ---\n // ------------------\n /**\n * Backface Visibility\n * @see https://tailwindcss.com/docs/backface-visibility\n */\n backface: [{\n backface: ['hidden', 'visible']\n }],\n /**\n * Perspective\n * @see https://tailwindcss.com/docs/perspective\n */\n perspective: [{\n perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Perspective Origin\n * @see https://tailwindcss.com/docs/perspective-origin\n */\n 'perspective-origin': [{\n 'perspective-origin': scalePositionWithArbitrary()\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: scaleRotate()\n }],\n /**\n * Rotate X\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-x': [{\n 'rotate-x': scaleRotate()\n }],\n /**\n * Rotate Y\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-y': [{\n 'rotate-y': scaleRotate()\n }],\n /**\n * Rotate Z\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-z': [{\n 'rotate-z': scaleRotate()\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: scaleScale()\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': scaleScale()\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': scaleScale()\n }],\n /**\n * Scale Z\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-z': [{\n 'scale-z': scaleScale()\n }],\n /**\n * Scale 3D\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-3d': ['scale-3d'],\n /**\n * Skew\n * @see https://tailwindcss.com/docs/skew\n */\n skew: [{\n skew: scaleSkew()\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': scaleSkew()\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': scaleSkew()\n }],\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu']\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: scalePositionWithArbitrary()\n }],\n /**\n * Transform Style\n * @see https://tailwindcss.com/docs/transform-style\n */\n 'transform-style': [{\n transform: ['3d', 'flat']\n }],\n /**\n * Translate\n * @see https://tailwindcss.com/docs/translate\n */\n translate: [{\n translate: scaleTranslate()\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': scaleTranslate()\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': scaleTranslate()\n }],\n /**\n * Translate Z\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-z': [{\n 'translate-z': scaleTranslate()\n }],\n /**\n * Translate None\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-none': ['translate-none'],\n // ---------------------\n // --- Interactivity ---\n // ---------------------\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: scaleColor()\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: scaleColor()\n }],\n /**\n * Color Scheme\n * @see https://tailwindcss.com/docs/color-scheme\n */\n 'color-scheme': [{\n scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Field Sizing\n * @see https://tailwindcss.com/docs/field-sizing\n */\n 'field-sizing': [{\n 'field-sizing': ['fixed', 'content']\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['auto', 'none']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', '', 'y', 'x']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryVariable, isArbitraryValue]\n }],\n // -----------\n // --- SVG ---\n // -----------\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: ['none', ...scaleColor()]\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: ['none', ...scaleColor()]\n }],\n // ---------------------\n // --- Accessibility ---\n // ---------------------\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-x', 'border-w-y', 'border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-x', 'border-color-y', 'border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n translate: ['translate-x', 'translate-y', 'translate-none'],\n 'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n },\n orderSensitiveModifiers: ['*', '**', 'after', 'backdrop', 'before', 'details-content', 'file', 'first-letter', 'first-line', 'marker', 'placeholder', 'selection']\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n overrideConfigProperties(baseConfig.theme, override.theme);\n overrideConfigProperties(baseConfig.classGroups, override.classGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroupModifiers, override.conflictingClassGroupModifiers);\n overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers);\n mergeConfigProperties(baseConfig.theme, extend.theme);\n mergeConfigProperties(baseConfig.classGroups, extend.classGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroupModifiers, extend.conflictingClassGroupModifiers);\n mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers');\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n mergeArrayProperties(baseObject, mergeObject, key);\n }\n }\n};\nconst mergeArrayProperties = (baseObject, mergeObject, key) => {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue;\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { clsx, type ClassValue } from \"clsx\"\r\nimport { twMerge } from \"tailwind-merge\"\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs))\r\n}\r\n","/* eslint-disable import/order */\r\nimport { cn } from \"@/lib/utils\";\r\nimport * as React from \"react\";\r\n\r\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\r\n return (\r\n <div\r\n data-slot='table-container'\r\n className='relative w-full border border-[#dee1e7] rounded-[4px] overflow-hidden bg-[#ffffff]'\r\n >\r\n <table\r\n data-slot='table'\r\n className={cn(\"w-full caption-bottom\", className)}\r\n {...props}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\r\n return (\r\n <thead\r\n data-slot='table-header'\r\n className={cn(\"[&_tr]:border-b\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\r\n return (\r\n <tbody\r\n data-slot='table-body'\r\n className={cn(\"[&_tr:last-child]:border-0\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\r\n return (\r\n <tfoot\r\n data-slot='table-footer'\r\n className={cn(\r\n \"bg-muted/50 border-t font-medium [&>tr]:last:border-b-0\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\r\n return (\r\n <tr\r\n data-slot='table-row'\r\n className={cn(\r\n \"hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\r\n return (\r\n <th\r\n data-slot='table-head'\r\n className={cn(\r\n \"text-left align-middle font-medium whitespace-nowrap\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\r\n return (\r\n <td\r\n className={cn(\"whitespace-nowrap \", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableCaption({\r\n className,\r\n ...props\r\n}: React.ComponentProps<\"caption\">) {\r\n return (\r\n <caption\r\n data-slot='table-caption'\r\n className={cn(\"text-muted-foreground mt-4 text-sm\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport {\r\n Table,\r\n TableHeader,\r\n TableBody,\r\n TableFooter,\r\n TableHead,\r\n TableRow,\r\n TableCell,\r\n TableCaption,\r\n};\r\n","/* eslint-disable react/prop-types */\r\nimport classNames from \"classnames\";\r\nimport { ComponentProps } from \"react\";\r\nimport styles from \"./Table.module.scss\";\r\nimport {\r\n Table as ShadcnTable,\r\n TableBody as ShadcnTableBody,\r\n TableCaption as ShadcnTableCaption,\r\n TableCell as ShadcnTableCell,\r\n TableHead as ShadcnTableHead,\r\n TableHeader as ShadcnTableHeader,\r\n TableRow as ShadcnTableRow,\r\n} from \"@/components/ui/table\";\r\n\r\nexport const Table: React.FC<React.ComponentProps<typeof ShadcnTable>> = (\r\n props,\r\n) => {\r\n return (\r\n <ShadcnTable\r\n {...props}\r\n className={classNames(props.className)}\r\n />\r\n );\r\n};\r\n\r\nexport const TableBody: React.FC<\r\n React.ComponentProps<typeof ShadcnTableBody>\r\n> = (props) => {\r\n return (\r\n <ShadcnTableBody\r\n {...props}\r\n className={classNames(props.className, \"custom-table-body\")}\r\n />\r\n );\r\n};\r\n\r\nexport const TableCaption: React.FC<\r\n React.ComponentProps<typeof ShadcnTableCaption>\r\n> = (props) => {\r\n return (\r\n <ShadcnTableCaption\r\n {...props}\r\n className={classNames(props.className, \"custom-table-caption\")}\r\n />\r\n );\r\n};\r\ntype VerticalAlign = \"top\" | \"middle\" | \"bottom\";\r\n\r\ninterface CustomTableCellProps extends ComponentProps<typeof ShadcnTableCell> {\r\n vAlign?: VerticalAlign;\r\n}\r\n\r\nexport const TableCell: React.FC<CustomTableCellProps> = ({\r\n colSpan,\r\n align,\r\n className,\r\n ...rest\r\n}) => {\r\n const alignClass = align ? `align-${align}` : \"\";\r\n\r\n return (\r\n <ShadcnTableCell\r\n {...rest}\r\n colSpan={colSpan}\r\n className={classNames(className, alignClass)}\r\n />\r\n );\r\n};\r\nTableCell.displayName = \"CustomTableCell\";\r\n\r\nexport const TableHeader: React.FC<\r\n React.ComponentProps<typeof ShadcnTableHeader>\r\n> = (props) => {\r\n return (\r\n <ShadcnTableHeader\r\n {...props}\r\n className={classNames(props.className, \"custom-table-head\")}\r\n />\r\n );\r\n};\r\n\r\ninterface CustomTableHeadProps\r\n extends React.ComponentProps<typeof ShadcnTableHead> {\r\n variant?: \"primary\" | \"secondary\";\r\n}\r\n\r\nexport const TableHead: React.FC<CustomTableHeadProps> = ({\r\n variant = \"primary\",\r\n className,\r\n style,\r\n children,\r\n ...props\r\n}) => {\r\n const headerClass = classNames(\r\n styles.th,\r\n className,\r\n {\r\n [styles.primary]: variant === \"primary\",\r\n [styles.secondary]: variant === \"secondary\",\r\n },\r\n \"custom-table-header\",\r\n );\r\n\r\n return (\r\n <ShadcnTableHead\r\n {...props}\r\n className={headerClass}\r\n style={style}\r\n >\r\n {children}\r\n </ShadcnTableHead>\r\n );\r\n};\r\n\r\nexport const TableRow: React.FC<React.ComponentProps<typeof ShadcnTableRow>> = (\r\n props,\r\n) => {\r\n return (\r\n <ShadcnTableRow\r\n {...props}\r\n className={classNames(\r\n props.className,\r\n \"custom-table-row\",\r\n \"align-top\",\r\n styles.bottomBorder,\r\n )}\r\n />\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport { CSSProperties, ReactNode, useId, useRef, useState } from \"react\";\r\nimport styles from \"./Tooltip.module.scss\";\r\n\r\nexport interface TooltipProps {\r\n active?: boolean;\r\n content: ReactNode;\r\n hoverDelay?: number;\r\n preferredPosition?: \"above\" | \"below\" | \"mostSpace\" | \"cover\";\r\n zIndexOverride?: number;\r\n persistOnClick?: boolean;\r\n trigger?: \"hover\" | \"click\" | \"both\";\r\n children: ReactNode;\r\n className?: string;\r\n tooltipClassName?: string;\r\n}\r\n\r\nexport const Tooltip = ({\r\n active: controlledActive,\r\n content,\r\n hoverDelay = 300,\r\n preferredPosition = \"above\",\r\n zIndexOverride,\r\n trigger = \"hover\",\r\n children,\r\n className,\r\n tooltipClassName,\r\n}: TooltipProps) => {\r\n const [active, setActive] = useState(false);\r\n const [computedPosition, setComputedPosition] = useState(preferredPosition);\r\n const hoverTimeout = useRef<number | null>(null);\r\n const persist = useRef(false);\r\n const triggerRef = useRef<HTMLSpanElement | null>(null);\r\n\r\n const isActive = controlledActive !== undefined ? controlledActive : active;\r\n const canTriggerHover = trigger === \"hover\" || trigger === \"both\";\r\n const canTriggerClick = trigger === \"click\" || trigger === \"both\";\r\n\r\n const tooltipId = useId();\r\n\r\n const positionClass = styles[`tooltip-position-${computedPosition}`] || \"\";\r\n\r\n const wrapperClassName = classNames(styles.tooltipWrapper, className);\r\n const tooltipClass = classNames(\r\n styles.tooltip,\r\n positionClass,\r\n tooltipClassName,\r\n );\r\n\r\n const style: CSSProperties = {\r\n zIndex: zIndexOverride ?? 400,\r\n position: \"absolute\",\r\n };\r\n\r\n const handleMouseEnter = () => {\r\n if (!canTriggerHover || controlledActive !== undefined) return;\r\n\r\n if (hoverTimeout.current) clearTimeout(hoverTimeout.current);\r\n\r\n hoverTimeout.current = window.setTimeout(() => {\r\n if (preferredPosition === \"mostSpace\" && triggerRef.current) {\r\n const rect = triggerRef.current.getBoundingClientRect();\r\n const spaceAbove = rect.top;\r\n const spaceBelow = window.innerHeight - rect.bottom;\r\n\r\n setComputedPosition(spaceBelow >= spaceAbove ? \"below\" : \"above\");\r\n } else {\r\n setComputedPosition(preferredPosition);\r\n }\r\n\r\n setActive(true);\r\n }, hoverDelay);\r\n };\r\n\r\n const handleMouseLeave = () => {\r\n if (!canTriggerHover || controlledActive !== undefined) return;\r\n\r\n if (hoverTimeout.current) clearTimeout(hoverTimeout.current);\r\n\r\n hoverTimeout.current = window.setTimeout(() => {\r\n if (!persist.current) {\r\n setActive(false);\r\n }\r\n }, 50);\r\n };\r\n\r\n const handleClick = () => {\r\n if (!canTriggerClick || controlledActive !== undefined) return;\r\n\r\n persist.current = !persist.current;\r\n\r\n if (preferredPosition === \"mostSpace\" && triggerRef.current) {\r\n const rect = triggerRef.current.getBoundingClientRect();\r\n const spaceAbove = rect.top;\r\n const spaceBelow = window.innerHeight - rect.bottom;\r\n\r\n setComputedPosition(spaceBelow >= spaceAbove ? \"below\" : \"above\");\r\n } else {\r\n setComputedPosition(preferredPosition);\r\n }\r\n\r\n setActive(persist.current);\r\n };\r\n\r\n return (\r\n <span\r\n ref={triggerRef}\r\n className={wrapperClassName}\r\n onMouseEnter={handleMouseEnter}\r\n onMouseLeave={handleMouseLeave}\r\n onClick={handleClick}\r\n aria-describedby={isActive ? tooltipId : undefined}\r\n tabIndex={0}\r\n style={{ display: \"inline-block\", position: \"relative\" }}\r\n >\r\n {children}\r\n\r\n {isActive && (\r\n <div\r\n id={tooltipId}\r\n role='tooltip'\r\n className={tooltipClass}\r\n style={style}\r\n >\r\n {content}\r\n </div>\r\n )}\r\n </span>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport React from \"react\";\r\nimport { Typography } from \"../Typography/Typography\";\r\nimport styles from \"./TopBar.module.scss\";\r\n\r\ninterface Section {\r\n id: number | string;\r\n title: string;\r\n component: React.ReactNode;\r\n}\r\n\r\ninterface TopBarProps {\r\n sections: Section[];\r\n activeTab?: number | string;\r\n onTabSelect: (id: number | string) => void;\r\n isStretched?: boolean;\r\n}\r\n\r\nexport const TopBar = ({\r\n sections,\r\n activeTab,\r\n onTabSelect,\r\n isStretched = true,\r\n}: TopBarProps) => {\r\n return (\r\n <div>\r\n <div className={styles.topBar}>\r\n {sections.map((section) => (\r\n <div\r\n key={section.id}\r\n className={classNames(\r\n styles.section,\r\n isStretched && styles.scretched,\r\n activeTab === section.id && styles.active,\r\n )}\r\n onClick={() => onTabSelect(section.id)}\r\n >\r\n <Typography\r\n variant={\"heading-xs\"}\r\n className={styles.sm}\r\n >\r\n {section.title}\r\n </Typography>\r\n <Typography\r\n variant={\"heading-md\"}\r\n className={styles.md}\r\n >\r\n {section.title}\r\n </Typography>\r\n </div>\r\n ))}\r\n </div>\r\n {sections.find((section) => section.id === activeTab)?.component ?? (\r\n <Typography variant='body-lg'>Not Found</Typography>\r\n )}\r\n </div>\r\n );\r\n};\r\n","// TextArea.tsx\r\nimport classNames from \"classnames\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { BaseInputWrapper } from \"./BaseInputWrapper\";\r\nimport styles from \"./Input.module.scss\";\r\n\r\ninterface TextAreaProps\r\n extends Omit<\r\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\r\n \"prefix\" | \"postfix\"\r\n > {\r\n label?: string;\r\n error?: string;\r\n helperText?: string;\r\n prefix?: React.ReactNode;\r\n postfix?: React.ReactNode;\r\n}\r\n\r\nexport const TextArea = React.forwardRef<HTMLTextAreaElement, TextAreaProps>(\r\n (\r\n {\r\n label,\r\n error,\r\n helperText,\r\n prefix,\r\n postfix,\r\n disabled,\r\n readOnly,\r\n className,\r\n onChange,\r\n value,\r\n defaultValue,\r\n rows = 4,\r\n ...rest\r\n },\r\n ref,\r\n ) => {\r\n const isControlled = value !== undefined;\r\n const [internalValue, setInternalValue] = useState<string>(\r\n defaultValue?.toString() || \"\",\r\n );\r\n\r\n useEffect(() => {\r\n if (!isControlled && defaultValue !== undefined) {\r\n setInternalValue(defaultValue.toString());\r\n }\r\n }, [defaultValue]);\r\n\r\n const currentValue = isControlled ? value : internalValue;\r\n\r\n const handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\r\n const val = e.target.value;\r\n\r\n if (!isControlled) setInternalValue(val);\r\n\r\n onChange?.(e);\r\n };\r\n\r\n return (\r\n <BaseInputWrapper\r\n label={label}\r\n error={error}\r\n helperText={helperText}\r\n prefix={prefix}\r\n postfix={postfix}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n >\r\n <textarea\r\n ref={ref}\r\n className={classNames(styles.input, className)}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n value={currentValue}\r\n rows={rows}\r\n onChange={handleChange}\r\n {...rest}\r\n />\r\n </BaseInputWrapper>\r\n );\r\n },\r\n);\r\n\r\nTextArea.displayName = \"TextArea\";\r\nexport type { TextAreaProps };\r\n"],"names":["hasOwn","classNames","classes","i","arg","appendClass","parseValue","key","value","newClass","module","Typography","variant","className","children","weight","variantClass","styles","weightClass","jsx","t","e","this","n","s","a","o","c","f","h","d","l","$","y","M","m","r","v","u","g","D","p","S","_","w","O","b","k","formatDeadline","date","day","dayjs","dayOfMonth","suffix","Banner","color","title","bgPattern","deadline","bgPatternFinished","buttonColor","onClick","isFinished","setIsFinished","useState","timeLeft","setTimeLeft","useEffect","deadlineDate","calculateTimeUnits","milliseconds","updateCountdown","now","remaining","interval","renderTimerCell","label","jsxs","Button","state","size","selected","disabled","rest","buttonClass","toKebabCase","string","toCamelCase","match","p1","p2","toPascalCase","camelCase","mergeClasses","index","array","hasA11yProp","props","prop","defaultAttributes","Icon","forwardRef","strokeWidth","absoluteStrokeWidth","iconNode","ref","createElement","tag","attrs","createLucideIcon","iconName","Component","__iconNode","CheckCheck","ChevronDown","ChevronUp","CircleAlert","OctagonAlert","TriangleAlert","X","InlineError","Checkbox","error","helperText","indeterminate","onChange","useRef","handleLabelClick","event","NavigationItem","icon","secondaryIcon","collapsed","active","isParentNode","Collapse","activeItemId","item","sideArrowIndex","_a","child","isOpen","setIsOpen","handleToggle","_b","subRoute","CourseCollapse","Dropdown","React","readOnly","placeholder","options","onFocus","onBlur","focusedIndex","setFocusedIndex","dropdownRef","optionsRef","selectedOption","option","handleOptionSelect","handleKeyDown","nextIndex","prevIndex","handleClickOutside","el","EmptyBase","EmptyTitle","Fragment","EmptyContext","EmptyContent","EmptyButtonContent","EmptyPrimaryButton","EmptySecondaryButton","EmptyImage","src","alt","Empty","FormItemContext","createContext","useFormItem","useContext","FormItem","Label","Input","Message","IconButton","BaseInputWrapper","prefix","postfix","maskRegex","textPrefix","handleChange","handleFocus","newVal","__insertCSS","code","head","style","getAsset","type","SuccessIcon","InfoIcon","WarningIcon","ErrorIcon","bars","Loader","visible","CloseIcon","useIsDocumentHidden","isDocumentHidden","setIsDocumentHidden","callback","toastsCounter","Observer","subscriber","data","_data_id","message","id","alreadyExists","toast","dismissible","promise","shouldDismiss","result","originalPromise","response","isHttpResponse","promiseData","description","toastSettings","unwrap","resolve","reject","ToastState","toastFunction","basicToast","getHistory","getToasts","isAction","action","VISIBLE_TOASTS_AMOUNT","VIEWPORT_OFFSET","MOBILE_VIEWPORT_OFFSET","TOAST_LIFETIME","TOAST_WIDTH","GAP","SWIPE_THRESHOLD","TIME_BEFORE_UNMOUNT","cn","getDefaultSwipeDirections","position","x","directions","Toast","_toast_classNames","_toast_classNames1","_toast_classNames2","_toast_classNames3","_toast_classNames4","_toast_classNames5","_toast_classNames6","_toast_classNames7","_toast_classNames8","ToasterInvert","unstyled","interacting","setHeights","visibleToasts","heights","toasts","expanded","removeToast","defaultRichColors","closeButtonFromToaster","cancelButtonStyle","actionButtonStyle","descriptionClassName","durationFromToaster","gap","expandByDefault","icons","closeButtonAriaLabel","swipeDirection","setSwipeDirection","swipeOutDirection","setSwipeOutDirection","mounted","setMounted","removed","setRemoved","swiping","setSwiping","swipeOut","setSwipeOut","isSwiped","setIsSwiped","offsetBeforeRemove","setOffsetBeforeRemove","initialHeight","setInitialHeight","remainingTime","dragStartTime","toastRef","isFront","isVisible","toastType","toastClassname","toastDescriptionClassname","heightIndex","height","closeButton","_toast_closeButton","duration","closeTimerStartTimeRef","offset","lastCloseTimerStartTimeRef","pointerStartRef","toastsHeightBefore","prev","curr","reducerIndex","invert","toastNode","originalHeight","newHeight","deleteToast","timeoutId","elapsedTime","getLoadingIcon","_toast_richColors","_icons_close","_toastRef_current","_toastRef_current1","_dragStartTime_current","swipeAmountX","swipeAmountY","timeTaken","swipeAmount","velocity","_toastRef_current2","_toastRef_current3","_window_getSelection","yDelta","xDelta","_props_swipeDirections","swipeDirections","getDampening","delta","dampenedDelta","getDocumentDirection","dirAttribute","assignOffset","defaultOffset","mobileOffset","isMobile","defaultValue","assignAll","Toaster","hotkey","expand","theme","richColors","toastOptions","dir","containerAriaLabel","setToasts","possiblePositions","setExpanded","setInteracting","actualTheme","setActualTheme","listRef","hotkeyLabel","lastFocusedElementRef","isFocusWithinRef","toastToRemove","_toasts_find","ReactDOM","indexOfExistingToast","darkMediaQuery","matches","_listRef_current","_listRef_current1","_heights_","_toastOptions_duration","_toastOptions_closeButton","CustomToaster","text","ModalBase","open","onClose","primaryButtonProps","secondaryButtonProps","tone","toneClass","createPortal","Section","Modal","showModal","container","root","createRoot","unmount","handleOk","handleCancel","ModalAPI","opts","PageHeader","ProgressLine","percent","RadioButton","name","SectionHeader","extra","Cell","cellType","align","cellClass","clsx","CLASS_PART_SEPARATOR","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","classParts","getGroupRecursive","getGroupIdForArbitraryProperty","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","classGroupFromNextClassPart","classRest","validator","arbitraryPropertyRegex","arbitraryPropertyClassName","property","classGroups","processClassesRecursively","classGroup","classDefinition","classPartObjectToEdit","getPart","isThemeGetter","path","currentClassPartObject","pathPart","func","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","IMPORTANT_MODIFIER","MODIFIER_SEPARATOR","MODIFIER_SEPARATOR_LENGTH","createParseClassName","experimentalParseClassName","parseClassName","modifiers","bracketDepth","parenDepth","modifierStart","postfixModifierPosition","currentCharacter","baseClassNameWithImportantModifier","baseClassName","stripImportantModifier","hasImportantModifier","maybePostfixModifierPosition","fullPrefix","parseClassNameOriginal","createSortModifiers","orderSensitiveModifiers","modifier","sortedModifiers","unsortedModifiers","createConfigUtils","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","getClassGroupId","getConflictingClassGroupIds","sortModifiers","classGroupsInConflict","originalClassName","isExternal","variantModifier","modifierId","classId","conflictGroups","group","twJoin","argument","resolvedValue","toValue","mix","createTailwindMerge","createConfigFirst","createConfigRest","cacheGet","cacheSet","functionToCall","initTailwindMerge","previousConfig","createConfigCurrent","tailwindMerge","cachedResult","fromTheme","themeGetter","arbitraryValueRegex","arbitraryVariableRegex","fractionRegex","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isFraction","isNumber","isInteger","isPercent","isTshirtSize","isAny","isLengthOnly","isNever","isShadow","isImage","isAnyNonArbitrary","isArbitraryValue","isArbitraryVariable","isArbitrarySize","getIsArbitraryValue","isLabelSize","isArbitraryLength","isLabelLength","isArbitraryNumber","isLabelNumber","isArbitraryPosition","isLabelPosition","isArbitraryImage","isLabelImage","isArbitraryShadow","isLabelShadow","isArbitraryVariableLength","getIsArbitraryVariable","isArbitraryVariableFamilyName","isLabelFamilyName","isArbitraryVariablePosition","isArbitraryVariableSize","isArbitraryVariableImage","isArbitraryVariableShadow","testLabel","testValue","shouldMatchNoLabel","getDefaultConfig","themeColor","themeFont","themeText","themeFontWeight","themeTracking","themeLeading","themeBreakpoint","themeContainer","themeSpacing","themeRadius","themeShadow","themeInsetShadow","themeTextShadow","themeDropShadow","themeBlur","themePerspective","themeAspect","themeEase","themeAnimate","scaleBreak","scalePosition","scalePositionWithArbitrary","scaleOverflow","scaleOverscroll","scaleUnambiguousSpacing","scaleInset","scaleGridTemplateColsRows","scaleGridColRowStartAndEnd","scaleGridColRowStartOrEnd","scaleGridAutoColsRows","scaleAlignPrimaryAxis","scaleAlignSecondaryAxis","scaleMargin","scaleSizing","scaleColor","scaleBgPosition","scaleBgRepeat","scaleBgSize","scaleGradientStopPosition","scaleRadius","scaleBorderWidth","scaleLineStyle","scaleBlendMode","scaleMaskImagePosition","scaleBlur","scaleRotate","scaleScale","scaleSkew","scaleTranslate","twMerge","inputs","Table","TableHeader","TableBody","TableRow","TableHead","TableCell","TableCaption","ShadcnTable","ShadcnTableBody","ShadcnTableCaption","colSpan","alignClass","ShadcnTableCell","ShadcnTableHeader","headerClass","ShadcnTableHead","ShadcnTableRow","Tooltip","controlledActive","content","hoverDelay","preferredPosition","zIndexOverride","trigger","tooltipClassName","setActive","computedPosition","setComputedPosition","hoverTimeout","persist","triggerRef","isActive","canTriggerHover","canTriggerClick","tooltipId","useId","positionClass","wrapperClassName","tooltipClass","rect","spaceAbove","spaceBelow","TopBar","sections","activeTab","onTabSelect","isStretched","section","TextArea","rows","isControlled","internalValue","setInternalValue","currentValue","val"],"mappings":";;;;;;;;;;;;;;;AAOA,GAAC,WAAY;AAGZ,QAAIA,IAAS,CAAA,EAAG;AAEhB,aAASC,IAAc;AAGtB,eAFIC,IAAU,IAELC,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAC1C,YAAIC,IAAM,UAAUD,CAAC;AACrB,QAAIC,MACHF,IAAUG,EAAYH,GAASI,EAAWF,CAAG,CAAC;AAAA;AAIhD,aAAOF;AAAA;AAGR,aAASI,EAAYF,GAAK;AACzB,UAAI,OAAOA,KAAQ,YAAY,OAAOA,KAAQ;AAC7C,eAAOA;AAGR,UAAI,OAAOA,KAAQ;AAClB,eAAO;AAGR,UAAI,MAAM,QAAQA,CAAG;AACpB,eAAOH,EAAW,MAAM,MAAMG,CAAG;AAGlC,UAAIA,EAAI,aAAa,OAAO,UAAU,YAAY,CAACA,EAAI,SAAS,SAAQ,EAAG,SAAS,eAAe;AAClG,eAAOA,EAAI,SAAU;AAGtB,UAAIF,IAAU;AAEd,eAASK,KAAOH;AACf,QAAIJ,EAAO,KAAKI,GAAKG,CAAG,KAAKH,EAAIG,CAAG,MACnCL,IAAUG,EAAYH,GAASK,CAAG;AAIpC,aAAOL;AAAA;AAGR,aAASG,EAAaG,GAAOC,GAAU;AACtC,aAAKA,IAIDD,IACIA,IAAQ,MAAMC,IAGfD,IAAQC,IAPPD;AAAA;AAUT,IAAqCE,EAAO,WAC3CT,EAAW,UAAUA,GACrBS,EAAA,UAAiBT,KAOjB,OAAO,aAAaA;AAAA,EAEtB;;;;;;;;;;;;;;;;;;;;;;;;GCzDaU,KAAa,CAAC;AAAA,EACzB,SAAAC,IAAU;AAAA,EACV,WAAAC,IAAY;AAAA,EACZ,UAAAC;AAAA,EACA,QAAAC;AACF,MAAuB;AACf,QAAAC,IAAeC,GAAOL,CAAO,KAAK,IAClCM,IAAcD,GAAOF,KAAU,EAAE,KAAK;AAG1C,SAAA,gBAAAI;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWlB;AAAA,QACTgB,GAAO;AAAA,QACPD;AAAA,QACAE;AAAA,QACAL;AAAA,MACF;AAAA,MAEC,UAAAC;AAAA,IAAA;AAAA,EACH;AAEJ;;;;;;;;;;;;ACxCA,GAAC,SAASM,GAAEC,GAAE;AAAsD,IAAAX,YAAeW,EAAmH;AAAA,EAAA,GAAEC,IAAM,WAAU;AAAc,QAAIF,IAAE,KAAIC,IAAE,KAAIE,IAAE,MAAK,IAAE,eAAcpB,IAAE,UAASqB,IAAE,UAAS,IAAE,QAAOC,IAAE,OAAMC,IAAE,QAAOC,IAAE,SAAQC,IAAE,WAAUC,IAAE,QAAOC,IAAE,QAAOC,IAAE,gBAAeC,IAAE,8FAA6FC,IAAE,uFAAsFC,IAAE,EAAC,MAAK,MAAK,UAAS,2DAA2D,MAAM,GAAG,GAAE,QAAO,wFAAwF,MAAM,GAAG,GAAE,SAAQ,SAASd,GAAE;AAAC,UAAIC,IAAE,CAAC,MAAK,MAAK,MAAK,IAAI,GAAEE,IAAEH,IAAE;AAAI,aAAM,MAAIA,KAAGC,GAAGE,IAAE,MAAI,EAAE,KAAGF,EAAEE,CAAC,KAAGF,EAAE,CAAC,KAAG;AAAA,IAAG,EAAC,GAAEc,IAAE,SAASf,GAAEC,GAAEE,GAAE;AAAC,UAAIa,IAAE,OAAOhB,CAAC;AAAE,aAAM,CAACgB,KAAGA,EAAE,UAAQf,IAAED,IAAE,KAAG,MAAMC,IAAE,IAAEe,EAAE,MAAM,EAAE,KAAKb,CAAC,IAAEH;AAAA,IAAC,GAAEiB,IAAE,EAAC,GAAEF,GAAE,GAAE,SAASf,GAAE;AAAC,UAAIC,IAAE,CAACD,EAAE,UAAS,GAAGG,IAAE,KAAK,IAAIF,CAAC,GAAEe,IAAE,KAAK,MAAMb,IAAE,EAAE,GAAE,IAAEA,IAAE;AAAG,cAAOF,KAAG,IAAE,MAAI,OAAKc,EAAEC,GAAE,GAAE,GAAG,IAAE,MAAID,EAAE,GAAE,GAAE,GAAG;AAAA,IAAC,GAAE,GAAE,SAASf,EAAEC,GAAEE,GAAE;AAAC,UAAGF,EAAE,KAAI,IAAGE,EAAE,KAAI,EAAG,QAAM,CAACH,EAAEG,GAAEF,CAAC;AAAE,UAAIe,IAAE,MAAIb,EAAE,KAAI,IAAGF,EAAE,WAASE,EAAE,UAAQF,EAAE,MAAO,IAAE,IAAEA,EAAE,QAAQ,IAAIe,GAAET,CAAC,GAAEH,IAAED,IAAE,IAAE,GAAEe,IAAEjB,EAAE,MAAK,EAAG,IAAIe,KAAGZ,IAAE,KAAG,IAAGG,CAAC;AAAE,aAAM,EAAE,EAAES,KAAGb,IAAE,MAAIC,IAAE,IAAEc,IAAEA,IAAE,OAAK;AAAA,IAAE,GAAE,GAAE,SAASlB,GAAE;AAAC,aAAOA,IAAE,IAAE,KAAK,KAAKA,CAAC,KAAG,IAAE,KAAK,MAAMA,CAAC;AAAA,IAAC,GAAE,GAAE,SAASA,GAAE;AAAC,aAAM,EAAC,GAAEO,GAAE,GAAEE,GAAE,GAAEH,GAAE,GAAED,GAAE,GAAEK,GAAE,GAAE,GAAE,GAAEN,GAAE,GAAErB,GAAE,IAAG,GAAE,GAAEyB,EAAC,EAAER,CAAC,KAAG,OAAOA,KAAG,EAAE,EAAE,YAAa,EAAC,QAAQ,MAAK,EAAE;AAAA,IAAC,GAAE,GAAE,SAASA,GAAE;AAAC,aAAgBA,MAAT;AAAA,IAAU,EAAC,GAAEmB,IAAE,MAAKC,IAAE,CAAE;AAAC,IAAAA,EAAED,CAAC,IAAEL;AAAE,QAAIO,IAAE,kBAAiBC,IAAE,SAAStB,GAAE;AAAC,aAAOA,aAAauB,KAAG,EAAE,CAACvB,KAAG,CAACA,EAAEqB,CAAC;AAAA,IAAE,GAAEG,IAAE,SAASxB,EAAEC,GAAEE,GAAEa,GAAE;AAAC,UAAI;AAAE,UAAG,CAACf,EAAE,QAAOkB;AAAE,UAAa,OAAOlB,KAAjB,UAAmB;AAAC,YAAIG,IAAEH,EAAE,YAAa;AAAC,QAAAmB,EAAEhB,CAAC,MAAI,IAAEA,IAAGD,MAAIiB,EAAEhB,CAAC,IAAED,GAAE,IAAEC;AAAG,YAAIc,IAAEjB,EAAE,MAAM,GAAG;AAAE,YAAG,CAAC,KAAGiB,EAAE,SAAO,EAAE,QAAOlB,EAAEkB,EAAE,CAAC,CAAC;AAAA,MAAC,OAAK;AAAC,YAAIb,IAAEJ,EAAE;AAAK,QAAAmB,EAAEf,CAAC,IAAEJ,GAAE,IAAEI;AAAA,MAAC;AAAC,aAAM,CAACW,KAAG,MAAIG,IAAE,IAAG,KAAG,CAACH,KAAGG;AAAA,IAAC,GAAEM,IAAE,SAASzB,GAAEC,GAAE;AAAC,UAAGqB,EAAEtB,CAAC,EAAE,QAAOA,EAAE,MAAK;AAAG,UAAIG,IAAY,OAAOF,KAAjB,WAAmBA,IAAE,CAAE;AAAC,aAAOE,EAAE,OAAKH,GAAEG,EAAE,OAAK,WAAU,IAAIoB,EAAEpB,CAAC;AAAA,IAAC,GAAEuB,IAAET;AAAE,IAAAS,EAAE,IAAEF,GAAEE,EAAE,IAAEJ,GAAEI,EAAE,IAAE,SAAS1B,GAAEC,GAAE;AAAC,aAAOwB,EAAEzB,GAAE,EAAC,QAAOC,EAAE,IAAG,KAAIA,EAAE,IAAG,GAAEA,EAAE,IAAG,SAAQA,EAAE,QAAO,CAAC;AAAA,IAAC;AAAE,QAAIsB,IAAE,WAAU;AAAC,eAAST,EAAEd,GAAE;AAAC,aAAK,KAAGwB,EAAExB,EAAE,QAAO,MAAK,EAAE,GAAE,KAAK,MAAMA,CAAC,GAAE,KAAK,KAAG,KAAK,MAAIA,EAAE,KAAG,CAAA,GAAG,KAAKqB,CAAC,IAAE;AAAA,MAAE;AAAC,UAAIN,IAAED,EAAE;AAAU,aAAOC,EAAE,QAAM,SAASf,GAAE;AAAC,aAAK,KAAG,SAASA,GAAE;AAAC,cAAIC,IAAED,EAAE,MAAKG,IAAEH,EAAE;AAAI,cAAUC,MAAP,KAAS,QAAO,oBAAI,KAAK,GAAG;AAAE,cAAGyB,EAAE,EAAEzB,CAAC,EAAE,QAAO,oBAAI;AAAK,cAAGA,aAAa,KAAK,QAAO,IAAI,KAAKA,CAAC;AAAE,cAAa,OAAOA,KAAjB,YAAoB,CAAC,MAAM,KAAKA,CAAC,GAAE;AAAC,gBAAIe,IAAEf,EAAE,MAAMW,CAAC;AAAE,gBAAGI,GAAE;AAAC,kBAAIjC,IAAEiC,EAAE,CAAC,IAAE,KAAG,GAAEZ,KAAGY,EAAE,CAAC,KAAG,KAAK,UAAU,GAAE,CAAC;AAAE,qBAAOb,IAAE,IAAI,KAAK,KAAK,IAAIa,EAAE,CAAC,GAAEjC,GAAEiC,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEZ,CAAC,CAAC,IAAE,IAAI,KAAKY,EAAE,CAAC,GAAEjC,GAAEiC,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEZ,CAAC;AAAA,YAAC;AAAA,UAAC;AAAC,iBAAO,IAAI,KAAKH,CAAC;AAAA,QAAC,EAAED,CAAC,GAAE,KAAK,KAAM;AAAA,MAAA,GAAEe,EAAE,OAAK,WAAU;AAAC,YAAIf,IAAE,KAAK;AAAG,aAAK,KAAGA,EAAE,eAAc,KAAK,KAAGA,EAAE,SAAQ,GAAG,KAAK,KAAGA,EAAE,QAAS,GAAC,KAAK,KAAGA,EAAE,OAAQ,GAAC,KAAK,KAAGA,EAAE,YAAW,KAAK,KAAGA,EAAE,WAAU,GAAG,KAAK,KAAGA,EAAE,WAAU,GAAG,KAAK,MAAIA,EAAE,gBAAiB;AAAA,MAAA,GAAEe,EAAE,SAAO,WAAU;AAAC,eAAOW;AAAA,MAAC,GAAEX,EAAE,UAAQ,WAAU;AAAC,eAAQ,KAAK,GAAG,SAAU,MAAGJ;AAAA,MAAE,GAAEI,EAAE,SAAO,SAASf,GAAEC,GAAE;AAAC,YAAIE,IAAEsB,EAAEzB,CAAC;AAAE,eAAO,KAAK,QAAQC,CAAC,KAAGE,KAAGA,KAAG,KAAK,MAAMF,CAAC;AAAA,MAAC,GAAEc,EAAE,UAAQ,SAASf,GAAEC,GAAE;AAAC,eAAOwB,EAAEzB,CAAC,IAAE,KAAK,QAAQC,CAAC;AAAA,MAAC,GAAEc,EAAE,WAAS,SAASf,GAAEC,GAAE;AAAC,eAAO,KAAK,MAAMA,CAAC,IAAEwB,EAAEzB,CAAC;AAAA,MAAC,GAAEe,EAAE,KAAG,SAASf,GAAEC,GAAEE,GAAE;AAAC,eAAOuB,EAAE,EAAE1B,CAAC,IAAE,KAAKC,CAAC,IAAE,KAAK,IAAIE,GAAEH,CAAC;AAAA,MAAC,GAAEe,EAAE,OAAK,WAAU;AAAC,eAAO,KAAK,MAAM,KAAK,QAAS,IAAC,GAAG;AAAA,MAAC,GAAEA,EAAE,UAAQ,WAAU;AAAC,eAAO,KAAK,GAAG;MAAS,GAAEA,EAAE,UAAQ,SAASf,GAAEC,GAAE;AAAC,YAAIE,IAAE,MAAKa,IAAE,CAAC,CAACU,EAAE,EAAEzB,CAAC,KAAGA,GAAEO,IAAEkB,EAAE,EAAE1B,CAAC,GAAEW,IAAE,SAASX,IAAEC,GAAE;AAAC,cAAIlB,KAAE2C,EAAE,EAAEvB,EAAE,KAAG,KAAK,IAAIA,EAAE,IAAGF,GAAED,EAAC,IAAE,IAAI,KAAKG,EAAE,IAAGF,GAAED,EAAC,GAAEG,CAAC;AAAE,iBAAOa,IAAEjC,KAAEA,GAAE,MAAMsB,CAAC;AAAA,QAAC,GAAEO,IAAE,SAASZ,IAAEC,GAAE;AAAC,iBAAOyB,EAAE,EAAEvB,EAAE,OAAQ,EAACH,EAAC,EAAE,MAAMG,EAAE,OAAO,GAAG,IAAGa,IAAE,CAAC,GAAE,GAAE,GAAE,CAAC,IAAE,CAAC,IAAG,IAAG,IAAG,GAAG,GAAG,MAAMf,CAAC,CAAC,GAAEE,CAAC;AAAA,QAAC,GAAEU,IAAE,KAAK,IAAGC,IAAE,KAAK,IAAGC,IAAE,KAAK,IAAGE,IAAE,SAAO,KAAK,KAAG,QAAM;AAAI,gBAAOT,GAAC;AAAA,UAAE,KAAKC;AAAE,mBAAOO,IAAEL,EAAE,GAAE,CAAC,IAAEA,EAAE,IAAG,EAAE;AAAA,UAAE,KAAKJ;AAAE,mBAAOS,IAAEL,EAAE,GAAEG,CAAC,IAAEH,EAAE,GAAEG,IAAE,CAAC;AAAA,UAAE,KAAKR;AAAE,gBAAIa,IAAE,KAAK,QAAO,EAAG,aAAW,GAAEC,MAAGP,IAAEM,IAAEN,IAAE,IAAEA,KAAGM;AAAE,mBAAOR,EAAEK,IAAED,IAAEK,KAAEL,KAAG,IAAEK,KAAGN,CAAC;AAAA,UAAE,KAAKT;AAAA,UAAE,KAAKK;AAAE,mBAAOE,EAAEK,IAAE,SAAQ,CAAC;AAAA,UAAE,KAAK;AAAE,mBAAOL,EAAEK,IAAE,WAAU,CAAC;AAAA,UAAE,KAAKb;AAAE,mBAAOQ,EAAEK,IAAE,WAAU,CAAC;AAAA,UAAE,KAAKlC;AAAE,mBAAO6B,EAAEK,IAAE,gBAAe,CAAC;AAAA,UAAE;AAAQ,mBAAO,KAAK;QAAO;AAAA,MAAC,GAAEF,EAAE,QAAM,SAASf,GAAE;AAAC,eAAO,KAAK,QAAQA,GAAE,EAAE;AAAA,MAAC,GAAEe,EAAE,OAAK,SAASf,GAAEC,GAAE;AAAC,YAAIE,GAAEG,IAAEoB,EAAE,EAAE1B,CAAC,GAAEQ,IAAE,SAAO,KAAK,KAAG,QAAM,KAAIG,KAAGR,IAAE,CAAE,GAACA,EAAEE,CAAC,IAAEG,IAAE,QAAOL,EAAEO,CAAC,IAAEF,IAAE,QAAOL,EAAEI,CAAC,IAAEC,IAAE,SAAQL,EAAEM,CAAC,IAAED,IAAE,YAAWL,EAAE,CAAC,IAAEK,IAAE,SAAQL,EAAEC,CAAC,IAAEI,IAAE,WAAUL,EAAEpB,CAAC,IAAEyB,IAAE,WAAUL,EAAE,CAAC,IAAEK,IAAE,gBAAeL,GAAGG,CAAC,GAAEM,IAAEN,MAAID,IAAE,KAAK,MAAIJ,IAAE,KAAK,MAAIA;AAAE,YAAGK,MAAIC,KAAGD,MAAIG,GAAE;AAAC,cAAII,IAAE,KAAK,MAAO,EAAC,IAAIH,GAAE,CAAC;AAAE,UAAAG,EAAE,GAAGF,CAAC,EAAEC,CAAC,GAAEC,EAAE,QAAO,KAAK,KAAGA,EAAE,IAAIH,GAAE,KAAK,IAAI,KAAK,IAAGG,EAAE,aAAa,CAAC,EAAE;AAAA,QAAE,MAAM,CAAAF,KAAG,KAAK,GAAGA,CAAC,EAAEC,CAAC;AAAE,eAAO,KAAK,KAAI,GAAG;AAAA,MAAI,GAAEG,EAAE,MAAI,SAASf,GAAEC,GAAE;AAAC,eAAO,KAAK,QAAQ,KAAKD,GAAEC,CAAC;AAAA,MAAC,GAAEc,EAAE,MAAI,SAASf,GAAE;AAAC,eAAO,KAAK0B,EAAE,EAAE1B,CAAC,CAAC,EAAC;AAAA,MAAE,GAAEe,EAAE,MAAI,SAASC,GAAER,GAAE;AAAC,YAAIE,GAAEC,IAAE;AAAK,QAAAK,IAAE,OAAOA,CAAC;AAAE,YAAIJ,IAAEc,EAAE,EAAElB,CAAC,GAAEK,IAAE,SAASb,GAAE;AAAC,cAAIC,IAAEwB,EAAEd,CAAC;AAAE,iBAAOe,EAAE,EAAEzB,EAAE,KAAKA,EAAE,KAAM,IAAC,KAAK,MAAMD,IAAEgB,CAAC,CAAC,GAAEL,CAAC;AAAA,QAAC;AAAE,YAAGC,MAAIL,EAAE,QAAO,KAAK,IAAIA,GAAE,KAAK,KAAGS,CAAC;AAAE,YAAGJ,MAAIH,EAAE,QAAO,KAAK,IAAIA,GAAE,KAAK,KAAGO,CAAC;AAAE,YAAGJ,MAAIP,EAAE,QAAOQ,EAAE,CAAC;AAAE,YAAGD,MAAIN,EAAE,QAAOO,EAAE,CAAC;AAAE,YAAIC,KAAGJ,IAAE,IAAGA,EAAEN,CAAC,IAAEH,GAAES,EAAE,CAAC,IAAEP,GAAEO,EAAE3B,CAAC,IAAEiB,GAAEU,GAAGE,CAAC,KAAG,GAAEG,IAAE,KAAK,GAAG,QAAS,IAACC,IAAEF;AAAE,eAAOY,EAAE,EAAEX,GAAE,IAAI;AAAA,MAAC,GAAEA,EAAE,WAAS,SAASf,GAAEC,GAAE;AAAC,eAAO,KAAK,IAAI,KAAGD,GAAEC,CAAC;AAAA,MAAC,GAAEc,EAAE,SAAO,SAASf,GAAE;AAAC,YAAIC,IAAE,MAAKE,IAAE,KAAK,QAAO;AAAG,YAAG,CAAC,KAAK,QAAS,EAAC,QAAOA,EAAE,eAAaQ;AAAE,YAAIK,IAAEhB,KAAG,wBAAuBjB,IAAE2C,EAAE,EAAE,IAAI,GAAEtB,IAAE,KAAK,IAAGc,IAAE,KAAK,IAAGb,IAAE,KAAK,IAAGC,IAAEH,EAAE,UAASI,IAAEJ,EAAE,QAAOK,IAAEL,EAAE,UAASM,IAAE,SAAST,GAAEG,IAAEpB,IAAEqB,IAAE;AAAC,iBAAOJ,MAAIA,EAAEG,EAAC,KAAGH,EAAEC,GAAEe,CAAC,MAAIjC,GAAEoB,EAAC,EAAE,MAAM,GAAEC,EAAC;AAAA,QAAC,GAAEM,KAAE,SAASV,GAAE;AAAC,iBAAO0B,EAAE,EAAEtB,IAAE,MAAI,IAAGJ,GAAE,GAAG;AAAA,QAAC,GAAEY,KAAEJ,KAAG,SAASR,GAAEC,IAAEE,IAAE;AAAC,cAAIa,KAAEhB,IAAE,KAAG,OAAK;AAAK,iBAAOG,KAAEa,GAAE,gBAAcA;AAAA,QAAC;AAAE,eAAOA,EAAE,QAAQH,GAAG,SAASb,GAAEgB,IAAE;AAAC,iBAAOA,MAAG,SAAShB,IAAE;AAAC,oBAAOA,IAAG;AAAA,cAAA,KAAI;AAAK,uBAAO,OAAOC,EAAE,EAAE,EAAE,MAAM,EAAE;AAAA,cAAE,KAAI;AAAO,uBAAOyB,EAAE,EAAEzB,EAAE,IAAG,GAAE,GAAG;AAAA,cAAE,KAAI;AAAI,uBAAOI,IAAE;AAAA,cAAE,KAAI;AAAK,uBAAOqB,EAAE,EAAErB,IAAE,GAAE,GAAE,GAAG;AAAA,cAAE,KAAI;AAAM,uBAAOI,EAAEN,EAAE,aAAYE,GAAEE,GAAE,CAAC;AAAA,cAAE,KAAI;AAAO,uBAAOE,EAAEF,GAAEF,CAAC;AAAA,cAAE,KAAI;AAAI,uBAAOJ,EAAE;AAAA,cAAG,KAAI;AAAK,uBAAOyB,EAAE,EAAEzB,EAAE,IAAG,GAAE,GAAG;AAAA,cAAE,KAAI;AAAI,uBAAO,OAAOA,EAAE,EAAE;AAAA,cAAE,KAAI;AAAK,uBAAOQ,EAAEN,EAAE,aAAYF,EAAE,IAAGK,GAAE,CAAC;AAAA,cAAE,KAAI;AAAM,uBAAOG,EAAEN,EAAE,eAAcF,EAAE,IAAGK,GAAE,CAAC;AAAA,cAAE,KAAI;AAAO,uBAAOA,EAAEL,EAAE,EAAE;AAAA,cAAE,KAAI;AAAI,uBAAO,OAAOG,CAAC;AAAA,cAAE,KAAI;AAAK,uBAAOsB,EAAE,EAAEtB,GAAE,GAAE,GAAG;AAAA,cAAE,KAAI;AAAI,uBAAOM,GAAE,CAAC;AAAA,cAAE,KAAI;AAAK,uBAAOA,GAAE,CAAC;AAAA,cAAE,KAAI;AAAI,uBAAOE,GAAER,GAAEc,GAAE,EAAE;AAAA,cAAE,KAAI;AAAI,uBAAON,GAAER,GAAEc,GAAE,EAAE;AAAA,cAAE,KAAI;AAAI,uBAAO,OAAOA,CAAC;AAAA,cAAE,KAAI;AAAK,uBAAOQ,EAAE,EAAER,GAAE,GAAE,GAAG;AAAA,cAAE,KAAI;AAAI,uBAAO,OAAOjB,EAAE,EAAE;AAAA,cAAE,KAAI;AAAK,uBAAOyB,EAAE,EAAEzB,EAAE,IAAG,GAAE,GAAG;AAAA,cAAE,KAAI;AAAM,uBAAOyB,EAAE,EAAEzB,EAAE,KAAI,GAAE,GAAG;AAAA,cAAE,KAAI;AAAI,uBAAOlB;AAAA,YAAC;AAAC,mBAAO;AAAA,UAAI,EAAEiB,CAAC,KAAGjB,EAAE,QAAQ,KAAI,EAAE;AAAA,QAAC,CAAC;AAAA,MAAE,GAAEgC,EAAE,YAAU,WAAU;AAAC,eAAO,KAAG,CAAC,KAAK,MAAM,KAAK,GAAG,kBAAmB,IAAC,EAAE;AAAA,MAAC,GAAEA,EAAE,OAAK,SAASC,GAAEN,GAAEC,GAAE;AAAC,YAAI,GAAEE,IAAE,MAAKC,IAAEY,EAAE,EAAEhB,CAAC,GAAEK,IAAEU,EAAET,CAAC,GAAEC,KAAGF,EAAE,UAAW,IAAC,KAAK,UAAW,KAAEd,GAAEkB,IAAE,OAAKJ,GAAEK,IAAE,WAAU;AAAC,iBAAOM,EAAE,EAAEb,GAAEE,CAAC;AAAA,QAAC;AAAE,gBAAOD,GAAC;AAAA,UAAE,KAAKL;AAAE,gBAAEW,EAAG,IAAC;AAAG;AAAA,UAAM,KAAKb;AAAE,gBAAEa,EAAG;AAAC;AAAA,UAAM,KAAKZ;AAAE,gBAAEY,MAAI;AAAE;AAAA,UAAM,KAAKd;AAAE,iBAAGa,IAAEF,KAAG;AAAO;AAAA,UAAM,KAAKZ;AAAE,iBAAGc,IAAEF,KAAG;AAAM;AAAA,UAAM,KAAK;AAAE,gBAAEE,IAAEhB;AAAE;AAAA,UAAM,KAAKC;AAAE,gBAAEe,IAAElB;AAAE;AAAA,UAAM,KAAKlB;AAAE,gBAAEoC,IAAEnB;AAAE;AAAA,UAAM;AAAQ,gBAAEmB;AAAA,QAAC;AAAC,eAAOR,IAAE,IAAEe,EAAE,EAAE,CAAC;AAAA,MAAC,GAAEX,EAAE,cAAY,WAAU;AAAC,eAAO,KAAK,MAAMR,CAAC,EAAE;AAAA,MAAE,GAAEQ,EAAE,UAAQ,WAAU;AAAC,eAAOK,EAAE,KAAK,EAAE;AAAA,MAAC,GAAEL,EAAE,SAAO,SAASf,GAAEC,GAAE;AAAC,YAAG,CAACD,EAAE,QAAO,KAAK;AAAG,YAAIG,IAAE,KAAK,MAAK,GAAGa,IAAEQ,EAAExB,GAAEC,GAAE,EAAE;AAAE,eAAOe,MAAIb,EAAE,KAAGa,IAAGb;AAAA,MAAC,GAAEY,EAAE,QAAM,WAAU;AAAC,eAAOW,EAAE,EAAE,KAAK,IAAG,IAAI;AAAA,MAAC,GAAEX,EAAE,SAAO,WAAU;AAAC,eAAO,IAAI,KAAK,KAAK,QAAS,CAAA;AAAA,MAAC,GAAEA,EAAE,SAAO,WAAU;AAAC,eAAO,KAAK,QAAO,IAAG,KAAK,YAAa,IAAC;AAAA,MAAI,GAAEA,EAAE,cAAY,WAAU;AAAC,eAAO,KAAK,GAAG,YAAW;AAAA,MAAE,GAAEA,EAAE,WAAS,WAAU;AAAC,eAAO,KAAK,GAAG,YAAW;AAAA,MAAE,GAAED;AAAA,IAAC,EAAG,GAACa,KAAEJ,EAAE;AAAU,WAAOE,EAAE,YAAUE,IAAE,CAAC,CAAC,OAAM,CAAC,GAAE,CAAC,MAAK5C,CAAC,GAAE,CAAC,MAAKqB,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAKC,CAAC,GAAE,CAAC,MAAKE,CAAC,GAAE,CAAC,MAAKE,CAAC,GAAE,CAAC,MAAKC,CAAC,CAAC,EAAE,QAAS,SAASV,GAAE;AAAC,MAAA2B,GAAE3B,EAAE,CAAC,CAAC,IAAE,SAASC,GAAE;AAAC,eAAO,KAAK,GAAGA,GAAED,EAAE,CAAC,GAAEA,EAAE,CAAC,CAAC;AAAA,MAAC;AAAA,IAAC,CAAG,GAACyB,EAAE,SAAO,SAASzB,GAAEC,GAAE;AAAC,aAAOD,EAAE,OAAKA,EAAEC,GAAEsB,GAAEE,CAAC,GAAEzB,EAAE,KAAG,KAAIyB;AAAA,IAAC,GAAEA,EAAE,SAAOD,GAAEC,EAAE,UAAQH,GAAEG,EAAE,OAAK,SAASzB,GAAE;AAAC,aAAOyB,EAAE,MAAIzB,CAAC;AAAA,IAAC,GAAEyB,EAAE,KAAGL,EAAED,CAAC,GAAEM,EAAE,KAAGL,GAAEK,EAAE,IAAE,IAAGA;AAAA,EAAC,CAAC;;;mCCEx+NG,KAAiB,CAACC,MAAgC;AAEvD,QAAAC,IAAMC,GAAMF,CAAI,GAGhBG,IAAaF,EAAI,KAAK,GACtBG,IACJD,MAAe,KAAKA,MAAe,MAAMA,MAAe,KACpD,OACAA,MAAe,KAAKA,MAAe,KACnC,OACAA,MAAe,KAAKA,MAAe,KACnC,OACA;AAQN,SAAO,GALeF,EAAI,OAAO,eAAe,EAGR,QAAQE,EAAW,YAAY,GAAGA,CAAU,GAAGC,CAAM,EAAE,CAEpE;AAC7B,GCTaC,KAAS,CAAC;AAAA,EACrB,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,aAAAC;AAAA,EACA,SAAAC;AACF,MAAmB;AAEjB,QAAM,CAACC,GAAYC,CAAa,IAAIC,GAAS,EAAK,GAC5C,CAACC,GAAUC,CAAW,IAAIF,GAAS;AAAA,IACvC,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,IACT,SAAS;AAAA,EAAA,CACV;AAED,EAAAG,GAAU,MAAM;AACR,UAAAC,IAAe,IAAI,KAAKV,CAAQ,GAChCW,IAAqB,CAACC,OAA0B;AAAA,MACpD,MAAM,KAAK,MAAMA,KAAgB,MAAO,KAAK,KAAK,GAAG;AAAA,MACrD,OAAO,KAAK,MAAOA,KAAgB,MAAO,KAAK,MAAO,EAAE;AAAA,MACxD,SAAS,KAAK,MAAOA,KAAgB,MAAO,MAAO,EAAE;AAAA,MACrD,SAAS,KAAK,MAAOA,IAAe,MAAQ,EAAE;AAAA,IAAA,IAG1CC,IAAkB,MAAM;AACtB,YAAAC,IAAM,KAAK,IAAI,GACfC,IAAYL,EAAa,QAAA,IAAYI;AAE3C,MAAIC,KAAa,KACfV,EAAc,EAAI,GACNG,EAAA,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,KAE7CA,EAAAG,EAAmBI,CAAS,CAAC;AAAA,IAE7C;AAEgB,IAAAF,EAAA;AACV,UAAAG,IAAW,YAAYH,GAAiB,GAAI;AAC3C,WAAA,MAAM,cAAcG,CAAQ;AAAA,EAAA,GAClC,CAAChB,CAAQ,CAAC;AAEP,QAAAiB,IAAkB,CAACnE,GAAeoE,wBACrC,OAAI,EAAA,WAAW3D,GAAO,WACrB,UAAA;AAAA,IAAA,gBAAAE;AAAA,MAACR;AAAA,MAAA;AAAA,QACC,SAAQ;AAAA,QACR,WAAWM,GAAO;AAAA,QAEjB,UAAAT;AAAA,MAAA;AAAA,IACH;AAAA,IACCoE;AAAA,EAAA,GACH;AAIA,SAAA,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW5D,GAAO;AAAA,MAClB,OAAO,EAAE,iBAAiBsC,EAAM;AAAA,MAEhC,UAAA;AAAA,QAAC,gBAAAsB,EAAA,OAAA,EAAI,WAAW5D,GAAO,SACrB,UAAA;AAAA,UAAC,gBAAA4D,EAAA,OAAA,EAAI,WAAW5D,GAAO,OACrB,UAAA;AAAA,YAAC,gBAAAE,EAAAR,IAAA,EAAW,SAAQ,cAAc,UAAM6C,GAAA;AAAA,8BACvC7C,IAAW,EAAA,SAAQ,WAAW,UAAAqC,GAAeU,CAAQ,EAAE,CAAA;AAAA,UAAA,GAC1D;AAAA,UACC,gBAAAmB,EAAA,OAAA,EAAI,WAAW5D,GAAO,OACpB,UAAA;AAAA,YAAgB0D,EAAAV,EAAS,MAAM,MAAM;AAAA,YACrCU,EAAgBV,EAAS,OAAO,OAAO;AAAA,YACvCU,EAAgBV,EAAS,SAAS,SAAS;AAAA,YAC3CU,EAAgBV,EAAS,SAAS,SAAS;AAAA,UAAA,EAC9C,CAAA;AAAA,QAAA,GACF;AAAA,QACA,gBAAA9C;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWF,GAAO;AAAA,YAClB,OACE;AAAA,cACE,mBAAmBsC;AAAA,cACnB,iBAAiB,OACfO,IAAcH,KAAqBF,IAAaA,CAClD;AAAA,YACF;AAAA,YAGD,UACCK,KAAA,gBAAA3C;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAWF,GAAO;AAAA,gBAClB,OAAO,EAAE,iBAAiB2C,EAAY;AAAA,gBACtC,SAAAC;AAAA,gBAEA,UAAC,gBAAA1C,EAAAR,IAAA,EAAW,SAAQ,cAAc,UAAQ,QAAA,CAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UAC5C;AAAA,QAAA;AAAA,MAEJ;AAAA,IAAA;AAAA,EACF;AAEJ;;;;;;;;;;;;;;;;;;;;GClGamE,KAAS,CAAC;AAAA,EACrB,OAAAC,IAAQ;AAAA,EACR,MAAAC,IAAO;AAAA,EACP,UAAAC,IAAW;AAAA,EACX,UAAAC,IAAW;AAAA,EACX,UAAApE;AAAA,EACA,SAAA+C,IAAU,MAAM;AAAA,EAAC;AAAA,EACjB,WAAAhD,IAAY;AAAA,EACZ,GAAGsE;AACL,MAAmB;AACjB,QAAMC,IAAcnF;AAAA,IAClBgB,GAAO;AAAA,IACPA,GAAO8D,CAAK;AAAA,IACZ9D,GAAO+D,CAAI;AAAA,IACX;AAAA,MACE,CAAC/D,GAAO,GAAG8D,CAAK,WAAW,CAAC,GAAGE;AAAA,IACjC;AAAA,IACApE;AAAA,EACF;AAGE,SAAA,gBAAAM;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWiE;AAAA,MACX,SAAAvB;AAAA,MACA,UAAAqB;AAAA,MACC,GAAGC;AAAA,MAEH,UAAArE;AAAA,IAAA;AAAA,EACH;AAEJ;AC3CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,MAAMuE,KAAc,CAACC,MAAWA,EAAO,QAAQ,sBAAsB,OAAO,EAAE,YAAa,GACrFC,KAAc,CAACD,MAAWA,EAAO;AAAA,EACrC;AAAA,EACA,CAACE,GAAOC,GAAIC,MAAOA,IAAKA,EAAG,YAAW,IAAKD,EAAG,YAAW;AAC3D,GACME,KAAe,CAACL,MAAW;AAC/B,QAAMM,IAAYL,GAAYD,CAAM;AACpC,SAAOM,EAAU,OAAO,CAAC,EAAE,YAAW,IAAKA,EAAU,MAAM,CAAC;AAC9D,GACMC,KAAe,IAAI3F,MAAYA,EAAQ,OAAO,CAACW,GAAWiF,GAAOC,MAC9D,EAAQlF,KAAcA,EAAU,KAAI,MAAO,MAAMkF,EAAM,QAAQlF,CAAS,MAAMiF,CACtF,EAAE,KAAK,GAAG,EAAE,KAAM,GACbE,KAAc,CAACC,MAAU;AAC7B,aAAWC,KAAQD;AACjB,QAAIC,EAAK,WAAW,OAAO,KAAKA,MAAS,UAAUA,MAAS;AAC1D,aAAO;AAGb;ACzBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,IAAIC,KAAoB;AAAA,EACtB,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,eAAe;AAAA,EACf,gBAAgB;AAClB;ACjBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWA,MAAMC,KAAOC;AAAA,EACX,CAAC;AAAA,IACC,OAAA9C,IAAQ;AAAA,IACR,MAAAyB,IAAO;AAAA,IACP,aAAAsB,IAAc;AAAA,IACd,qBAAAC;AAAA,IACA,WAAA1F,IAAY;AAAA,IACZ,UAAAC;AAAA,IACA,UAAA0F;AAAA,IACA,GAAGrB;AAAA,EACJ,GAAEsB,MAAQC;AAAA,IACT;AAAA,IACA;AAAA,MACE,KAAAD;AAAA,MACA,GAAGN;AAAA,MACH,OAAOnB;AAAA,MACP,QAAQA;AAAA,MACR,QAAQzB;AAAA,MACR,aAAagD,IAAsB,OAAOD,CAAW,IAAI,KAAK,OAAOtB,CAAI,IAAIsB;AAAA,MAC7E,WAAWT,GAAa,UAAUhF,CAAS;AAAA,MAC3C,GAAG,CAACC,KAAY,CAACkF,GAAYb,CAAI,KAAK,EAAE,eAAe,OAAQ;AAAA,MAC/D,GAAGA;AAAA,IACJ;AAAA,IACD;AAAA,MACE,GAAGqB,EAAS,IAAI,CAAC,CAACG,GAAKC,CAAK,MAAMF,GAAcC,GAAKC,CAAK,CAAC;AAAA,MAC3D,GAAG,MAAM,QAAQ9F,CAAQ,IAAIA,IAAW,CAACA,CAAQ;AAAA,IACvD;AAAA,EACA;AACA;ACvCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWA,MAAM+F,KAAmB,CAACC,GAAUN,MAAa;AAC/C,QAAMO,IAAYV;AAAA,IAChB,CAAC,EAAE,WAAAxF,GAAW,GAAGoF,EAAO,GAAEQ,MAAQC,GAAcN,IAAM;AAAA,MACpD,KAAAK;AAAA,MACA,UAAAD;AAAA,MACA,WAAWX;AAAA,QACT,UAAUR,GAAYM,GAAamB,CAAQ,CAAC,CAAC;AAAA,QAC7C,UAAUA,CAAQ;AAAA,QAClBjG;AAAA,MACD;AAAA,MACD,GAAGoF;AAAA,IACJ,CAAA;AAAA,EACF;AACD,SAAAc,EAAU,cAAcpB,GAAamB,CAAQ,GACtCC;AACT;AC1BA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMC,KAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,GAAG,mBAAmB,KAAK,SAAQ,CAAE;AAAA,EAChD,CAAC,QAAQ,EAAE,GAAG,wBAAwB,KAAK,SAAU,CAAA;AACvD,GACMC,KAAaJ,GAAiB,eAAeG,EAAU;ACb7D;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,KAAa,CAAC,CAAC,QAAQ,EAAE,GAAG,gBAAgB,KAAK,SAAQ,CAAE,CAAC,GAC5DE,KAAcL,GAAiB,gBAAgBG,EAAU;ACV/D;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,KAAa,CAAC,CAAC,QAAQ,EAAE,GAAG,kBAAkB,KAAK,SAAQ,CAAE,CAAC,GAC9DG,KAAYN,GAAiB,cAAcG,EAAU;ACV3D;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,KAAa;AAAA,EACjB,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,MAAM,GAAG,MAAM,KAAK,UAAU;AAAA,EACzD,CAAC,QAAQ,EAAE,IAAI,MAAM,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,KAAK,SAAQ,CAAE;AAAA,EACjE,CAAC,QAAQ,EAAE,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,IAAI,MAAM,KAAK,SAAU,CAAA;AACvE,GACMI,KAAcP,GAAiB,gBAAgBG,EAAU;ACd/D;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,KAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,GAAG,cAAc,KAAK,SAAQ,CAAE;AAAA,EAC3C,CAAC,QAAQ,EAAE,GAAG,WAAW,KAAK,SAAQ,CAAE;AAAA,EACxC;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,KAAK;AAAA,IACX;AAAA,EACA;AACA,GACMK,KAAeR,GAAiB,iBAAiBG,EAAU;ACpBjE;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,KAAa;AAAA,EACjB;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,KAAK;AAAA,IACX;AAAA,EACG;AAAA,EACD,CAAC,QAAQ,EAAE,GAAG,WAAW,KAAK,SAAQ,CAAE;AAAA,EACxC,CAAC,QAAQ,EAAE,GAAG,cAAc,KAAK,SAAU,CAAA;AAC7C,GACMM,KAAgBT,GAAiB,kBAAkBG,EAAU;ACpBnE;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,KAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,GAAG,cAAc,KAAK,SAAQ,CAAE;AAAA,EAC3C,CAAC,QAAQ,EAAE,GAAG,cAAc,KAAK,SAAU,CAAA;AAC7C,GACMO,KAAIV,GAAiB,KAAKG,EAAU;;GCR7BQ,KAAc,CAAC,EAAE,UAAA1G,0BAEzB,OAAI,EAAA,WAAWb,EAAWgB,GAAO,OAAO,GACvC,UAAA;AAAA,EAAA,gBAAAE;AAAA,IAACiG;AAAA,IAAA;AAAA,MACC,WAAWnG,GAAO;AAAA,MAClB,MAAM;AAAA,IAAA;AAAA,EACR;AAAA,EACCH;AAAA,GACH;;;;;;;GCAS2G,KAAoC,CAAC;AAAA,EAChD,OAAA7C;AAAA,EACA,OAAA8C;AAAA,EACA,YAAAC;AAAA,EACA,UAAAzC;AAAA,EACA,WAAArE;AAAA,EACA,eAAA+G;AAAA,EACA,UAAAC;AAAA,EACA,GAAG1C;AACL,MAAM;AACE,QAAAsB,IAAMqB,GAAyB,IAAI;AAEzC,EAAA3D,GAAU,MAAM;AACd,IAAIsC,EAAI,YACFA,EAAA,QAAQ,gBAAgB,CAAC,CAACmB;AAAA,EAChC,GACC,CAACA,CAAa,CAAC;AAElB,QAAMG,IAAmB,MAAM;AACzB,QAAAtB,EAAI,WAAW,CAACvB,GAAU;AAC5B,YAAM8C,IAAQ;AAAA,QACZ,QAAQvB,EAAI;AAAA,MACd;AACA,MAAAoB,KAAA,QAAAA,EAAWG;AAAA,IAAK;AAAA,EAEpB;AAEA,SACG,gBAAAnD,EAAA,OAAA,EAAI,WAAW5D,GAAO,UACrB,UAAA;AAAA,IAAA,gBAAAE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAsF;AAAA,QACA,MAAK;AAAA,QACL,WAAWxG,EAAWY,GAAWI,GAAO,UAAU;AAAA,UAChD,CAACA,GAAO,KAAK,GAAG,CAAC,CAACyG;AAAA,QAAA,CACnB;AAAA,QACD,UAAAxC;AAAA,QACA,UAAA2C;AAAA,QACC,GAAG1C;AAAA,MAAA;AAAA,IACN;AAAA,IACC,gBAAAN,EAAA,OAAA,EAAI,WAAW5D,GAAO,gBACrB,UAAA;AAAA,MAAA,gBAAAE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWlB,EAAWgB,GAAO,OAAO;AAAA,YAClC,CAACA,GAAO,QAAQ,GAAGiE;AAAA,UAAA,CACpB;AAAA,UACD,SAAS6C;AAAA,UAER,UAAAnD;AAAA,QAAA;AAAA,MACH;AAAA,MACC8C,KACC,gBAAAvG;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWlB,EAAWgB,GAAO,SAAS;AAAA,YACpC,CAACA,GAAO,KAAK,GAAG,CAAC,CAACyG;AAAA,UAAA,CACnB;AAAA,UAEA,UAAQA,IAAA,gBAAAvG,EAACqG,IAAa,EAAA,UAAAE,EAAA,CAAM,IAAiBC;AAAA,QAAA;AAAA,MAChD;AAAA,MAEDA,KAAc,CAACD,KACd,gBAAAvG;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWlB,EAAWgB,GAAO,SAAS;AAAA,YACpC,CAACA,GAAO,KAAK,GAAG,CAAC,CAACyG;AAAA,UAAA,CACnB;AAAA,UAEA,UAAAC;AAAA,QAAA;AAAA,MAAA;AAAA,IACH,EAEJ,CAAA;AAAA,EAAA,GACF;AAEJ;;;;;;;;;GClEaM,KAAiB,CAAC;AAAA,EAC7B,MAAAC;AAAA,EACA,OAAAtD;AAAA,EACA,eAAAuD;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,QAAAC,IAAS;AAAA,EACT,cAAAC,IAAe;AAAA,EACf,SAAAzE;AAAA,EACA,WAAAhD;AACF,MAEI,gBAAAgE;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAW5E;AAAA,MACTgB,GAAO;AAAA,MACPoH,KAAUpH,GAAO;AAAA,MACjBJ;AAAA,IACF;AAAA,IACA,SAAAgD;AAAA,IAEA,UAAA;AAAA,MAAC,gBAAAgB,EAAA,OAAA,EAAI,WAAW5D,GAAO,WACrB,UAAA;AAAA,QAAC,gBAAA4D,EAAA,OAAA,EAAI,WAAW5D,GAAO,eACpB,UAAA;AAAA,UAAAiH;AAAA,UACAI,KACC,gBAAAnH;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,KAAI;AAAA,cACJ,KAAI;AAAA,cACJ,WAAWF,GAAO;AAAA,YAAA;AAAA,UAAA;AAAA,QACpB,GAEJ;AAAA,QAEA,gBAAAE;AAAA,UAACR;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,WAAWV,EAAWmI,KAAanH,GAAO,WAAWA,GAAO,KAAK;AAAA,YAEhE,UAAA2D;AAAA,UAAA;AAAA,QAAA;AAAA,MACH,GACF;AAAA,MACCuD,KACC,gBAAAhH;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWlB;AAAA,YACTgB,GAAO;AAAA,YACPmH,KAAanH,GAAO;AAAA,UACtB;AAAA,UAEC,UAAAkH;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAEJ;;;;;GC7CSI,KAAW,CAAC,EAAE,cAAAC,GAAc,UAAAX,GAAU,MAAAY,QAA0B;;AACrE,QAAAC,KAAiBC,IAAAF,EAAK,aAAL,gBAAAE,EAAe;AAAA,IACpC,CAACC,MAAUA,EAAM,OAAOJ;AAAA,KAGpB,CAACK,GAAQC,CAAS,IAAI9E,GAAS0E,MAAmB,EAAE,GAEpDK,IAAe,MAAM;AACzB,IAAIN,EAAK,YACPK,EAAU,CAACD,CAAM,GAEnBhB,EAASY,CAAI;AAAA,EACf;AAEA,2BACG,OACC,EAAA,UAAA;AAAA,IAAA,gBAAAtH;AAAA,MAAC8G;AAAA,MAAA;AAAA,QACC,MAAMQ,EAAK;AAAA,QACX,OAAOA,EAAK;AAAA,QACZ,eACEI,IAAS,gBAAA1H,EAACgG,IAAU,EAAA,MAAM,IAAI,IAAK,gBAAAhG,EAAC+F,IAAY,EAAA,MAAM,GAAI,CAAA;AAAA,QAE5D,SAAS6B;AAAA,QACT,cAAcF,KAAUH,MAAmB;AAAA,QAC3C,QAAQA,MAAmB,MAAM,CAACG;AAAA,QAClC,WAAW5I,EAAW4I,KAAUH,MAAmB,MAAMzH,GAAO,MAAM;AAAA,MAAA;AAAA,IACxE;AAAA,IACA,gBAAAE,EAAC,OAAI,EAAA,WAAWF,GAAO,gBACpB,UACC4H,OAAAG,IAAAP,EAAK,aAAL,gBAAAO,EAAe,IAAI,CAACC,GAAUnD,MAC5B,gBAAAjB;AAAA,MAAC;AAAA,MAAA;AAAA,QAEC,WAAW5E;AAAA,UACTgB,GAAO;AAAA,UACPuH,MAAiBS,EAAS,KAAKhI,GAAO,SAAS;AAAA,QACjD;AAAA,QACA,SAAS,MAAM4G,EAASoB,CAAQ;AAAA,QAEhC,UAAA;AAAA,UAAC,gBAAApE,EAAA,OAAA,EAAI,WAAW5D,GAAO,YACpB,UAAA;AAAA,YAAAyH,MAAmB5C,KAClB,gBAAA3E;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,KAAI;AAAA,gBACJ,KAAI;AAAA,cAAA;AAAA,YACN;AAAA,YAED2E,KAAS4C,KAAkB,OAC1B,gBAAAvH;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,KAAI;AAAA,gBACJ,KAAI;AAAA,cAAA;AAAA,YAAA;AAAA,UACN,GAEJ;AAAA,UACA,gBAAAA;AAAA,YAAC8G;AAAA,YAAA;AAAA,cACC,MAAMgB,EAAS;AAAA,cACf,OAAOA,EAAS;AAAA,cAChB,QAAQA,EAAS,OAAOT;AAAA,YAAA;AAAA,UAAA;AAAA,QAC1B;AAAA,MAAA;AAAA,MAzBKS,EAAS;AAAA,IAAA,IA4BtB,CAAA;AAAA,EAAA,GACF;AAEJ;;;;;;GC7DaC,KAAiB,CAAC;AAAA,EAC7B,cAAAV;AAAA,EACA,UAAAX;AAAA,EACA,MAAAY;AACF,MAA2B;;AACnB,QAAAC,KAAiBC,IAAAF,EAAK,aAAL,gBAAAE,EAAe;AAAA,IACpC,CAACC,MAAUA,EAAM,OAAOJ;AAAA,KAGpB,CAACK,GAAQC,CAAS,IAAI9E,GAAS0E,MAAmB,EAAE,GAEpDK,IAAe,MAAM;AACzB,IAAIN,EAAK,YACPK,EAAU,CAACD,CAAM,GAEnBhB,EAASY,CAAI;AAAA,EACf;AAEA,2BACG,OACC,EAAA,UAAA;AAAA,IAAA,gBAAAtH;AAAA,MAAC8G;AAAA,MAAA;AAAA,QACC,MAAMQ,EAAK;AAAA,QACX,OAAOA,EAAK;AAAA,QACZ,eACEI,IAAS,gBAAA1H,EAACgG,IAAU,EAAA,MAAM,IAAI,IAAK,gBAAAhG,EAAC+F,IAAY,EAAA,MAAM,GAAI,CAAA;AAAA,QAE5D,SAAS6B;AAAA,QACT,cAAcF,KAAUH,MAAmB;AAAA,QAC3C,QAAQA,MAAmB,MAAM,CAACG;AAAA,QAClC,WAAW5I,EAAW4I,KAAUH,MAAmB,MAAMzH,GAAO,MAAM;AAAA,MAAA;AAAA,IACxE;AAAA,IACA,gBAAAE,EAAC,OAAI,EAAA,WAAWF,GAAO,gBACpB,UACC4H,OAAAG,IAAAP,EAAK,aAAL,gBAAAO,EAAe,IAAI,CAACC,GAAUnD,MAC5B,gBAAAjB;AAAA,MAAC;AAAA,MAAA;AAAA,QAEC,WAAW5E;AAAA,UACTgB,GAAO;AAAA,UACPuH,MAAiBS,EAAS,KAAKhI,GAAO,SAAS;AAAA,QACjD;AAAA,QACA,SAAS,MAAM4G,EAASoB,CAAQ;AAAA,QAEhC,UAAA;AAAA,UAAC,gBAAApE,EAAA,OAAA,EAAI,WAAW5D,GAAO,YACpB,UAAA;AAAA,YAAAyH,MAAmB5C,KAClB,gBAAA3E;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,KAAI;AAAA,gBACJ,KAAI;AAAA,cAAA;AAAA,YACN;AAAA,YAED2E,KAAS4C,KAAkB,OAC1B,gBAAAvH;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,KAAI;AAAA,gBACJ,KAAI;AAAA,cAAA;AAAA,YAAA;AAAA,UACN,GAEJ;AAAA,UACA,gBAAAA;AAAA,YAAC8G;AAAA,YAAA;AAAA,cACC,MAAMgB,EAAS;AAAA,cACf,OAAOA,EAAS;AAAA,cAEhB,QAAQA,EAAS,OAAOT;AAAA,cACxB,eACES,EAAS,aACP,gBAAA9H;AAAA,gBAAC8F;AAAA,gBAAA;AAAA,kBACC,MAAM;AAAA,kBACN,WAAWhG,GAAO;AAAA,gBAAA;AAAA,cAAA;AAAA,YACpB;AAAA,YAPCgI,EAAS;AAAA,UAAA;AAAA,QAUhB;AAAA,MAAA;AAAA,MAlCKA,EAAS;AAAA,IAAA,IAqCtB,CAAA;AAAA,EAAA,GACF;AAEJ;;;;;;;;;;;;;;;;;GCrEaE,KAAWC,EAAM;AAAA,EAC5B,CACE;AAAA,IACE,OAAAxE;AAAA,IACA,OAAA8C;AAAA,IACA,YAAAC;AAAA,IACA,UAAAzC;AAAA,IACA,UAAAmE;AAAA,IACA,WAAAxI;AAAA,IACA,aAAAyI,IAAc;AAAA,IACd,OAAA9I;AAAA,IACA,SAAA+I;AAAA,IACA,UAAA1B;AAAA,IACA,SAAA2B;AAAA,IACA,QAAAC;AAAA,KAEFhD,MACG;AACH,UAAM,CAACoC,GAAQC,CAAS,IAAI9E,GAAS,EAAK,GACpC,CAAC0F,GAAcC,CAAe,IAAI3F,GAAS,EAAE,GAC7C4F,IAAc9B,GAAuB,IAAI,GACzC+B,IAAa/B,GAAyB,EAAE,GAExCgC,IAAiBP,EAAQ,KAAK,CAACQ,MAAWA,EAAO,UAAUvJ,CAAK,GAEhEuI,IAAe,MAAM;AACzB,MAAI7D,KAAYmE,MAEXR,KAKHC,EAAU,EAAK,GACfa,EAAgB,EAAE,GACTF,KAAA,QAAAA,QANTX,EAAU,EAAI,GACda,EAAgBG,IAAiBP,EAAQ,QAAQO,CAAc,IAAI,EAAE,GAC3DN,KAAA,QAAAA;AAAA,IAMd,GAEMQ,IAAqB,CAACD,MAA2B;AACrD,MAAIA,EAAO,aAEXlC,KAAA,QAAAA,EAAWkC,EAAO,QAClBjB,EAAU,EAAK,GACfa,EAAgB,EAAE,GACTF,KAAA,QAAAA;AAAA,IACX,GAEMQ,IAAgB,CAAC5I,MAA2B;AAChD,UAAI,EAAA6D,KAAYmE;AAEhB,gBAAQhI,EAAE,KAAK;AAAA,UACb,KAAK;AAAA,UACL,KAAK;AAEH,gBADAA,EAAE,eAAe,GACb,CAACwH;AACH,cAAAC,EAAU,EAAI,GACda;AAAA,gBACEG,IAAiBP,EAAQ,QAAQO,CAAc,IAAI;AAAA,cACrD,GACUN,KAAA,QAAAA;AAAA,qBACDE,KAAgB,GAAG;AACtB,oBAAAK,IAASR,EAAQG,CAAY;AAC/B,cAACK,EAAO,YACVC,EAAmBD,CAAM;AAAA,YAC3B;AAEF;AAAA,UACF,KAAK;AACH,YAAIlB,MACFC,EAAU,EAAK,GACfa,EAAgB,EAAE,GACTF,KAAA,QAAAA;AAEX;AAAA,UACF,KAAK;AAEH,gBADApI,EAAE,eAAe,GACb,CAACwH;AACH,cAAAC,EAAU,EAAI,GACda,EAAgB,CAAC,GACPH,KAAA,QAAAA;AAAA,iBACL;AACL,oBAAMU,IACJR,IAAeH,EAAQ,SAAS,IAAIG,IAAe,IAAI;AACzD,cAAAC,EAAgBO,CAAS;AAAA,YAAA;AAE3B;AAAA,UACF,KAAK;AAEH,gBADA7I,EAAE,eAAe,GACb,CAACwH;AACH,cAAAC,EAAU,EAAI,GACEa,EAAAJ,EAAQ,SAAS,CAAC,GACxBC,KAAA,QAAAA;AAAA,iBACL;AACL,oBAAMW,IACJT,IAAe,IAAIA,IAAe,IAAIH,EAAQ,SAAS;AACzD,cAAAI,EAAgBQ,CAAS;AAAA,YAAA;AAE3B;AAAA,QAAA;AAAA,IAEN;AAGA,WAAAhG,GAAU,MAAM;AACR,YAAAiG,IAAqB,CAACpC,MAAsB;AAE9C,QAAA4B,EAAY,WACZ,CAACA,EAAY,QAAQ,SAAS5B,EAAM,MAAc,MAElDc,EAAU,EAAK,GACfa,EAAgB,EAAE,GACTF,KAAA,QAAAA;AAAA,MAEb;AAEA,UAAIZ;AACO,wBAAA,iBAAiB,aAAauB,CAAkB,GAClD,MACL,SAAS,oBAAoB,aAAaA,CAAkB;AAAA,IAChE,GACC,CAACvB,GAAQY,CAAM,CAAC,GAGnBtF,GAAU,MAAM;AACd,MAAIuF,KAAgB,KAAKG,EAAW,QAAQH,CAAY,KAC3CG,EAAA,QAAQH,CAAY,EAAE,eAAe;AAAA,QAC9C,OAAO;AAAA,MAAA,CACR;AAAA,IACH,GACC,CAACA,CAAY,CAAC,GAGd,gBAAA7E,EAAA,OAAA,EAAI,WAAW5D,EAAO,UACpB,UAAA;AAAA,MACC2D,KAAA,gBAAAzD;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWlB,EAAWgB,EAAO,OAAO;AAAA,YAClC,CAACA,EAAO,QAAQ,GAAGiE;AAAA,YACnB,CAACjE,EAAO,QAAQ,GAAGoI;AAAA,UAAA,CACpB;AAAA,UAEA,UAAAzE;AAAA,QAAA;AAAA,MACH;AAAA,MAEF,gBAAAC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAK+E;AAAA,UACL,WAAW3J,EAAWgB,EAAO,gBAAgBJ,GAAW;AAAA,YACtD,CAACI,EAAO,QAAQ,GAAGiE;AAAA,YACnB,CAACjE,EAAO,QAAQ,GAAGoI;AAAA,YACnB,CAACpI,EAAO,KAAK,GAAG,CAAC,CAACyG;AAAA,YAClB,CAACzG,EAAO,IAAI,GAAG4H;AAAA,UAAA,CAChB;AAAA,UAED,UAAA;AAAA,YAAA,gBAAAhE;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,KAAA4B;AAAA,gBACA,WAAWxG,EAAWgB,EAAO,OAAO;AAAA,gBACpC,UAAUiE,KAAYmE,IAAW,KAAK;AAAA,gBACtC,SAASN;AAAA,gBACT,WAAWkB;AAAA,gBACX,MAAK;AAAA,gBACL,iBAAepB;AAAA,gBACf,iBAAc;AAAA,gBACd,cAAYjE;AAAA,gBAEZ,UAAA;AAAA,kBAAA,gBAAAzD,EAAC,UAAK,WAAWF,EAAO,OACrB,UAAiB6I,IAAAA,EAAe,QAAQR,EAC3C,CAAA;AAAA,kBACA,gBAAAnI;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,WAAWlB,EAAWgB,EAAO,SAAS;AAAA,wBACpC,CAACA,EAAO,OAAO,GAAG4H;AAAA,sBAAA,CACnB;AAAA,sBACD,OAAM;AAAA,sBACN,QAAO;AAAA,sBACP,SAAQ;AAAA,sBACR,MAAK;AAAA,sBACL,OAAM;AAAA,sBAEN,UAAA,gBAAA1H;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,GAAE;AAAA,0BACF,QAAO;AAAA,0BACP,aAAY;AAAA,0BACZ,eAAc;AAAA,0BACd,gBAAe;AAAA,wBAAA;AAAA,sBAAA;AAAA,oBACjB;AAAA,kBAAA;AAAA,gBACF;AAAA,cAAA;AAAA,YACF;AAAA,YAEC0H,KACC,gBAAA1H;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAWF,EAAO;AAAA,gBAClB,MAAK;AAAA,gBAEL,UAAA,gBAAAE,EAAC,SAAI,WAAWF,EAAO,WACpB,UAAQsI,EAAA,IAAI,CAACQ,GAAQjE,MACpB,gBAAA3E;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBAEC,KAAK,CAACkJ,MAAQR,EAAW,QAAQ/D,CAAK,IAAIuE;AAAA,oBAC1C,WAAWpK,EAAWgB,EAAO,QAAQ;AAAA,sBACnC,CAACA,EAAO,QAAQ,GAAG8I,EAAO,UAAUvJ;AAAA,sBACpC,CAACS,EAAO,OAAO,GAAG6E,MAAU4D;AAAA,sBAC5B,CAACzI,EAAO,QAAQ,GAAG8I,EAAO;AAAA,oBAAA,CAC3B;AAAA,oBACD,SAAS,MAAMC,EAAmBD,CAAM;AAAA,oBACxC,MAAK;AAAA,oBACL,iBAAeA,EAAO,UAAUvJ;AAAA,oBAE/B,UAAOuJ,EAAA;AAAA,kBAAA;AAAA,kBAXHA,EAAO;AAAA,gBAAA,CAaf,EACH,CAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,MAEJ;AAAA,MACA,gBAAA5I;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWlB,EAAWgB,EAAO,SAAS;AAAA,YACpC,CAACA,EAAO,KAAK,GAAG,CAAC,CAACyG;AAAA,UAAA,CACnB;AAAA,UAEA,UAAQA,IAAA,gBAAAvG,EAACqG,IAAa,EAAA,UAAAE,EAAA,CAAM,IAAiBC;AAAA,QAAA;AAAA,MAAA;AAAA,IAChD,GACF;AAAA,EAAA;AAGN;AAEAwB,GAAS,cAAc;;;;;;;;GC/OjBmB,KAAY,CAAC,EAAE,UAAAxJ,GAAU,WAAAD,IAAY,GACzC,MAAA,gBAAAM,EAAC,OAAI,EAAA,WAAW,GAAGF,GAAO,cAAc,IAAIJ,CAAS,IAAK,UAAAC,GAAS,GAQ/DyJ,KAAa,CAAC,EAAE,UAAAzJ,GAAU,WAAAD,IAAY,GAAA,MAExC,gBAAAgE,EAAA2F,IAAA,EAAA,UAAA;AAAA,EAAA,gBAAArJ;AAAA,IAACR;AAAA,IAAA;AAAA,MACC,WAAWV,EAAWY,GAAWI,GAAO,OAAO;AAAA,MAC/C,SAAS;AAAA,MAER,UAAAH;AAAA,IAAA;AAAA,EACH;AAAA,EACA,gBAAAK;AAAA,IAACR;AAAA,IAAA;AAAA,MACC,WAAWV,EAAWY,GAAWI,GAAO,MAAM;AAAA,MAC9C,SAAS;AAAA,MAER,UAAAH;AAAA,IAAA;AAAA,EAAA;AACH,GACF,GAGI2J,KAAe,CAAC,EAAE,UAAA3J,GAAU,WAAAD,IAAY,GAAA,MAC5C,gBAAAM,EAAC,OAAI,EAAA,WAAWlB,EAAWY,CAAS,GAAI,UAAAC,EAAS,CAAA,GAG7C4J,KAAe,CAAC,EAAE,UAAA5J,GAAU,WAAAD,IAAY,GAC5C,MAAA,gBAAAM,EAAC,OAAI,EAAA,WAAW,GAAGF,GAAO,OAAO,IAAIJ,CAAS,IAAK,UAAAC,GAAS,GAGxD6J,KAAqB,CAAC,EAAE,UAAA7J,GAAU,WAAAD,IAAY,GAClD,MAAA,gBAAAM,EAAC,OAAI,EAAA,WAAW,GAAGF,GAAO,aAAa,IAAIJ,CAAS,IAAK,UAAAC,GAAS,GAS9D8J,KAAqB,CAAC;AAAA,EAC1B,UAAA9J;AAAA,EACA,SAAA+C;AAAA,EACA,WAAAhD,IAAY;AACd,MACE,gBAAAM;AAAA,EAAC2D;AAAA,EAAA;AAAA,IACC,OAAO;AAAA,IACP,MAAK;AAAA,IACL,WAAW,GAAG7D,GAAO,OAAO,IAAIJ,CAAS;AAAA,IACzC,SAAAgD;AAAA,IAEC,UAAA/C;AAAA,EAAA;AACH,GAGI+J,KAAuB,CAAC;AAAA,EAC5B,UAAA/J;AAAA,EACA,SAAA+C;AAAA,EACA,WAAAhD,IAAY;AACd,MACE,gBAAAM;AAAA,EAAC2D;AAAA,EAAA;AAAA,IACC,MAAK;AAAA,IACL,WAAW,GAAG7D,GAAO,OAAO,IAAIJ,CAAS;AAAA,IACzC,SAAAgD;AAAA,IAEC,UAAA/C;AAAA,EAAA;AACH,GASIgK,KAAa,CAAC;AAAA,EAClB,KAAAC;AAAA,EACA,WAAAlK,IAAY;AAAA,EACZ,KAAAmK,IAAM;AACR,MACE,gBAAA7J;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWlB,EAAWgB,GAAO,cAAcJ,CAAS;AAAA,IACpD,KAAAkK;AAAA,IACA,KAAAC;AAAA,EAAA;AACF,GAaIC,KAAQX;AAEdW,GAAM,QAAQV;AACdU,GAAM,UAAUR;AAChBQ,GAAM,UAAUP;AAChBO,GAAM,gBAAgBN;AACtBM,GAAM,gBAAgBL;AACtBK,GAAM,kBAAkBJ;AACxBI,GAAM,QAAQH;;;;;;;;;;;;;;;;;GChHDI,KAAkBC,GAAoC;AAAA,EACjE,OAAO;AACT,CAAC,GAEYC,KAAc,MAAMC,GAAWH,EAAe,GCOrDI,KAAW,CAAC,EAAE,UAAAxK,GAAU,OAAA4G,GAAO,UAAAxC,GAAU,UAAAmE,QAA8B;AAC3E,MAAItE,IAAmB;AAEvB,SAAI2C,IAAe3C,IAAA,UACVG,IAAkBH,IAAA,aAClBsE,MAAkBtE,IAAA,aAGxB,gBAAA5D,EAAA+J,GAAgB,UAAhB,EAAyB,OAAO,EAAE,OAAAnG,KACjC,UAAA,gBAAA5D,EAAC,OAAI,EAAA,WAAWF,GAAO,UAAW,UAAAH,EAAS,CAAA,GAC7C;AAEJ,GAGMyK,KAAQ,CAAC,EAAE,UAAAzK,QAAkC;AAC3C,QAAA,EAAE,OAAAiE,EAAM,IAAIqG,GAAY;AAG5B,SAAA,gBAAAjK;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWlB;AAAA,QACTgB,GAAO;AAAA,QACP8D,MAAU,cAAc9D,GAAO;AAAA,QAC/B8D,MAAU,cAAc9D,GAAO;AAAA,MACjC;AAAA,MAEC,UAAAH;AAAA,IAAA;AAAA,EACH;AAEJ,GASM0K,KAAQpC,EAAM;AAAA,EAClB,CAAC,EAAE,IAAIrC,IAAY,SAAS,WAAAlG,GAAW,GAAGoF,EAAM,GAAGQ,MAAQ;AACnD,UAAA,EAAE,OAAA1B,EAAM,IAAIqG,GAAY;AAG5B,WAAA,gBAAAjK;AAAA,MAAC4F;AAAA,MAAA;AAAA,QACC,KAAAN;AAAA,QACA,WAAWxG,EAAWgB,GAAO,OAAOA,GAAO8D,CAAK,GAAGlE,CAAS;AAAA,QAC5D,UAAUkE,MAAU;AAAA,QACpB,UAAUA,MAAU;AAAA,QACnB,GAAGkB;AAAA,MAAA;AAAA,IACN;AAAA,EAAA;AAGN;AACAuF,GAAM,cAAc;AAGpB,MAAMC,KAAU,CAAC,EAAE,UAAA3K,QAAkC;AAC7C,QAAA,EAAE,OAAAiE,EAAM,IAAIqG,GAAY;AAC1B,SAACtK,IAGH,gBAAA+D;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW5E;AAAA,QACTgB,GAAO;AAAA,QACP8D,MAAU,UAAU9D,GAAO,QAAQA,GAAO;AAAA,MAC5C;AAAA,MAEC,UAAA;AAAA,QAAA8D,MAAU,WAAW,gBAAA5D,EAACiG,IAAY,EAAA,WAAWnG,GAAO,UAAU;AAAA,QAC9DH;AAAA,MAAA;AAAA,IAAA;AAAA,EACH,IAXoB;AAaxB;AAGAwK,GAAS,QAAQC;AACjBD,GAAS,QAAQE;AACjBF,GAAS,UAAUG;;;;;;;;;;;;;;;;;;;;;GCjFNC,KAAa,CAAC;AAAA,EACzB,OAAA3G,IAAQ;AAAA,EACR,MAAAC,IAAO;AAAA,EACP,UAAAC,IAAW;AAAA,EACX,UAAAC,IAAW;AAAA,EACX,UAAApE;AAAA,EACA,SAAA+C,IAAU,MAAM;AAAA,EAAC;AAAA,EACjB,WAAAhD,IAAY;AAAA,EACZ,GAAGsE;AACL,MAAuB;AACrB,QAAMC,IAAcnF;AAAA,IAClBgB,GAAO;AAAA,IACPA,GAAO8D,CAAK;AAAA,IACZ9D,GAAO+D,CAAI;AAAA,IACX;AAAA,MACE,CAAC/D,GAAO,GAAG8D,CAAK,WAAW,CAAC,GAAGE;AAAA,IACjC;AAAA,IACApE;AAAA,EACF;AAGE,SAAA,gBAAAM;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWiE;AAAA,MACX,SAAAvB;AAAA,MACA,UAAAqB;AAAA,MACC,GAAGC;AAAA,MAEH,UAAArE;AAAA,IAAA;AAAA,EACH;AAEJ;;;;;;;;;GC5Ba6K,KAAmB,CAAC;AAAA,EAC/B,OAAA/G;AAAA,EACA,OAAA8C;AAAA,EACA,YAAAC;AAAA,EACA,UAAAzC;AAAA,EACA,UAAAmE;AAAA,EACA,QAAAuC;AAAA,EACA,SAAAC;AAAA,EACA,UAAA/K;AACF,MACG,gBAAA+D,EAAA,OAAA,EAAI,WAAW5D,GAAO,UACpB,UAAA;AAAA,EACC2D,KAAA,gBAAAzD;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWlB,EAAWgB,GAAO,OAAO;AAAA,QAClC,CAACA,GAAO,QAAQ,GAAGiE;AAAA,QACnB,CAACjE,GAAO,QAAQ,GAAGoI;AAAA,MAAA,CACpB;AAAA,MAEA,UAAAzE;AAAA,IAAA;AAAA,EACH;AAAA,EAEF,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW5E,EAAWgB,GAAO,gBAAgB;AAAA,QAC3C,CAACA,GAAO,QAAQ,GAAGiE;AAAA,QACnB,CAACjE,GAAO,QAAQ,GAAGoI;AAAA,QACnB,CAACpI,GAAO,KAAK,GAAG,CAAC,CAACyG;AAAA,MAAA,CACnB;AAAA,MAEA,UAAA;AAAA,QAAAkE;AAAA,QACA9K;AAAA,QACA+K;AAAA,MAAA;AAAA,IAAA;AAAA,EACH;AAAA,EACA,gBAAA1K;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWlB,EAAWgB,GAAO,SAAS;AAAA,QACpC,CAACA,GAAO,KAAK,GAAG,CAAC,CAACyG;AAAA,MAAA,CACnB;AAAA,MAEA,UAAQA,IAAA,gBAAAvG,EAACqG,IAAa,EAAA,UAAAE,EAAA,CAAM,IAAiBC;AAAA,IAAA;AAAA,EAAA;AAChD,GACF,GCpCW6D,KAAQpC,EAAM;AAAA,EACzB,CACE;AAAA,IACE,OAAAxE;AAAA,IACA,OAAA8C;AAAA,IACA,YAAAC;AAAA,IACA,QAAAiE;AAAA,IACA,SAAAC;AAAA,IACA,UAAA3G;AAAA,IACA,UAAAmE;AAAA,IACA,WAAAxI;AAAA,IACA,WAAAiL;AAAA,IACA,YAAAC;AAAA,IACA,UAAAlE;AAAA,IACA,SAAA2B;AAAA,IACA,GAAGrE;AAAA,KAELsB,MACG;AACG,UAAAuF,IAAe,CAAC3K,MAA2C;AAC3D,MAAAyK,KAAa,CAAC,IAAI,OAAOA,CAAS,EAAE,KAAKzK,EAAE,OAAO,KAAK,IACvDA,EAAA,OAAO,kBAAkB,iBAAiB,IAE1CA,EAAA,OAAO,kBAAkB,EAAE,GAE/BwG,KAAA,QAAAA,EAAWxG;AAAA,IACb,GAEM4K,IAAc,CAAC5K,MAA0C;AAC7D,UAAI0K,KAAc,CAAC1K,EAAE,OAAO,OAAO;AACjC,cAAM6K,IAASH;AACf,QAAA1K,EAAE,OAAO,QAAQ6K,GACjB7K,EAAE,OAAO,kBAAkB6K,EAAO,QAAQA,EAAO,MAAM,GACrD7K,EAAA,OAAO,cAAc,IAAI,MAAM,SAAS,EAAE,SAAS,GAAK,CAAC,CAAC;AAAA,MAAA;AAE9D,MAAAmI,KAAA,QAAAA,EAAUnI;AAAA,IACZ;AAGE,WAAA,gBAAAF;AAAA,MAACwK;AAAA,MAAA;AAAA,QACC,OAAA/G;AAAA,QACA,OAAA8C;AAAA,QACA,YAAAC;AAAA,QACA,QAAAiE;AAAA,QACA,SAAAC;AAAA,QACA,UAAA3G;AAAA,QACA,UAAAmE;AAAA,QAEA,UAAA,gBAAAlI;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAAsF;AAAA,YACA,WAAWxG,EAAWgB,GAAO,OAAOJ,CAAS;AAAA,YAC7C,UAAAqE;AAAA,YACA,UAAAmE;AAAA,YACA,UAAU2C;AAAA,YACV,SAASC;AAAA,YACR,GAAG9G;AAAA,UAAA;AAAA,QAAA;AAAA,MACN;AAAA,IACF;AAAA,EAAA;AAGN;AAEAqG,GAAM,cAAc;AChFpB,SAASW,GAAYC,GAAM;AACzB,MAAa,OAAO,WAAY,IAAa;AAC7C,MAAIC,IAAO,SAAS,QAAQ,SAAS,qBAAqB,MAAM,EAAE,CAAC,GAC/DC,IAAQ,SAAS,cAAc,OAAO;AAC1C,EAAAA,EAAM,OAAO,YACbD,EAAK,YAAYC,CAAK,GACrBA,EAAM,aAAcA,EAAM,WAAW,UAAUF,IAAQE,EAAM,YAAY,SAAS,eAAeF,CAAI,CAAC;AACzG;AAKA,MAAMG,KAAW,CAACC,MAAO;AACrB,UAAOA,GAAI;AAAA,IACP,KAAK;AACD,aAAOC;AAAA,IACX,KAAK;AACD,aAAOC;AAAA,IACX,KAAK;AACD,aAAOC;AAAA,IACX,KAAK;AACD,aAAOC;AAAA,IACX;AACI,aAAO;AAAA,EACnB;AACA,GACMC,KAAO,MAAM,EAAE,EAAE,KAAK,CAAC,GACvBC,KAAS,CAAC,EAAE,SAAAC,GAAS,WAAAlM,QACF,gBAAAuI,EAAM,cAAc,OAAO;AAAA,EAC5C,WAAW;AAAA,IACP;AAAA,IACAvI;AAAA,EACH,EAAC,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,EAC1B,gBAAgBkM;AACxB,GAAqB,gBAAA3D,EAAM,cAAc,OAAO;AAAA,EACxC,WAAW;AACnB,GAAOyD,GAAK,IAAI,CAAClK,GAAGxC,MAAkB,gBAAAiJ,EAAM,cAAc,OAAO;AAAA,EACrD,WAAW;AAAA,EACX,KAAK,eAAejJ,CAAC;AACxB,CAAA,CAAC,CAAC,CAAC,GAENsM,KAA4B,gBAAArD,EAAM,cAAc,OAAO;AAAA,EACzD,OAAO;AAAA,EACP,SAAS;AAAA,EACT,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AACX,GAAiB,gBAAAA,EAAM,cAAc,QAAQ;AAAA,EACzC,UAAU;AAAA,EACV,GAAG;AAAA,EACH,UAAU;AACd,CAAC,CAAC,GACIuD,KAA4B,gBAAAvD,EAAM,cAAc,OAAO;AAAA,EACzD,OAAO;AAAA,EACP,SAAS;AAAA,EACT,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AACX,GAAiB,gBAAAA,EAAM,cAAc,QAAQ;AAAA,EACzC,UAAU;AAAA,EACV,GAAG;AAAA,EACH,UAAU;AACd,CAAC,CAAC,GACIsD,KAAyB,gBAAAtD,EAAM,cAAc,OAAO;AAAA,EACtD,OAAO;AAAA,EACP,SAAS;AAAA,EACT,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AACX,GAAiB,gBAAAA,EAAM,cAAc,QAAQ;AAAA,EACzC,UAAU;AAAA,EACV,GAAG;AAAA,EACH,UAAU;AACd,CAAC,CAAC,GACIwD,KAA0B,gBAAAxD,EAAM,cAAc,OAAO;AAAA,EACvD,OAAO;AAAA,EACP,SAAS;AAAA,EACT,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AACX,GAAiB,gBAAAA,EAAM,cAAc,QAAQ;AAAA,EACzC,UAAU;AAAA,EACV,GAAG;AAAA,EACH,UAAU;AACd,CAAC,CAAC,GACI4D,KAA0B,gBAAA5D,EAAM,cAAc,OAAO;AAAA,EACvD,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,eAAe;AAAA,EACf,gBAAgB;AACpB,GAAiB,gBAAAA,EAAM,cAAc,QAAQ;AAAA,EACzC,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACR,CAAC,GAAiB,gBAAAA,EAAM,cAAc,QAAQ;AAAA,EAC1C,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACR,CAAC,CAAC,GAEI6D,KAAsB,MAAI;AAC5B,QAAM,CAACC,GAAkBC,CAAmB,IAAI/D,EAAM,SAAS,SAAS,MAAM;AAC9E,SAAAA,EAAM,UAAU,MAAI;AAChB,UAAMgE,IAAW,MAAI;AACjB,MAAAD,EAAoB,SAAS,MAAM;AAAA,IACtC;AACD,oBAAS,iBAAiB,oBAAoBC,CAAQ,GAC/C,MAAI,OAAO,oBAAoB,oBAAoBA,CAAQ;AAAA,EACrE,GAAE,EAAE,GACEF;AACX;AAEA,IAAIG,KAAgB;AACpB,MAAMC,GAAS;AAAA,EACX,cAAa;AAET,SAAK,YAAY,CAACC,OACd,KAAK,YAAY,KAAKA,CAAU,GACzB,MAAI;AACP,YAAMzH,IAAQ,KAAK,YAAY,QAAQyH,CAAU;AACjD,WAAK,YAAY,OAAOzH,GAAO,CAAC;AAAA,IACnC,IAEL,KAAK,UAAU,CAAC0H,MAAO;AACnB,WAAK,YAAY,QAAQ,CAACD,MAAaA,EAAWC,CAAI,CAAC;AAAA,IAC1D,GACD,KAAK,WAAW,CAACA,MAAO;AACpB,WAAK,QAAQA,CAAI,GACjB,KAAK,SAAS;AAAA,QACV,GAAG,KAAK;AAAA,QACRA;AAAA,MACH;AAAA,IACJ,GACD,KAAK,SAAS,CAACA,MAAO;AAClB,UAAIC;AACJ,YAAM,EAAE,SAAAC,GAAS,GAAGvI,EAAI,IAAKqI,GACvBG,IAAK,QAAQH,KAAQ,OAAO,SAASA,EAAK,OAAQ,cAAcC,IAAWD,EAAK,OAAO,OAAO,SAASC,EAAS,UAAU,IAAID,EAAK,KAAKH,MACxIO,IAAgB,KAAK,OAAO,KAAK,CAACC,MAC7BA,EAAM,OAAOF,CACvB,GACKG,IAAcN,EAAK,gBAAgB,SAAY,KAAOA,EAAK;AACjE,aAAI,KAAK,gBAAgB,IAAIG,CAAE,KAC3B,KAAK,gBAAgB,OAAOA,CAAE,GAE9BC,IACA,KAAK,SAAS,KAAK,OAAO,IAAI,CAACC,MACvBA,EAAM,OAAOF,KACb,KAAK,QAAQ;AAAA,QACT,GAAGE;AAAA,QACH,GAAGL;AAAA,QACH,IAAAG;AAAA,QACA,OAAOD;AAAA,MACnC,CAAyB,GACM;AAAA,QACH,GAAGG;AAAA,QACH,GAAGL;AAAA,QACH,IAAAG;AAAA,QACA,aAAAG;AAAA,QACA,OAAOJ;AAAA,MACV,KAEEG,CACV,IAED,KAAK,SAAS;AAAA,QACV,OAAOH;AAAA,QACP,GAAGvI;AAAA,QACH,aAAA2I;AAAA,QACA,IAAAH;AAAA,MACpB,CAAiB,GAEEA;AAAA,IACV,GACD,KAAK,UAAU,CAACA,OACRA,KACA,KAAK,gBAAgB,IAAIA,CAAE,GAC3B,sBAAsB,MAAI,KAAK,YAAY,QAAQ,CAACJ,MAAaA,EAAW;AAAA,MAChE,IAAAI;AAAA,MACA,SAAS;AAAA,IACZ,CAAA,CAAC,CAAC,KAEX,KAAK,OAAO,QAAQ,CAACE,MAAQ;AACzB,WAAK,YAAY,QAAQ,CAACN,MAAaA,EAAW;AAAA,QAC1C,IAAIM,EAAM;AAAA,QACV,SAAS;AAAA,MACrC,CAAyB,CAAC;AAAA,IAC1B,CAAiB,GAEEF,IAEX,KAAK,UAAU,CAACD,GAASF,MACd,KAAK,OAAO;AAAA,MACf,GAAGA;AAAA,MACH,SAAAE;AAAA,IAChB,CAAa,GAEL,KAAK,QAAQ,CAACA,GAASF,MACZ,KAAK,OAAO;AAAA,MACf,GAAGA;AAAA,MACH,SAAAE;AAAA,MACA,MAAM;AAAA,IACtB,CAAa,GAEL,KAAK,UAAU,CAACA,GAASF,MACd,KAAK,OAAO;AAAA,MACf,GAAGA;AAAA,MACH,MAAM;AAAA,MACN,SAAAE;AAAA,IAChB,CAAa,GAEL,KAAK,OAAO,CAACA,GAASF,MACX,KAAK,OAAO;AAAA,MACf,GAAGA;AAAA,MACH,MAAM;AAAA,MACN,SAAAE;AAAA,IAChB,CAAa,GAEL,KAAK,UAAU,CAACA,GAASF,MACd,KAAK,OAAO;AAAA,MACf,GAAGA;AAAA,MACH,MAAM;AAAA,MACN,SAAAE;AAAA,IAChB,CAAa,GAEL,KAAK,UAAU,CAACA,GAASF,MACd,KAAK,OAAO;AAAA,MACf,GAAGA;AAAA,MACH,MAAM;AAAA,MACN,SAAAE;AAAA,IAChB,CAAa,GAEL,KAAK,UAAU,CAACK,GAASP,MAAO;AAC5B,UAAI,CAACA;AAED;AAEJ,UAAIG;AACJ,MAAIH,EAAK,YAAY,WACjBG,IAAK,KAAK,OAAO;AAAA,QACb,GAAGH;AAAA,QACH,SAAAO;AAAA,QACA,MAAM;AAAA,QACN,SAASP,EAAK;AAAA,QACd,aAAa,OAAOA,EAAK,eAAgB,aAAaA,EAAK,cAAc;AAAA,MAC7F,CAAiB;AAEL,YAAM/K,IAAI,QAAQ,QAAQsL,aAAmB,WAAWA,EAAS,IAAGA,CAAO;AAC3E,UAAIC,IAAgBL,MAAO,QACvBM;AACJ,YAAMC,IAAkBzL,EAAE,KAAK,OAAO0L,MAAW;AAM7C,YALAF,IAAS;AAAA,UACL;AAAA,UACAE;AAAA,QACH,GAC8B/E,EAAM,eAAe+E,CAAQ;AAExD,UAAAH,IAAgB,IAChB,KAAK,OAAO;AAAA,YACR,IAAAL;AAAA,YACA,MAAM;AAAA,YACN,SAASQ;AAAA,UACjC,CAAqB;AAAA,iBACMC,GAAeD,CAAQ,KAAK,CAACA,EAAS,IAAI;AACjD,UAAAH,IAAgB;AAChB,gBAAMK,IAAc,OAAOb,EAAK,SAAU,aAAa,MAAMA,EAAK,MAAM,uBAAuBW,EAAS,MAAM,EAAE,IAAIX,EAAK,OACnHc,IAAc,OAAOd,EAAK,eAAgB,aAAa,MAAMA,EAAK,YAAY,uBAAuBW,EAAS,MAAM,EAAE,IAAIX,EAAK,aAE/He,IADmB,OAAOF,KAAgB,YAAY,CAACjF,EAAM,eAAeiF,CAAW,IACpDA,IAAc;AAAA,YACnD,SAASA;AAAA,UACZ;AACD,eAAK,OAAO;AAAA,YACR,IAAAV;AAAA,YACA,MAAM;AAAA,YACN,aAAAW;AAAA,YACA,GAAGC;AAAA,UAC3B,CAAqB;AAAA,QACrB,WAA2BJ,aAAoB,OAAO;AAClC,UAAAH,IAAgB;AAChB,gBAAMK,IAAc,OAAOb,EAAK,SAAU,aAAa,MAAMA,EAAK,MAAMW,CAAQ,IAAIX,EAAK,OACnFc,IAAc,OAAOd,EAAK,eAAgB,aAAa,MAAMA,EAAK,YAAYW,CAAQ,IAAIX,EAAK,aAE/Fe,IADmB,OAAOF,KAAgB,YAAY,CAACjF,EAAM,eAAeiF,CAAW,IACpDA,IAAc;AAAA,YACnD,SAASA;AAAA,UACZ;AACD,eAAK,OAAO;AAAA,YACR,IAAAV;AAAA,YACA,MAAM;AAAA,YACN,aAAAW;AAAA,YACA,GAAGC;AAAA,UAC3B,CAAqB;AAAA,QACrB,WAA2Bf,EAAK,YAAY,QAAW;AACnC,UAAAQ,IAAgB;AAChB,gBAAMK,IAAc,OAAOb,EAAK,WAAY,aAAa,MAAMA,EAAK,QAAQW,CAAQ,IAAIX,EAAK,SACvFc,IAAc,OAAOd,EAAK,eAAgB,aAAa,MAAMA,EAAK,YAAYW,CAAQ,IAAIX,EAAK,aAE/Fe,IADmB,OAAOF,KAAgB,YAAY,CAACjF,EAAM,eAAeiF,CAAW,IACpDA,IAAc;AAAA,YACnD,SAASA;AAAA,UACZ;AACD,eAAK,OAAO;AAAA,YACR,IAAAV;AAAA,YACA,MAAM;AAAA,YACN,aAAAW;AAAA,YACA,GAAGC;AAAA,UAC3B,CAAqB;AAAA,QACrB;AAAA,MACA,CAAa,EAAE,MAAM,OAAO7G,MAAQ;AAKpB,YAJAuG,IAAS;AAAA,UACL;AAAA,UACAvG;AAAA,QACH,GACG8F,EAAK,UAAU,QAAW;AAC1B,UAAAQ,IAAgB;AAChB,gBAAMK,IAAc,OAAOb,EAAK,SAAU,aAAa,MAAMA,EAAK,MAAM9F,CAAK,IAAI8F,EAAK,OAChFc,IAAc,OAAOd,EAAK,eAAgB,aAAa,MAAMA,EAAK,YAAY9F,CAAK,IAAI8F,EAAK,aAE5Fe,IADmB,OAAOF,KAAgB,YAAY,CAACjF,EAAM,eAAeiF,CAAW,IACpDA,IAAc;AAAA,YACnD,SAASA;AAAA,UACZ;AACD,eAAK,OAAO;AAAA,YACR,IAAAV;AAAA,YACA,MAAM;AAAA,YACN,aAAAW;AAAA,YACA,GAAGC;AAAA,UAC3B,CAAqB;AAAA,QACrB;AAAA,MACA,CAAa,EAAE,QAAQ,MAAI;AACX,QAAIP,MAEA,KAAK,QAAQL,CAAE,GACfA,IAAK,SAETH,EAAK,WAAW,QAAgBA,EAAK,QAAQ,KAAKA,CAAI;AAAA,MACtE,CAAa,GACKgB,IAAS,MAAI,IAAI,QAAQ,CAACC,GAASC,MAASR,EAAgB,KAAK,MAAID,EAAO,CAAC,MAAM,WAAWS,EAAOT,EAAO,CAAC,CAAC,IAAIQ,EAAQR,EAAO,CAAC,CAAC,CAAC,EAAE,MAAMS,CAAM,CAAC;AACzJ,aAAI,OAAOf,KAAO,YAAY,OAAOA,KAAO,WAEjC;AAAA,QACH,QAAAa;AAAA,MACH,IAEM,OAAO,OAAOb,GAAI;AAAA,QACrB,QAAAa;AAAA,MACpB,CAAiB;AAAA,IAER,GACD,KAAK,SAAS,CAACrN,GAAKqM,MAAO;AACvB,YAAMG,KAAMH,KAAQ,OAAO,SAASA,EAAK,OAAOH;AAChD,kBAAK,OAAO;AAAA,QACR,KAAKlM,EAAIwM,CAAE;AAAA,QACX,IAAAA;AAAA,QACA,GAAGH;AAAA,MACnB,CAAa,GACMG;AAAA,IACV,GACD,KAAK,kBAAkB,MACZ,KAAK,OAAO,OAAO,CAACE,MAAQ,CAAC,KAAK,gBAAgB,IAAIA,EAAM,EAAE,CAAC,GAE1E,KAAK,cAAc,CAAE,GACrB,KAAK,SAAS,CAAE,GAChB,KAAK,kBAAkB,oBAAI,IAAK;AAAA,EACxC;AACA;AACA,MAAMc,KAAa,IAAIrB,GAAU,GAE3BsB,KAAgB,CAAClB,GAASF,MAAO;AACnC,QAAMG,KAAMH,KAAQ,OAAO,SAASA,EAAK,OAAOH;AAChD,SAAAsB,GAAW,SAAS;AAAA,IAChB,OAAOjB;AAAA,IACP,GAAGF;AAAA,IACH,IAAAG;AAAA,EACR,CAAK,GACMA;AACX,GACMS,KAAiB,CAACZ,MACbA,KAAQ,OAAOA,KAAS,YAAY,QAAQA,KAAQ,OAAOA,EAAK,MAAO,aAAa,YAAYA,KAAQ,OAAOA,EAAK,UAAW,UAEpIqB,KAAaD,IACbE,KAAa,MAAIH,GAAW,QAC5BI,KAAY,MAAIJ,GAAW,gBAAiB,GAE5Cd,KAAQ,OAAO,OAAOgB,IAAY;AAAA,EACpC,SAASF,GAAW;AAAA,EACpB,MAAMA,GAAW;AAAA,EACjB,SAASA,GAAW;AAAA,EACpB,OAAOA,GAAW;AAAA,EAClB,QAAQA,GAAW;AAAA,EACnB,SAASA,GAAW;AAAA,EACpB,SAASA,GAAW;AAAA,EACpB,SAASA,GAAW;AAAA,EACpB,SAASA,GAAW;AACxB,GAAG;AAAA,EACC,YAAAG;AAAA,EACA,WAAAC;AACJ,CAAC;AAED5C,GAAY,6gdAA6gd;AAEzhd,SAAS6C,GAASC,GAAQ;AACtB,SAAOA,EAAO,UAAU;AAC5B;AAGA,MAAMC,KAAwB,GAExBC,KAAkB,QAElBC,KAAyB,QAEzBC,KAAiB,KAEjBC,KAAc,KAEdC,KAAM,IAENC,KAAkB,IAElBC,KAAsB;AAC5B,SAASC,MAAMxP,GAAS;AACpB,SAAOA,EAAQ,OAAO,OAAO,EAAE,KAAK,GAAG;AAC3C;AACA,SAASyP,GAA0BC,GAAU;AACzC,QAAM,CAAC3N,GAAG4N,CAAC,IAAID,EAAS,MAAM,GAAG,GAC3BE,IAAa,CAAE;AACrB,SAAI7N,KACA6N,EAAW,KAAK7N,CAAC,GAEjB4N,KACAC,EAAW,KAAKD,CAAC,GAEdC;AACX;AACA,MAAMC,KAAQ,CAAC9J,MAAQ;AACnB,MAAI+J,GAAmBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC;AACnK,QAAM,EAAE,QAAQC,GAAe,OAAA5C,GAAO,UAAA6C,GAAU,aAAAC,GAAa,YAAAC,GAAY,eAAAC,GAAe,SAAAC,GAAS,OAAAhL,GAAO,QAAAiL,GAAQ,UAAAC,GAAU,aAAAC,GAAa,mBAAAC,GAAmB,aAAaC,GAAwB,OAAA7E,GAAO,mBAAA8E,GAAmB,mBAAAC,GAAmB,WAAAxQ,IAAY,IAAI,sBAAAyQ,IAAuB,IAAI,UAAUC,GAAqB,UAAA3B,IAAU,KAAA4B,GAAK,iBAAAC,GAAiB,YAAAxR,GAAY,OAAAyR,GAAO,sBAAAC,IAAuB,cAAa,IAAK1L,GAC5Y,CAAC2L,GAAgBC,CAAiB,IAAIzI,EAAM,SAAS,IAAI,GACzD,CAAC0I,GAAmBC,CAAoB,IAAI3I,EAAM,SAAS,IAAI,GAC/D,CAAC4I,GAASC,CAAU,IAAI7I,EAAM,SAAS,EAAK,GAC5C,CAAC8I,GAASC,CAAU,IAAI/I,EAAM,SAAS,EAAK,GAC5C,CAACgJ,GAASC,EAAU,IAAIjJ,EAAM,SAAS,EAAK,GAC5C,CAACkJ,IAAUC,CAAW,IAAInJ,EAAM,SAAS,EAAK,GAC9C,CAACoJ,IAAUC,EAAW,IAAIrJ,EAAM,SAAS,EAAK,GAC9C,CAACsJ,IAAoBC,EAAqB,IAAIvJ,EAAM,SAAS,CAAC,GAC9D,CAACwJ,IAAeC,EAAgB,IAAIzJ,EAAM,SAAS,CAAC,GACpD0J,KAAgB1J,EAAM,OAAOyE,EAAM,YAAY0D,KAAuBlC,EAAc,GACpF0D,KAAgB3J,EAAM,OAAO,IAAI,GACjC4J,KAAW5J,EAAM,OAAO,IAAI,GAC5B6J,KAAUnN,MAAU,GACpBoN,KAAYpN,IAAQ,KAAK+K,GACzBsC,KAAYtF,EAAM,MAClBC,KAAcD,EAAM,gBAAgB,IACpCuF,KAAiBvF,EAAM,aAAa,IACpCwF,KAA4BxF,EAAM,wBAAwB,IAE1DyF,KAAclK,EAAM,QAAQ,MAAI0H,EAAQ,UAAU,CAACyC,MAASA,EAAO,YAAY1F,EAAM,EAAE,KAAK,GAAG;AAAA,IACjGiD;AAAA,IACAjD,EAAM;AAAA,EACd,CAAK,GACK2F,KAAcpK,EAAM,QAAQ,MAAI;AAClC,QAAIqK;AACJ,YAAQA,IAAqB5F,EAAM,gBAAgB,OAAO4F,IAAqBtC;AAAA,EACvF,GAAO;AAAA,IACCtD,EAAM;AAAA,IACNsD;AAAA,EACR,CAAK,GACKuC,KAAWtK,EAAM,QAAQ,MAAIyE,EAAM,YAAY0D,KAAuBlC,IAAgB;AAAA,IACxFxB,EAAM;AAAA,IACN0D;AAAA,EACR,CAAK,GACKoC,KAAyBvK,EAAM,OAAO,CAAC,GACvCwK,KAASxK,EAAM,OAAO,CAAC,GACvByK,KAA6BzK,EAAM,OAAO,CAAC,GAC3C0K,KAAkB1K,EAAM,OAAO,IAAI,GACnC,CAACnH,IAAG4N,EAAC,IAAID,GAAS,MAAM,GAAG,GAC3BmE,KAAqB3K,EAAM,QAAQ,MAC9B0H,EAAQ,OAAO,CAACkD,GAAMC,IAAMC,OAE3BA,MAAgBZ,KACTU,IAEJA,IAAOC,GAAK,QACpB,CAAC,GACL;AAAA,IACCnD;AAAA,IACAwC;AAAA,EACR,CAAK,GACKpG,KAAmBD,GAAqB,GACxCkH,KAAStG,EAAM,UAAU4C,GACzBvL,KAAWiO,OAAc;AAC/B,EAAAS,GAAO,UAAUxK,EAAM,QAAQ,MAAIkK,KAAc9B,IAAMuC,IAAoB;AAAA,IACvET;AAAA,IACAS;AAAA,EACR,CAAK,GACD3K,EAAM,UAAU,MAAI;AAChB,IAAA0J,GAAc,UAAUY;AAAA,EAChC,GAAO;AAAA,IACCA;AAAA,EACR,CAAK,GACDtK,EAAM,UAAU,MAAI;AAEhB,IAAA6I,EAAW,EAAI;AAAA,EAClB,GAAE,EAAE,GACL7I,EAAM,UAAU,MAAI;AAChB,UAAMgL,IAAYpB,GAAS;AAC3B,QAAIoB,GAAW;AACX,YAAMb,KAASa,EAAU,sBAAqB,EAAG;AAEjD,aAAAvB,GAAiBU,EAAM,GACvB3C,EAAW,CAAC/O,OAAI;AAAA,QACR;AAAA,UACI,SAASgM,EAAM;AAAA,UACf,QAAA0F;AAAA,UACA,UAAU1F,EAAM;AAAA,QACnB;AAAA,QACD,GAAGhM;AAAA,MACvB,CAAiB,GACE,MAAI+O,EAAW,CAAC/O,OAAIA,GAAE,OAAO,CAAC0R,OAASA,GAAO,YAAY1F,EAAM,EAAE,CAAC;AAAA,IACtF;AAAA,EACA,GAAO;AAAA,IACC+C;AAAA,IACA/C,EAAM;AAAA,EACd,CAAK,GACDzE,EAAM,gBAAgB,MAAI;AAEtB,QAAI,CAAC4I,EAAS;AACd,UAAMoC,IAAYpB,GAAS,SACrBqB,KAAiBD,EAAU,MAAM;AACvC,IAAAA,EAAU,MAAM,SAAS;AACzB,UAAME,KAAYF,EAAU,sBAAqB,EAAG;AACpD,IAAAA,EAAU,MAAM,SAASC,IACzBxB,GAAiByB,EAAS,GAC1B1D,EAAW,CAACE,OACcA,GAAQ,KAAK,CAACyC,OAASA,GAAO,YAAY1F,EAAM,EAAE,IAW7DiD,GAAQ,IAAI,CAACyC,OAASA,GAAO,YAAY1F,EAAM,KAAK;AAAA,MACnD,GAAG0F;AAAA,MACH,QAAQe;AAAA,IACX,IAAGf,EAAM,IAZP;AAAA,MACH;AAAA,QACI,SAAS1F,EAAM;AAAA,QACf,QAAQyG;AAAA,QACR,UAAUzG,EAAM;AAAA,MACnB;AAAA,MACD,GAAGiD;AAAA,IACN,CAOR;AAAA,EACT,GAAO;AAAA,IACCkB;AAAA,IACAnE,EAAM;AAAA,IACNA,EAAM;AAAA,IACN+C;AAAA,IACA/C,EAAM;AAAA,IACNA,EAAM;AAAA,IACNA,EAAM;AAAA,IACNA,EAAM;AAAA,EACd,CAAK;AACD,QAAM0G,KAAcnL,EAAM,YAAY,MAAI;AAEtC,IAAA+I,EAAW,EAAI,GACfQ,GAAsBiB,GAAO,OAAO,GACpChD,EAAW,CAAC/O,MAAIA,EAAE,OAAO,CAAC0R,OAASA,GAAO,YAAY1F,EAAM,EAAE,CAAC,GAC/D,WAAW,MAAI;AACX,MAAAoD,EAAYpD,CAAK;AAAA,IACpB,GAAE4B,EAAmB;AAAA,EAC9B,GAAO;AAAA,IACC5B;AAAA,IACAoD;AAAA,IACAL;AAAA,IACAgD;AAAA,EACR,CAAK;AACD,EAAAxK,EAAM,UAAU,MAAI;AAChB,QAAIyE,EAAM,WAAWsF,OAAc,aAAatF,EAAM,aAAa,SAAYA,EAAM,SAAS,UAAW;AACzG,QAAI2G;AAsBJ,WAAIxD,KAAYL,KAAezD,MApBZ,MAAI;AACnB,UAAI2G,GAA2B,UAAUF,GAAuB,SAAS;AAErE,cAAMc,MAAc,oBAAI,KAAI,GAAG,QAAS,IAAGd,GAAuB;AAClE,QAAAb,GAAc,UAAUA,GAAc,UAAU2B;AAAA,MAChE;AACY,MAAAZ,GAA2B,WAAU,oBAAI,KAAI,GAAG,QAAS;AAAA,IAC5D,GAce,KAbG,MAAI;AAInB,MAAIf,GAAc,YAAY,UAC9Ba,GAAuB,WAAU,oBAAI,KAAI,GAAG,QAAS,GAErDa,IAAY,WAAW,MAAI;AACvB,QAAA3G,EAAM,eAAe,QAAgBA,EAAM,YAAY,KAAKA,GAAOA,CAAK,GACxE0G,GAAa;AAAA,MAC7B,GAAezB,GAAc,OAAO;AAAA,IAC3B,GAIe,GAET,MAAI,aAAa0B,CAAS;AAAA,EACzC,GAAO;AAAA,IACCxD;AAAA,IACAL;AAAA,IACA9C;AAAA,IACAsF;AAAA,IACAjG;AAAA,IACAqH;AAAA,EACR,CAAK,GACDnL,EAAM,UAAU,MAAI;AAChB,IAAIyE,EAAM,WACN0G,GAAa,GACb1G,EAAM,aAAa,QAAgBA,EAAM,UAAU,KAAKA,GAAOA,CAAK;AAAA,EAEhF,GAAO;AAAA,IACC0G;AAAA,IACA1G,EAAM;AAAA,EACd,CAAK;AACD,WAAS6G,KAAiB;AACtB,QAAI1E;AACJ,QAAI0B,KAAS,QAAgBA,EAAM,SAAS;AACxC,UAAIzB;AACJ,aAAqB,gBAAA7G,EAAM,cAAc,OAAO;AAAA,QAC5C,WAAWsG,GAAGzP,KAAc,OAAO,SAASA,EAAW,QAAQ4N,KAAS,SAAiBoC,KAAqBpC,EAAM,eAAe,OAApD,SAAoEoC,GAAmB,QAAQ,eAAe;AAAA,QAC7L,gBAAgBkD,OAAc;AAAA,MAC9C,GAAezB,EAAM,OAAO;AAAA,IAC5B;AACQ,WAAqB,gBAAAtI,EAAM,cAAc0D,IAAQ;AAAA,MAC7C,WAAW4C,GAAGzP,KAAc,OAAO,SAASA,EAAW,QAAQ4N,KAAS,SAAiBmC,IAAoBnC,EAAM,eAAe,OAAnD,SAAmEmC,EAAkB,MAAM;AAAA,MAC1K,SAASmD,OAAc;AAAA,IACnC,CAAS;AAAA,EACT;AACI,QAAMjL,KAAO2F,EAAM,SAAS6D,KAAS,OAAO,SAASA,EAAMyB,EAAS,MAAM5G,GAAS4G,EAAS;AAC5F,MAAIwB,IAAmBC;AACvB,SAAqB,gBAAAxL,EAAM,cAAc,MAAM;AAAA,IAC3C,UAAU;AAAA,IACV,KAAK4J;AAAA,IACL,WAAWtD,GAAG7O,GAAWuS,IAAgBnT,KAAc,OAAO,SAASA,EAAW,OAAO4N,KAAS,SAAiBmC,IAAoBnC,EAAM,eAAe,OAAnD,SAAmEmC,EAAkB,OAAO/P,KAAc,OAAO,SAASA,EAAW,SAASA,KAAc,OAAO,SAASA,EAAWkT,EAAS,GAAGtF,KAAS,SAAiBoC,IAAqBpC,EAAM,eAAe,OAApD,SAAoEoC,EAAmBkD,EAAS,CAAC;AAAA,IAC7Z,qBAAqB;AAAA,IACrB,qBAAqBwB,KAAoB9G,EAAM,eAAe,OAAO8G,KAAoBzD;AAAA,IACzF,eAAe,EAASrD,EAAM,OAAOA,EAAM,YAAY6C;AAAA,IACvD,gBAAgBsB;AAAA,IAChB,gBAAgB,EAAQnE,EAAM;AAAA,IAC9B,eAAe2E;AAAA,IACf,gBAAgBN;AAAA,IAChB,gBAAgBgB;AAAA,IAChB,mBAAmBjR;AAAA,IACnB,mBAAmB4N;AAAA,IACnB,cAAc/J;AAAA,IACd,cAAcmN;AAAA,IACd,gBAAgBb;AAAA,IAChB,oBAAoBtE;AAAA,IACpB,aAAaqF;AAAA,IACb,eAAegB;AAAA,IACf,kBAAkB7B;AAAA,IAClB,wBAAwBR;AAAA,IACxB,iBAAiB,GAAQd,KAAYS,KAAmBO;AAAA,IACxD,OAAO;AAAA,MACH,WAAWlM;AAAA,MACX,mBAAmBA;AAAA,MACnB,aAAaiL,EAAO,SAASjL;AAAA,MAC7B,YAAY,GAAGoM,IAAUQ,KAAqBkB,GAAO,OAAO;AAAA,MAC5D,oBAAoBnC,IAAkB,SAAS,GAAGmB,EAAa;AAAA,MAC/D,GAAGtG;AAAA,MACH,GAAGuB,EAAM;AAAA,IACZ;AAAA,IACD,WAAW,MAAI;AACX,MAAAwE,GAAW,EAAK,GAChBR,EAAkB,IAAI,GACtBiC,GAAgB,UAAU;AAAA,IAC7B;AAAA,IACD,eAAe,CAAC9L,MAAQ;AACpB,MAAI9C,MAAY,CAAC4I,OACjBiF,GAAc,UAAU,oBAAI,KAAM,GAClCJ,GAAsBiB,GAAO,OAAO,GAEpC5L,EAAM,OAAO,kBAAkBA,EAAM,SAAS,GAC1CA,EAAM,OAAO,YAAY,aAC7BqK,GAAW,EAAI,GACfyB,GAAgB,UAAU;AAAA,QACtB,GAAG9L,EAAM;AAAA,QACT,GAAGA,EAAM;AAAA,MACZ;AAAA,IACJ;AAAA,IACD,aAAa,MAAI;AACb,UAAI6M,GAAmBC,IAAoBC;AAC3C,UAAIzC,MAAY,CAACxE,GAAa;AAC9B,MAAAgG,GAAgB,UAAU;AAC1B,YAAMkB,KAAe,SAASH,IAAoB7B,GAAS,YAAY,OAAO,SAAS6B,EAAkB,MAAM,iBAAiB,kBAAkB,EAAE,QAAQ,MAAM,EAAE,MAAM,CAAC,GACrKI,KAAe,SAASH,KAAqB9B,GAAS,YAAY,OAAO,SAAS8B,GAAmB,MAAM,iBAAiB,kBAAkB,EAAE,QAAQ,MAAM,EAAE,MAAM,CAAC,GACvKI,MAAY,oBAAI,QAAO,QAAS,MAAKH,KAAyBhC,GAAc,YAAY,OAAO,SAASgC,GAAuB,QAAO,IACtII,KAAcvD,MAAmB,MAAMoD,KAAeC,IACtDG,KAAW,KAAK,IAAID,EAAW,IAAID;AACzC,UAAI,KAAK,IAAIC,EAAW,KAAK3F,MAAmB4F,KAAW,MAAM;AAC7D,QAAAzC,GAAsBiB,GAAO,OAAO,GACpC/F,EAAM,aAAa,QAAgBA,EAAM,UAAU,KAAKA,GAAOA,CAAK,GAEhEkE,EADAH,MAAmB,MACEoD,KAAe,IAAI,UAAU,SAE7BC,KAAe,IAAI,SAAS,IAFO,GAI5DV,GAAa,GACbhC,EAAY,EAAI;AAChB;AAAA,MAChB,OAAmB;AACH,YAAI8C,IAAoBC;AACxB,SAACD,KAAqBrC,GAAS,YAAY,QAAgBqC,GAAmB,MAAM,YAAY,oBAAoB,KAAK,IACxHC,KAAqBtC,GAAS,YAAY,QAAgBsC,GAAmB,MAAM,YAAY,oBAAoB,KAAK;AAAA,MACzI;AACY,MAAA7C,GAAY,EAAK,GACjBJ,GAAW,EAAK,GAChBR,EAAkB,IAAI;AAAA,IACzB;AAAA,IACD,eAAe,CAAC7J,MAAQ;AACpB,UAAIuN,IACJV,IAAmBC;AAGnB,UAFI,CAAChB,GAAgB,WAAW,CAAChG,QACTyH,KAAuB,OAAO,aAAY,MAAO,OAAO,SAASA,GAAqB,SAAU,EAAC,UAAU,EAChH;AACnB,YAAMC,KAASxN,EAAM,UAAU8L,GAAgB,QAAQ,GACjD2B,KAASzN,EAAM,UAAU8L,GAAgB,QAAQ;AACvD,UAAI4B;AACJ,YAAMC,MAAmBD,KAAyBzP,EAAM,oBAAoB,OAAOyP,KAAyB/F,GAA0BC,EAAQ;AAE9I,MAAI,CAACgC,MAAmB,KAAK,IAAI6D,EAAM,IAAI,KAAK,KAAK,IAAID,EAAM,IAAI,MAC/D3D,EAAkB,KAAK,IAAI4D,EAAM,IAAI,KAAK,IAAID,EAAM,IAAI,MAAM,GAAG;AAErE,UAAIL,KAAc;AAAA,QACd,GAAG;AAAA,QACH,GAAG;AAAA,MACN;AACD,YAAMS,KAAe,CAACC,OAEX,KAAK,MADG,KAAK,IAAIA,EAAK,IAAI;AAIrC,UAAIjE,MAAmB;AAEnB,YAAI+D,GAAgB,SAAS,KAAK,KAAKA,GAAgB,SAAS,QAAQ;AACpE,cAAIA,GAAgB,SAAS,KAAK,KAAKH,KAAS,KAAKG,GAAgB,SAAS,QAAQ,KAAKH,KAAS;AAChG,YAAAL,GAAY,IAAIK;AAAA,eACb;AAEH,kBAAMM,KAAgBN,KAASI,GAAaJ,EAAM;AAElD,YAAAL,GAAY,IAAI,KAAK,IAAIW,EAAa,IAAI,KAAK,IAAIN,EAAM,IAAIM,KAAgBN;AAAA,UACrG;AAAA,iBAEuB5D,MAAmB,QAEtB+D,GAAgB,SAAS,MAAM,KAAKA,GAAgB,SAAS,OAAO;AACpE,YAAIA,GAAgB,SAAS,MAAM,KAAKF,KAAS,KAAKE,GAAgB,SAAS,OAAO,KAAKF,KAAS;AAChG,UAAAN,GAAY,IAAIM;AAAA,aACb;AAEH,gBAAMK,KAAgBL,KAASG,GAAaH,EAAM;AAElD,UAAAN,GAAY,IAAI,KAAK,IAAIW,EAAa,IAAI,KAAK,IAAIL,EAAM,IAAIK,KAAgBL;AAAA,QACrG;AAGY,OAAI,KAAK,IAAIN,GAAY,CAAC,IAAI,KAAK,KAAK,IAAIA,GAAY,CAAC,IAAI,MACzD1C,GAAY,EAAI,IAEnBoC,KAAoB7B,GAAS,YAAY,QAAgB6B,GAAkB,MAAM,YAAY,oBAAoB,GAAGM,GAAY,CAAC,IAAI,IACrIL,KAAqB9B,GAAS,YAAY,QAAgB8B,GAAmB,MAAM,YAAY,oBAAoB,GAAGK,GAAY,CAAC,IAAI;AAAA,IACpJ;AAAA,EACA,GAAO3B,MAAe,CAAC3F,EAAM,OAAOsF,OAAc,YAA0B,gBAAA/J,EAAM,cAAc,UAAU;AAAA,IAClG,cAAcuI;AAAA,IACd,iBAAiBzM;AAAA,IACjB,qBAAqB;AAAA,IACrB,SAASA,MAAY,CAAC4I,KAAc,MAAI;AAAA,IAAE,IAAG,MAAI;AAC7C,MAAAyG,GAAa,GACb1G,EAAM,aAAa,QAAgBA,EAAM,UAAU,KAAKA,GAAOA,CAAK;AAAA,IACvE;AAAA,IACD,WAAW6B,GAAGzP,KAAc,OAAO,SAASA,EAAW,aAAa4N,KAAS,SAAiBqC,IAAqBrC,EAAM,eAAe,OAApD,SAAoEqC,EAAmB,WAAW;AAAA,EAC9L,IAAQ0E,KAAelD,KAAS,OAAO,SAASA,EAAM,UAAU,OAAOkD,KAAe5H,EAAS,IAAI,OAAOmG,MAAatF,EAAM,QAAQA,EAAM,YAAYA,EAAM,SAAS,UAAU6D,KAAS,OAAO,SAASA,EAAMyB,EAAS,OAAO,QAAQtF,EAAM,QAAsB,gBAAAzE,EAAM,cAAc,OAAO;AAAA,IACtR,aAAa;AAAA,IACb,WAAWsG,GAAGzP,KAAc,OAAO,SAASA,EAAW,MAAM4N,KAAS,SAAiBsC,IAAqBtC,EAAM,eAAe,OAApD,SAAoEsC,EAAmB,IAAI;AAAA,EAChL,GAAOtC,EAAM,WAAWA,EAAM,SAAS,aAAa,CAACA,EAAM,OAAOA,EAAM,QAAQ6G,OAAmB,MAAM7G,EAAM,SAAS,YAAY3F,KAAO,IAAI,IAAI,MAAoB,gBAAAkB,EAAM,cAAc,OAAO;AAAA,IAC1L,gBAAgB;AAAA,IAChB,WAAWsG,GAAGzP,KAAc,OAAO,SAASA,EAAW,SAAS4N,KAAS,SAAiBuC,IAAqBvC,EAAM,eAAe,OAApD,SAAoEuC,EAAmB,OAAO;AAAA,EACtL,GAAqB,gBAAAhH,EAAM,cAAc,OAAO;AAAA,IACxC,cAAc;AAAA,IACd,WAAWsG,GAAGzP,KAAc,OAAO,SAASA,EAAW,OAAO4N,KAAS,SAAiBwC,IAAqBxC,EAAM,eAAe,OAApD,SAAoEwC,EAAmB,KAAK;AAAA,EAClL,GAAOxC,EAAM,MAAMA,EAAM,MAAM,OAAOA,EAAM,SAAU,aAAaA,EAAM,UAAUA,EAAM,KAAK,GAAGA,EAAM,cAA4B,gBAAAzE,EAAM,cAAc,OAAO;AAAA,IACtJ,oBAAoB;AAAA,IACpB,WAAWsG,GAAG4B,GAAsB+B,IAA2BpT,KAAc,OAAO,SAASA,EAAW,aAAa4N,KAAS,SAAiByC,IAAqBzC,EAAM,eAAe,OAApD,SAAoEyC,EAAmB,WAAW;AAAA,EAC1O,GAAE,OAAOzC,EAAM,eAAgB,aAAaA,EAAM,gBAAgBA,EAAM,WAAW,IAAI,IAAI,GAAiB,gBAAAzE,EAAM,eAAeyE,EAAM,MAAM,IAAIA,EAAM,SAASA,EAAM,UAAUmB,GAASnB,EAAM,MAAM,IAAkB,gBAAAzE,EAAM,cAAc,UAAU;AAAA,IAClP,eAAe;AAAA,IACf,eAAe;AAAA,IACf,OAAOyE,EAAM,qBAAqBuD;AAAA,IAClC,SAAS,CAACpJ,MAAQ;AAEd,MAAKgH,GAASnB,EAAM,MAAM,KACrBC,OACLD,EAAM,OAAO,WAAW,QAAgBA,EAAM,OAAO,QAAQ,KAAKA,EAAM,QAAQ7F,CAAK,GACrFuM,GAAa;AAAA,IAChB;AAAA,IACD,WAAW7E,GAAGzP,KAAc,OAAO,SAASA,EAAW,cAAc4N,KAAS,SAAiB0C,IAAqB1C,EAAM,eAAe,OAApD,SAAoE0C,EAAmB,YAAY;AAAA,EAChM,GAAO1C,EAAM,OAAO,KAAK,IAAI,MAAoB,gBAAAzE,EAAM,eAAeyE,EAAM,MAAM,IAAIA,EAAM,SAASA,EAAM,UAAUmB,GAASnB,EAAM,MAAM,IAAkB,gBAAAzE,EAAM,cAAc,UAAU;AAAA,IAClL,eAAe;AAAA,IACf,eAAe;AAAA,IACf,OAAOyE,EAAM,qBAAqBwD;AAAA,IAClC,SAAS,CAACrJ,MAAQ;AAEd,MAAKgH,GAASnB,EAAM,MAAM,MAC1BA,EAAM,OAAO,WAAW,QAAgBA,EAAM,OAAO,QAAQ,KAAKA,EAAM,QAAQ7F,CAAK,GACjF,CAAAA,EAAM,oBACVuM,GAAa;AAAA,IAChB;AAAA,IACD,WAAW7E,GAAGzP,KAAc,OAAO,SAASA,EAAW,cAAc4N,KAAS,SAAiB2C,IAAqB3C,EAAM,eAAe,OAApD,SAAoE2C,EAAmB,YAAY;AAAA,EAC3L,GAAE3C,EAAM,OAAO,KAAK,IAAI,IAAI;AACjC;AACA,SAASkI,KAAuB;AAE5B,MADI,OAAO,SAAW,OAClB,OAAO,WAAa,IAAa,QAAO;AAC5C,QAAMC,IAAe,SAAS,gBAAgB,aAAa,KAAK;AAChE,SAAIA,MAAiB,UAAU,CAACA,IACrB,OAAO,iBAAiB,SAAS,eAAe,EAAE,YAEtDA;AACX;AACA,SAASC,GAAaC,GAAeC,GAAc;AAC/C,QAAMlV,IAAS,CAAE;AACjB;AAAA,IACIiV;AAAA,IACAC;AAAA,EACR,EAAM,QAAQ,CAACvC,GAAQ9N,MAAQ;AACvB,UAAMsQ,IAAWtQ,MAAU,GACrB8F,IAASwK,IAAW,oBAAoB,YACxCC,IAAeD,IAAWhH,KAAyBD;AACzD,aAASmH,EAAU1C,GAAQ;AACvB;AAAA,QACI;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAChB,EAAc,QAAQ,CAACrT,MAAM;AACb,QAAAU,EAAO,GAAG2K,CAAM,IAAIrL,CAAG,EAAE,IAAI,OAAOqT,KAAW,WAAW,GAAGA,CAAM,OAAOA;AAAA,MAC1F,CAAa;AAAA,IACb;AACQ,IAAI,OAAOA,KAAW,YAAY,OAAOA,KAAW,WAChD0C,EAAU1C,CAAM,IACT,OAAOA,KAAW,WACzB;AAAA,MACI;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAChB,EAAc,QAAQ,CAACrT,MAAM;AACb,MAAIqT,EAAOrT,CAAG,MAAM,SAChBU,EAAO,GAAG2K,CAAM,IAAIrL,CAAG,EAAE,IAAI8V,IAE7BpV,EAAO,GAAG2K,CAAM,IAAIrL,CAAG,EAAE,IAAI,OAAOqT,EAAOrT,CAAG,KAAM,WAAW,GAAGqT,EAAOrT,CAAG,CAAC,OAAOqT,EAAOrT,CAAG;AAAA,IAElH,CAAa,IAED+V,EAAUD,CAAY;AAAA,EAElC,CAAK,GACMpV;AACX;AA0CA,MAAMsV,KAAwB,gBAAAnN,EAAM,WAAW,SAAiBnD,GAAOQ,GAAK;AACxE,QAAM,EAAE,QAAA0N,GAAQ,UAAAvE,IAAW,gBAAgB,QAAA4G,IAAS;AAAA,IAChD;AAAA,IACA;AAAA,EACR,GAAO,QAAAC,GAAQ,aAAAjD,GAAa,WAAA3S,GAAW,QAAA+S,GAAQ,cAAAuC,GAAc,OAAAO,IAAQ,SAAS,YAAAC,GAAY,UAAAjD,GAAU,OAAApH,GAAO,eAAAuE,IAAgB3B,IAAuB,cAAA0H,GAAc,KAAAC,IAAMd,MAAwB,KAAAvE,IAAMjC,IAAK,OAAAmC,GAAO,oBAAAoF,IAAqB,gBAAe,IAAK7Q,GAC/O,CAAC8K,GAAQgG,CAAS,IAAI3N,EAAM,SAAS,CAAA,CAAE,GACvC4N,IAAoB5N,EAAM,QAAQ,MAC7B,MAAM,KAAK,IAAI,IAAI;AAAA,IACtBwG;AAAA,EACH,EAAC,OAAOmB,EAAO,OAAO,CAAClD,MAAQA,EAAM,QAAQ,EAAE,IAAI,CAACA,MAAQA,EAAM,QAAQ,CAAC,CAAC,CAAC,GAC/E;AAAA,IACCkD;AAAA,IACAnB;AAAA,EACR,CAAK,GACK,CAACkB,GAASF,CAAU,IAAIxH,EAAM,SAAS,CAAA,CAAE,GACzC,CAAC4H,GAAUiG,CAAW,IAAI7N,EAAM,SAAS,EAAK,GAC9C,CAACuH,GAAauG,EAAc,IAAI9N,EAAM,SAAS,EAAK,GACpD,CAAC+N,GAAaC,CAAc,IAAIhO,EAAM,SAASsN,MAAU,WAAWA,IAAQ,OAAO,SAAW,OAAc,OAAO,cAAc,OAAO,WAAW,8BAA8B,EAAE,UAAU,SAAmB,OAAO,GACvNW,IAAUjO,EAAM,OAAO,IAAI,GAC3BkO,IAAcd,EAAO,KAAK,GAAG,EAAE,QAAQ,QAAQ,EAAE,EAAE,QAAQ,UAAU,EAAE,GACvEe,IAAwBnO,EAAM,OAAO,IAAI,GACzCoO,IAAmBpO,EAAM,OAAO,EAAK,GACrC6H,IAAc7H,EAAM,YAAY,CAACqO,MAAgB;AACnD,IAAAV,EAAU,CAAChG,MAAS;AAChB,UAAI2G;AACJ,cAAOA,IAAe3G,EAAO,KAAK,CAAClD,MAAQA,EAAM,OAAO4J,EAAc,EAAE,MAAM,QAAgBC,EAAa,UACvG/I,GAAW,QAAQ8I,EAAc,EAAE,GAEhC1G,EAAO,OAAO,CAAC,EAAE,IAAApD,EAAE,MAAKA,MAAO8J,EAAc,EAAE;AAAA,IAClE,CAAS;AAAA,EACJ,GAAE,EAAE;AACL,SAAArO,EAAM,UAAU,MACLuF,GAAW,UAAU,CAACd,MAAQ;AACjC,QAAIA,EAAM,SAAS;AAEf,4BAAsB,MAAI;AACtB,QAAAkJ,EAAU,CAAChG,MAASA,EAAO,IAAI,CAAC3P,MAAIA,EAAE,OAAOyM,EAAM,KAAK;AAAA,UAC5C,GAAGzM;AAAA,UACH,QAAQ;AAAA,QACX,IAAGA,CAAC,CAAC;AAAA,MAClC,CAAiB;AACD;AAAA,IAChB;AAEY,eAAW,MAAI;AACX,MAAAuW,GAAS,UAAU,MAAI;AACnB,QAAAZ,EAAU,CAAChG,MAAS;AAChB,gBAAM6G,IAAuB7G,EAAO,UAAU,CAAC3P,MAAIA,EAAE,OAAOyM,EAAM,EAAE;AAEpE,iBAAI+J,MAAyB,KAClB;AAAA,YACH,GAAG7G,EAAO,MAAM,GAAG6G,CAAoB;AAAA,YACvC;AAAA,cACI,GAAG7G,EAAO6G,CAAoB;AAAA,cAC9B,GAAG/J;AAAA,YACN;AAAA,YACD,GAAGkD,EAAO,MAAM6G,IAAuB,CAAC;AAAA,UAC3C,IAEE;AAAA,YACH/J;AAAA,YACA,GAAGkD;AAAA,UACN;AAAA,QACzB,CAAqB;AAAA,MACrB,CAAiB;AAAA,IACjB,CAAa;AAAA,EACb,CAAS,GACF;AAAA,IACCA;AAAA,EACR,CAAK,GACD3H,EAAM,UAAU,MAAI;AAChB,QAAIsN,MAAU,UAAU;AACpB,MAAAU,EAAeV,CAAK;AACpB;AAAA,IACZ;AAWQ,QAVIA,MAAU,aAEN,OAAO,cAAc,OAAO,WAAW,8BAA8B,EAAE,UAEvEU,EAAe,MAAM,IAGrBA,EAAe,OAAO,IAG1B,OAAO,SAAW,IAAa;AACnC,UAAMS,IAAiB,OAAO,WAAW,8BAA8B;AACvE,QAAI;AAEA,MAAAA,EAAe,iBAAiB,UAAU,CAAC,EAAE,SAAAC,EAAO,MAAK;AACrD,QACIV,EADAU,IACe,SAEA,OAFM;AAAA,MAIzC,CAAa;AAAA,IACJ,QAAe;AAEZ,MAAAD,EAAe,YAAY,CAAC,EAAE,SAAAC,QAAY;AACtC,YAAI;AACA,UACIV,EADAU,IACe,SAEA,OAFM;AAAA,QAI5B,SAAQzW,GAAG;AACR,kBAAQ,MAAMA,CAAC;AAAA,QACnC;AAAA,MACA,CAAa;AAAA,IACb;AAAA,EACA,GAAO;AAAA,IACCqV;AAAA,EACR,CAAK,GACDtN,EAAM,UAAU,MAAI;AAEhB,IAAI2H,EAAO,UAAU,KACjBkG,EAAY,EAAK;AAAA,EAE7B,GAAO;AAAA,IACClG;AAAA,EACR,CAAK,GACD3H,EAAM,UAAU,MAAI;AAChB,UAAMa,IAAgB,CAACjC,MAAQ;AAC3B,UAAI+P;AAEJ,UADwBvB,EAAO,MAAM,CAACjW,MAAMyH,EAAMzH,CAAG,KAAKyH,EAAM,SAASzH,CAAG,GACvD;AACjB,YAAIyX;AACJ,QAAAf,EAAY,EAAI,IACfe,IAAoBX,EAAQ,YAAY,QAAgBW,EAAkB,MAAO;AAAA,MAClG;AACY,MAAIhQ,EAAM,SAAS,aAAa,SAAS,kBAAkBqP,EAAQ,YAAaU,IAAmBV,EAAQ,YAAY,QAAgBU,EAAiB,SAAS,SAAS,aAAa,MACnLd,EAAY,EAAK;AAAA,IAExB;AACD,oBAAS,iBAAiB,WAAWhN,CAAa,GAC3C,MAAI,SAAS,oBAAoB,WAAWA,CAAa;AAAA,EACxE,GAAO;AAAA,IACCuM;AAAA,EACR,CAAK,GACDpN,EAAM,UAAU,MAAI;AAChB,QAAIiO,EAAQ;AACR,aAAO,MAAI;AACP,QAAIE,EAAsB,YACtBA,EAAsB,QAAQ,MAAM;AAAA,UAChC,eAAe;AAAA,QACvC,CAAqB,GACDA,EAAsB,UAAU,MAChCC,EAAiB,UAAU;AAAA,MAElC;AAAA,EAEb,GAAO;AAAA,IACCH,EAAQ;AAAA,EAChB,CAAK;AAAA,EAEa,gBAAAjO,EAAM,cAAc,WAAW;AAAA,IACzC,KAAK3C;AAAA,IACL,cAAc,GAAGqQ,CAAkB,IAAIQ,CAAW;AAAA,IAClD,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,eAAe;AAAA,IACf,0BAA0B;AAAA,EAC7B,GAAEN,EAAkB,IAAI,CAACpH,GAAU9J,MAAQ;AACxC,QAAImS;AACJ,UAAM,CAAChW,GAAG4N,CAAC,IAAID,EAAS,MAAM,GAAG;AACjC,WAAKmB,EAAO,SACS,gBAAA3H,EAAM,cAAc,MAAM;AAAA,MAC3C,KAAKwG;AAAA,MACL,KAAKiH,MAAQ,SAASd,GAAsB,IAAGc;AAAA,MAC/C,UAAU;AAAA,MACV,KAAKQ;AAAA,MACL,WAAWxW;AAAA,MACX,uBAAuB;AAAA,MACvB,qBAAqBsW;AAAA,MACrB,mBAAmBlV;AAAA,MACnB,mBAAmB4N;AAAA,MACnB,OAAO;AAAA,QACH,wBAAwB,KAAKoI,IAAYnH,EAAQ,CAAC,MAAM,OAAO,SAASmH,EAAU,WAAW,CAAC;AAAA,QAC9F,WAAW,GAAG3I,EAAW;AAAA,QACzB,SAAS,GAAGkC,CAAG;AAAA,QACf,GAAGlF;AAAA,QACH,GAAG2J,GAAarC,GAAQuC,CAAY;AAAA,MACvC;AAAA,MACD,QAAQ,CAACnO,MAAQ;AACb,QAAIwP,EAAiB,WAAW,CAACxP,EAAM,cAAc,SAASA,EAAM,aAAa,MAC7EwP,EAAiB,UAAU,IACvBD,EAAsB,YACtBA,EAAsB,QAAQ,MAAM;AAAA,UAChC,eAAe;AAAA,QAC3C,CAAyB,GACDA,EAAsB,UAAU;AAAA,MAG3C;AAAA,MACD,SAAS,CAACvP,MAAQ;AAEd,QADyBA,EAAM,kBAAkB,eAAeA,EAAM,OAAO,QAAQ,gBAAgB,WAEhGwP,EAAiB,YAClBA,EAAiB,UAAU,IAC3BD,EAAsB,UAAUvP,EAAM;AAAA,MAE7C;AAAA,MACD,cAAc,MAAIiP,EAAY,EAAI;AAAA,MAClC,aAAa,MAAIA,EAAY,EAAI;AAAA,MACjC,cAAc,MAAI;AAEd,QAAKtG,KACDsG,EAAY,EAAK;AAAA,MAExB;AAAA,MACD,WAAW,MAAIA,EAAY,EAAK;AAAA,MAChC,eAAe,CAACjP,MAAQ;AAEpB,QADyBA,EAAM,kBAAkB,eAAeA,EAAM,OAAO,QAAQ,gBAAgB,WAErGkP,GAAe,EAAI;AAAA,MACtB;AAAA,MACD,aAAa,MAAIA,GAAe,EAAK;AAAA,IACjD,GAAWnG,EAAO,OAAO,CAAClD,MAAQ,CAACA,EAAM,YAAY/H,MAAU,KAAK+H,EAAM,aAAa+B,CAAQ,EAAE,IAAI,CAAC/B,GAAO/H,MAAQ;AACzG,UAAIoS,IAAwBC;AAC5B,aAAqB,gBAAA/O,EAAM,cAAc2G,IAAO;AAAA,QAC5C,KAAKlC,EAAM;AAAA,QACX,OAAO6D;AAAA,QACP,OAAO5L;AAAA,QACP,OAAO+H;AAAA,QACP,mBAAmB8I;AAAA,QACnB,WAAWuB,KAAyBtB,KAAgB,OAAO,SAASA,EAAa,aAAa,OAAOsB,KAAyBxE;AAAA,QAC9H,WAAWkD,KAAgB,OAAO,SAASA,EAAa;AAAA,QACxD,sBAAsBA,KAAgB,OAAO,SAASA,EAAa;AAAA,QACnE,QAAQzC;AAAA,QACR,eAAetD;AAAA,QACf,cAAcsH,KAA4BvB,KAAgB,OAAO,SAASA,EAAa,gBAAgB,OAAOuB,KAA4B3E;AAAA,QAC1I,aAAa7C;AAAA,QACb,UAAUf;AAAA,QACV,OAAOgH,KAAgB,OAAO,SAASA,EAAa;AAAA,QACpD,UAAUA,KAAgB,OAAO,SAASA,EAAa;AAAA,QACvD,YAAYA,KAAgB,OAAO,SAASA,EAAa;AAAA,QACzD,mBAAmBA,KAAgB,OAAO,SAASA,EAAa;AAAA,QAChE,mBAAmBA,KAAgB,OAAO,SAASA,EAAa;AAAA,QAChE,sBAAsBA,KAAgB,OAAO,SAASA,EAAa;AAAA,QACnE,aAAa3F;AAAA,QACb,QAAQF,EAAO,OAAO,CAAC3P,MAAIA,EAAE,YAAYyM,EAAM,QAAQ;AAAA,QACvD,SAASiD,EAAQ,OAAO,CAACjP,MAAIA,EAAE,YAAYgM,EAAM,QAAQ;AAAA,QACzD,YAAY+C;AAAA,QACZ,iBAAiB6F;AAAA,QACjB,KAAKjF;AAAA,QACL,UAAUR;AAAA,QACV,iBAAiB/K,EAAM;AAAA,MACvC,CAAa;AAAA,IACb,CAAS,CAAC,IAnFyB;AAAA,EAoFnC,CAAK,CAAC;AACN,CAAC,GC1oCYmS,KAAgB,CAACnS,MAE1B,gBAAA9E;AAAA,EAACoV;AAAA,EAAA;AAAA,IACC,UAAS;AAAA,IACT,UAAU;AAAA,IACV,aAAW;AAAA,IACX,YAAU;AAAA,IACT,GAAGtQ;AAAA,EAAA;AACN;;;;;;;;;GCHSyH,KAAU;AAAA,EACrB,QAAQ2K,GAAc;AACpB,IAAAxK,GAAM,OAAO,CAAC,MACZ,gBAAAhJ,EAAC,OAAI,EAAA,WAAW,GAAG5D,GAAO,WAAW,IAAIA,GAAO,OAAO,IACrD,UAAA;AAAA,MAAA,gBAAAE,EAAC,OAAI,EAAA,WAAWF,GAAO,SAAU,UAAKoX,GAAA;AAAA,MACtC,gBAAAlX;AAAA,QAACuK;AAAA,QAAA;AAAA,UACC,WAAWzK,GAAO;AAAA,UAClB,SAAS,MAAM4M,GAAM,QAAQ,CAAC;AAAA,UAE9B,4BAACtG,IAAE,CAAA,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACL,EAAA,CACF,CACD;AAAA,EACH;AAAA,EAEA,QAAQ8Q,GAAc;AACpB,IAAAxK,GAAM,OAAO,CAAC,MACZ,gBAAAhJ,EAAC,OAAI,EAAA,WAAW,GAAG5D,GAAO,WAAW,IAAIA,GAAO,OAAO,IACrD,UAAA;AAAA,MAAC,gBAAA4D,EAAA,OAAA,EAAI,WAAW5D,GAAO,SACrB,UAAA;AAAA,QAAC,gBAAAE,EAAAmG,IAAA,EAAc,WAAWrG,GAAO,YAAa,CAAA;AAAA,QAC7CoX;AAAA,MAAA,GACH;AAAA,MACA,gBAAAlX;AAAA,QAACuK;AAAA,QAAA;AAAA,UACC,WAAWzK,GAAO;AAAA,UAClB,SAAS,MAAM4M,GAAM,QAAQ,CAAC;AAAA,UAE9B,4BAACtG,IAAE,CAAA,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACL,EAAA,CACF,CACD;AAAA,EACH;AAAA,EAEA,MAAM8Q,GAAc;AAClB,IAAAxK,GAAM,OAAO,CAAC,MACZ,gBAAAhJ,EAAC,OAAI,EAAA,WAAW,GAAG5D,GAAO,WAAW,IAAIA,GAAO,KAAK,IACnD,UAAA;AAAA,MAAC,gBAAA4D,EAAA,OAAA,EAAI,WAAW5D,GAAO,SACrB,UAAA;AAAA,QAAC,gBAAAE,EAAAkG,IAAA,EAAa,WAAWpG,GAAO,aAAc,CAAA;AAAA,QAC7CoX;AAAA,MAAA,GACH;AAAA,MACA,gBAAAlX;AAAA,QAACuK;AAAA,QAAA;AAAA,UACC,WAAWzK,GAAO;AAAA,UAClB,SAAS,MAAM4M,GAAM,QAAQ,CAAC;AAAA,UAE9B,4BAACtG,IAAE,CAAA,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACL,EAAA,CACF,CACD;AAAA,EACH;AAAA,EAEA,KAAK8Q,GAAc7L,IAAoB,WAAW;AAChD,WAAIA,MAAS,UAAgB,KAAK,MAAM6L,CAAI,IACxC7L,MAAS,YAAkB,KAAK,QAAQ6L,CAAI,IACzC,KAAK,QAAQA,CAAI;AAAA,EAAA;AAE5B;;;;;;;;;;;;;;;;;;;;;;GC1CMC,KAAY,CAAC;AAAA,EACjB,MAAAC;AAAA,EACA,SAAAC;AAAA,EACA,OAAAhV;AAAA,EACA,oBAAAiV;AAAA,EACA,sBAAAC,IAAuB,CAAC;AAAA,EACxB,MAAAC,IAAO;AAAA,EACP,UAAA7X;AACF,MAAkB;AACZ,MAAA,CAACyX,EAAa,QAAA;AAElB,QAAMK,IAAY3X,GAAO,QAAQ0X,CAAI,EAAE,KAAK;AAErC,SAAAE;AAAA,IACL,gBAAA1X;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWF,GAAO;AAAA,QAClB,SAASuX;AAAA,QAET,UAAA,gBAAA3T;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,GAAG5D,GAAO,cAAc,IAAI2X,CAAS;AAAA,YAChD,SAAS,CAACvX,MAAMA,EAAE,gBAAgB;AAAA,YAClC,MAAK;AAAA,YACL,cAAW;AAAA,YACX,mBAAgB;AAAA,YAEhB,UAAA;AAAA,cAAC,gBAAAwD,EAAA,OAAA,EAAI,WAAW5D,GAAO,QACrB,UAAA;AAAA,gBAAC,gBAAA4D,EAAA,OAAA,EAAI,WAAW5D,GAAO,OACpB,UAAA;AAAA,kBAAA0X,MAAS,cACR,gBAAAxX,EAACkG,IAAa,EAAA,WAAWpG,GAAO,UAAU;AAAA,kBAE3C0X,MAAS,aAAa,gBAAAxX,EAACmG,IAAc,EAAA,WAAWrG,GAAO,SAAS;AAAA,kBAChE,gBAAAE,EAAAR,IAAA,EAAW,SAAQ,cAAc,UAAM6C,EAAA,CAAA;AAAA,gBAAA,GAC1C;AAAA,gBACA,gBAAArC;AAAA,kBAACuK;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,OAAM;AAAA,oBACN,SAAS8M;AAAA,oBACT,cAAW;AAAA,oBAEX,4BAACjR,IAAE,CAAA,CAAA;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACL,GACF;AAAA,cAEC,gBAAApG,EAAA,OAAA,EAAI,WAAWF,GAAO,SAAU,UAAAH,GAAS;AAAA,cAEzC,gBAAA+D,EAAA,OAAA,EAAI,WAAW5D,GAAO,QACpB,UAAA;AAAA,gBAAqByX,EAAA,IAAI,CAACzS,GAAO9F,MAChC,gBAAAgB;AAAA,kBAAC2D;AAAA,kBAAA;AAAA,oBAEC,WAAW7D,GAAO;AAAA,oBACjB,GAAGgF;AAAA,oBAEH,UAAMA,EAAA;AAAA,kBAAA;AAAA,kBAJF9F;AAAA,gBAAA,CAMR;AAAA,gBACAsY,KACC,gBAAAtX;AAAA,kBAAC2D;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,OAAM;AAAA,oBACN,WAAW7D,GAAO;AAAA,oBACjB,GAAGwX;AAAA,oBAEH,UAAmBA,EAAA;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACtB,EAEJ,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAAA,IACA,SAAS;AAAA,EACX;AACF,GAMMK,KAAU,CAAC,EAAE,UAAAhY,EAAS,wBACzB,WAAQ,EAAA,WAAWG,GAAO,SAAU,UAAAH,GAAS,GAO1CiY,KAAQT;AACdS,GAAM,UAAUD;ACxFT,SAASE,GAAUzP,GAA2B;AAC7C,QAAA0P,IAAY,SAAS,cAAc,KAAK;AACrC,WAAA,KAAK,YAAYA,CAAS;AAE7B,QAAAC,IAAOC,GAAWF,CAAS,GAE3BG,IAAU,MAAM;AACpB,IAAAF,EAAK,QAAQ,GACbD,EAAU,OAAO;AAAA,EACnB,GAEMI,IAAW,MAAM;;AACrB,KAAA1Q,IAAAY,EAAQ,SAAR,QAAAZ,EAAA,KAAAY,IACQ6P,EAAA;AAAA,EACV,GAEME,IAAe,MAAM;;AACzB,KAAA3Q,IAAAY,EAAQ,aAAR,QAAAZ,EAAA,KAAAY,IACQ6P,EAAA;AAAA,EACV;AAEK,EAAAF,EAAA;AAAA,IACH,gBAAA/X;AAAA,MAAC4X;AAAA,MAAA;AAAA,QACC,MAAM;AAAA,QACN,OAAOxP,EAAQ;AAAA,QACf,MAAMA,EAAQ;AAAA,QACd,SAAS+P;AAAA,QACT,oBAAoB;AAAA,UAClB,UAAU/P,EAAQ,UAAU;AAAA,UAC5B,SAAS8P;AAAA,QACX;AAAA,QACA,sBAAsB;AAAA,UACpB;AAAA,YACE,UAAU9P,EAAQ,cAAc;AAAA,YAChC,SAAS+P;AAAA,UAAA;AAAA,QAEb;AAAA,QAEA,UAAC,gBAAAnY,EAAA4X,GAAM,SAAN,EAAe,YAAQ,QAAQ,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAEpC;AACF;AAEO,MAAMQ,KAAW;AAAA,EACtB,OAAO,CAACC,MACNR,GAAU,EAAE,GAAGQ,GAAM,MAAM,YAAY;AAAA,EAEzC,SAAS,CAACA,MACRR,GAAU,EAAE,GAAGQ,GAAM,MAAM,WAAW;AAAA,EAExC,MAAM,CAACA,MACLR,GAAU,EAAE,GAAGQ,GAAM,MAAM,UAAW,CAAA;AAC1C;;;;GChEaC,KAAa,CAAC,EAAE,UAAA3Y,QAExB,gBAAA+D,EAAA,UAAA,EAAO,WAAW5D,GAAO,YACxB,UAAA;AAAA,EAAA,gBAAAE;AAAA,IAACR;AAAA,IAAA;AAAA,MACC,SAAQ;AAAA,MACR,WAAWM,GAAO;AAAA,MAEjB,UAAAH;AAAA,IAAA;AAAA,EACH;AAAA,EACA,gBAAAK;AAAA,IAACR;AAAA,IAAA;AAAA,MACC,SAAQ;AAAA,MACR,WAAWM,GAAO;AAAA,MAEjB,UAAAH;AAAA,IAAA;AAAA,EAAA;AACH,GACF;;;;GCdS4Y,KAAe,CAAC,EAAE,SAAAC,QAE3B,gBAAAxY,EAAC,SAAI,WAAWF,GAAO,WACrB,UAAC,gBAAAE,EAAA,OAAA,EAAI,WAAWF,GAAO,MACrB,UAAA,gBAAAE;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWF,GAAO;AAAA,IAClB,OAAO,EAAE,OAAO,GAAG0Y,CAAO,IAAI;AAAA,EAAA;GAElC,EACF,CAAA;;;;;;;;GCFSC,KAAc,CAAC;AAAA,EAC1B,OAAAhV;AAAA,EACA,OAAA8C;AAAA,EACA,YAAAC;AAAA,EACA,UAAAzC;AAAA,EACA,WAAArE;AAAA,EACA,MAAAgZ;AAAA,EACA,UAAAhS;AAAA,EACA,GAAG1C;AACL,MAAwB;AACtB,QAAM4C,IAAmB,MAAM;AAC7B,QAAIF,GAAU;AACZ,YAAMG,IAAQ;AAAA,QACZ,QAAQ;AAAA,UACN,MAAA6R;AAAA,UACA,OAAO1U,EAAK,SAAS;AAAA,QAAA;AAAA,MAEzB;AAEA,MAAA0C,EAASG,CAAK;AAAA,IAAA;AAAA,EAElB;AACA,SACG,gBAAAnD,EAAA,OAAA,EAAI,WAAW5D,GAAO,UACrB,UAAA;AAAA,IAAA,gBAAAE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAWlB,EAAWY,GAAWI,GAAO,gBAAgBA,GAAO,KAAK;AAAA,QACpE,UAAAiE;AAAA,QACA,MAAA2U;AAAA,QACA,UAAAhS;AAAA,QACC,GAAG1C;AAAA,MAAA;AAAA,IACN;AAAA,IACC,gBAAAN,EAAA,OAAA,EAAI,WAAW5D,GAAO,gBACrB,UAAA;AAAA,MAAA,gBAAAE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWlB,EAAWgB,GAAO,OAAO;AAAA,YAClC,CAACA,GAAO,QAAQ,GAAGiE;AAAA,UAAA,CACpB;AAAA,UACD,SAAS6C;AAAA,UAER,UAAAnD;AAAA,QAAA;AAAA,MACH;AAAA,MACC8C,KACC,gBAAAvG;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWlB,EAAWgB,GAAO,SAAS;AAAA,YACpC,CAACA,GAAO,KAAK,GAAG,CAAC,CAACyG;AAAA,UAAA,CACnB;AAAA,UAEA,UAAQA,IAAA,gBAAAvG,EAACqG,IAAa,EAAA,UAAAE,EAAA,CAAM,IAAiBC;AAAA,QAAA;AAAA,MAChD;AAAA,MAEDA,KAAc,CAACD,KACd,gBAAAvG;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWlB,EAAWgB,GAAO,SAAS;AAAA,YACpC,CAACA,GAAO,KAAK,GAAG,CAAC,CAACyG;AAAA,UAAA,CACnB;AAAA,UAEA,UAAAC;AAAA,QAAA;AAAA,MAAA;AAAA,IACH,EAEJ,CAAA;AAAA,EAAA,GACF;AAEJ;;;;GClEamS,KAAgB,CAAC,EAAE,OAAAtW,GAAO,OAAAuW,QAElC,gBAAAlV,EAAA,OAAA,EAAI,WAAW5D,GAAO,WACrB,UAAA;AAAA,EAAA,gBAAAE;AAAA,IAACR;AAAA,IAAA;AAAA,MACC,SAAQ;AAAA,MACR,WAAWM,GAAO;AAAA,MAEjB,UAAAuC;AAAA,IAAA;AAAA,EACH;AAAA,EACA,gBAAArC;AAAA,IAACR;AAAA,IAAA;AAAA,MACC,SAAQ;AAAA,MACR,WAAWM,GAAO;AAAA,MAEjB,UAAAuC;AAAA,IAAA;AAAA,EACH;AAAA,EACCuW;AAAA,GACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;GCKSC,KAAO,CAAC;AAAA,EACnB,UAAAlZ;AAAA,EACA,UAAAmZ,IAAW;AAAA,EACX,OAAAC,IAAQ;AAAA,EACR,GAAGjU;AACL,MAAoC;AAClC,QAAMkU,IAAYla;AAAA,IAChBgB,GAAO;AAAA,IACPA,GAAOgZ,CAAQ;AAAA,IACfhZ,GAAO,SAASiZ,CAAK,EAAE;AAAA,EACzB;AAGE,SAAA,gBAAA/Y;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG8E;AAAA,MACJ,WAAWkU;AAAA,MAEV,UAAArZ;AAAA,IAAA;AAAA,EACH;AAEJ;ACjDA,SAASsB,GAAE,GAAE;AAAC,MAAI,GAAER,GAAE,IAAE;AAAG,MAAa,OAAO,KAAjB,YAA8B,OAAO,KAAjB,SAAmB,MAAG;AAAA,WAAoB,OAAO,KAAjB,SAAmB,KAAG,MAAM,QAAQ,CAAC,GAAE;AAAC,QAAIF,IAAE,EAAE;AAAO,SAAI,IAAE,GAAE,IAAEA,GAAE,IAAI,GAAE,CAAC,MAAIE,IAAEQ,GAAE,EAAE,CAAC,CAAC,OAAK,MAAI,KAAG,MAAK,KAAGR;AAAA,EAAE,MAAM,MAAIA,KAAK,EAAE,GAAEA,CAAC,MAAI,MAAI,KAAG,MAAK,KAAGA;AAAG,SAAO;AAAC;AAAQ,SAASwY,KAAM;AAAC,WAAQ,GAAE,GAAExY,IAAE,GAAE,IAAE,IAAGF,IAAE,UAAU,QAAOE,IAAEF,GAAEE,IAAI,EAAC,IAAE,UAAUA,CAAC,OAAK,IAAEQ,GAAE,CAAC,OAAK,MAAI,KAAG,MAAK,KAAG;AAAG,SAAO;AAAC;ACA/W,MAAMiY,KAAuB,KACvBC,KAAwB,CAAAC,MAAU;AACtC,QAAMC,IAAWC,GAAeF,CAAM,GAChC;AAAA,IACJ,wBAAAG;AAAA,IACA,gCAAAC;AAAA,EACJ,IAAMJ;AAgBJ,SAAO;AAAA,IACL,iBAhBsB,CAAA1Z,MAAa;AACnC,YAAM+Z,IAAa/Z,EAAU,MAAMwZ,EAAoB;AAEvD,aAAIO,EAAW,CAAC,MAAM,MAAMA,EAAW,WAAW,KAChDA,EAAW,MAAO,GAEbC,GAAkBD,GAAYJ,CAAQ,KAAKM,GAA+Bja,CAAS;AAAA,IAC3F;AAAA,IAUC,6BATkC,CAACka,GAAcC,MAAuB;AACxE,YAAMC,IAAYP,EAAuBK,CAAY,KAAK,CAAE;AAC5D,aAAIC,KAAsBL,EAA+BI,CAAY,IAC5D,CAAC,GAAGE,GAAW,GAAGN,EAA+BI,CAAY,CAAC,IAEhEE;AAAA,IACR;AAAA,EAIA;AACH,GACMJ,KAAoB,CAACD,GAAYM,MAAoB;;AACzD,MAAIN,EAAW,WAAW;AACxB,WAAOM,EAAgB;AAEzB,QAAMC,IAAmBP,EAAW,CAAC,GAC/BQ,IAAsBF,EAAgB,SAAS,IAAIC,CAAgB,GACnEE,IAA8BD,IAAsBP,GAAkBD,EAAW,MAAM,CAAC,GAAGQ,CAAmB,IAAI;AACxH,MAAIC;AACF,WAAOA;AAET,MAAIH,EAAgB,WAAW,WAAW;AACxC;AAEF,QAAMI,IAAYV,EAAW,KAAKP,EAAoB;AACtD,UAAO1R,IAAAuS,EAAgB,WAAW,KAAK,CAAC;AAAA,IACtC,WAAAK;AAAA,EACJ,MAAQA,EAAUD,CAAS,CAAC,MAFnB,gBAAA3S,EAEsB;AAC/B,GACM6S,KAAyB,cACzBV,KAAiC,CAAAja,MAAa;AAClD,MAAI2a,GAAuB,KAAK3a,CAAS,GAAG;AAC1C,UAAM4a,IAA6BD,GAAuB,KAAK3a,CAAS,EAAE,CAAC,GACrE6a,IAAWD,KAAA,gBAAAA,EAA4B,UAAU,GAAGA,EAA2B,QAAQ,GAAG;AAChG,QAAIC;AAEF,aAAO,gBAAgBA;AAAA,EAE7B;AACA,GAIMjB,KAAiB,CAAAF,MAAU;AAC/B,QAAM;AAAA,IACJ,OAAA7D;AAAA,IACA,aAAAiF;AAAA,EACJ,IAAMpB,GACEC,IAAW;AAAA,IACf,UAAU,oBAAI,IAAK;AAAA,IACnB,YAAY,CAAA;AAAA,EACb;AACD,aAAWO,KAAgBY;AACzB,IAAAC,GAA0BD,EAAYZ,CAAY,GAAGP,GAAUO,GAAcrE,CAAK;AAEpF,SAAO8D;AACT,GACMoB,KAA4B,CAACC,GAAYX,GAAiBH,GAAcrE,MAAU;AACtF,EAAAmF,EAAW,QAAQ,CAAAC,MAAmB;AACpC,QAAI,OAAOA,KAAoB,UAAU;AACvC,YAAMC,IAAwBD,MAAoB,KAAKZ,IAAkBc,GAAQd,GAAiBY,CAAe;AACjH,MAAAC,EAAsB,eAAehB;AACrC;AAAA,IACN;AACI,QAAI,OAAOe,KAAoB,YAAY;AACzC,UAAIG,GAAcH,CAAe,GAAG;AAClC,QAAAF,GAA0BE,EAAgBpF,CAAK,GAAGwE,GAAiBH,GAAcrE,CAAK;AACtF;AAAA,MACR;AACM,MAAAwE,EAAgB,WAAW,KAAK;AAAA,QAC9B,WAAWY;AAAA,QACX,cAAAf;AAAA,MACR,CAAO;AACD;AAAA,IACN;AACI,WAAO,QAAQe,CAAe,EAAE,QAAQ,CAAC,CAACvb,GAAKsb,CAAU,MAAM;AAC7D,MAAAD,GAA0BC,GAAYG,GAAQd,GAAiB3a,CAAG,GAAGwa,GAAcrE,CAAK;AAAA,IAC9F,CAAK;AAAA,EACL,CAAG;AACH,GACMsF,KAAU,CAACd,GAAiBgB,MAAS;AACzC,MAAIC,IAAyBjB;AAC7B,SAAAgB,EAAK,MAAM7B,EAAoB,EAAE,QAAQ,CAAA+B,MAAY;AACnD,IAAKD,EAAuB,SAAS,IAAIC,CAAQ,KAC/CD,EAAuB,SAAS,IAAIC,GAAU;AAAA,MAC5C,UAAU,oBAAI,IAAK;AAAA,MACnB,YAAY,CAAA;AAAA,IACpB,CAAO,GAEHD,IAAyBA,EAAuB,SAAS,IAAIC,CAAQ;AAAA,EACzE,CAAG,GACMD;AACT,GACMF,KAAgB,CAAAI,MAAQA,EAAK,eAG7BC,KAAiB,CAAAC,MAAgB;AACrC,MAAIA,IAAe;AACjB,WAAO;AAAA,MACL,KAAK,MAAA;AAAA;AAAA,MACL,KAAK,MAAM;AAAA,MAAA;AAAA,IACZ;AAEH,MAAIC,IAAY,GACZC,IAAQ,oBAAI,IAAK,GACjBC,IAAgB,oBAAI,IAAK;AAC7B,QAAMC,IAAS,CAACpc,GAAKC,MAAU;AAC7B,IAAAic,EAAM,IAAIlc,GAAKC,CAAK,GACpBgc,KACIA,IAAYD,MACdC,IAAY,GACZE,IAAgBD,GAChBA,IAAQ,oBAAI,IAAK;AAAA,EAEpB;AACD,SAAO;AAAA,IACL,IAAIlc,GAAK;AACP,UAAIC,IAAQic,EAAM,IAAIlc,CAAG;AACzB,UAAIC,MAAU;AACZ,eAAOA;AAET,WAAKA,IAAQkc,EAAc,IAAInc,CAAG,OAAO;AACvC,eAAAoc,EAAOpc,GAAKC,CAAK,GACVA;AAAA,IAEV;AAAA,IACD,IAAID,GAAKC,GAAO;AACd,MAAIic,EAAM,IAAIlc,CAAG,IACfkc,EAAM,IAAIlc,GAAKC,CAAK,IAEpBmc,EAAOpc,GAAKC,CAAK;AAAA,IAEzB;AAAA,EACG;AACH,GACMoc,KAAqB,KACrBC,KAAqB,KACrBC,KAA4BD,GAAmB,QAC/CE,KAAuB,CAAAxC,MAAU;AACrC,QAAM;AAAA,IACJ,QAAA3O;AAAA,IACA,4BAAAoR;AAAA,EACJ,IAAMzC;AAOJ,MAAI0C,IAAiB,CAAApc,MAAa;AAChC,UAAMqc,IAAY,CAAE;AACpB,QAAIC,IAAe,GACfC,IAAa,GACbC,IAAgB,GAChBC;AACJ,aAASxX,IAAQ,GAAGA,IAAQjF,EAAU,QAAQiF,KAAS;AACrD,UAAIyX,IAAmB1c,EAAUiF,CAAK;AACtC,UAAIqX,MAAiB,KAAKC,MAAe,GAAG;AAC1C,YAAIG,MAAqBV,IAAoB;AAC3C,UAAAK,EAAU,KAAKrc,EAAU,MAAMwc,GAAevX,CAAK,CAAC,GACpDuX,IAAgBvX,IAAQgX;AACxB;AAAA,QACV;AACQ,YAAIS,MAAqB,KAAK;AAC5B,UAAAD,IAA0BxX;AAC1B;AAAA,QACV;AAAA,MACA;AACM,MAAIyX,MAAqB,MACvBJ,MACSI,MAAqB,MAC9BJ,MACSI,MAAqB,MAC9BH,MACSG,MAAqB,OAC9BH;AAAA,IAER;AACI,UAAMI,IAAqCN,EAAU,WAAW,IAAIrc,IAAYA,EAAU,UAAUwc,CAAa,GAC3GI,IAAgBC,GAAuBF,CAAkC,GACzEG,IAAuBF,MAAkBD,GACzCI,IAA+BN,KAA2BA,IAA0BD,IAAgBC,IAA0BD,IAAgB;AACpJ,WAAO;AAAA,MACL,WAAAH;AAAA,MACA,sBAAAS;AAAA,MACA,eAAAF;AAAA,MACA,8BAAAG;AAAA,IACD;AAAA,EACF;AACD,MAAIhS,GAAQ;AACV,UAAMiS,IAAajS,IAASiR,IACtBiB,IAAyBb;AAC/B,IAAAA,IAAiB,CAAApc,MAAaA,EAAU,WAAWgd,CAAU,IAAIC,EAAuBjd,EAAU,UAAUgd,EAAW,MAAM,CAAC,IAAI;AAAA,MAChI,YAAY;AAAA,MACZ,WAAW,CAAE;AAAA,MACb,sBAAsB;AAAA,MACtB,eAAehd;AAAA,MACf,8BAA8B;AAAA,IAC/B;AAAA,EACL;AACE,MAAImc,GAA4B;AAC9B,UAAMc,IAAyBb;AAC/B,IAAAA,IAAiB,CAAApc,MAAamc,EAA2B;AAAA,MACvD,WAAAnc;AAAA,MACA,gBAAgBid;AAAA,IACtB,CAAK;AAAA,EACL;AACE,SAAOb;AACT,GACMS,KAAyB,CAAAD,MACzBA,EAAc,SAASb,EAAkB,IACpCa,EAAc,UAAU,GAAGA,EAAc,SAAS,CAAC,IAMxDA,EAAc,WAAWb,EAAkB,IACtCa,EAAc,UAAU,CAAC,IAE3BA,GAQHM,KAAsB,CAAAxD,MAAU;AACpC,QAAMyD,IAA0B,OAAO,YAAYzD,EAAO,wBAAwB,IAAI,CAAA0D,MAAY,CAACA,GAAU,EAAI,CAAC,CAAC;AAmBnH,SAlBsB,CAAAf,MAAa;AACjC,QAAIA,EAAU,UAAU;AACtB,aAAOA;AAET,UAAMgB,IAAkB,CAAE;AAC1B,QAAIC,IAAoB,CAAE;AAC1B,WAAAjB,EAAU,QAAQ,CAAAe,MAAY;AAE5B,MAD4BA,EAAS,CAAC,MAAM,OAAOD,EAAwBC,CAAQ,KAEjFC,EAAgB,KAAK,GAAGC,EAAkB,KAAI,GAAIF,CAAQ,GAC1DE,IAAoB,CAAE,KAEtBA,EAAkB,KAAKF,CAAQ;AAAA,IAEvC,CAAK,GACDC,EAAgB,KAAK,GAAGC,EAAkB,KAAI,CAAE,GACzCD;AAAA,EACR;AAEH,GACME,KAAoB,CAAA7D,OAAW;AAAA,EACnC,OAAO+B,GAAe/B,EAAO,SAAS;AAAA,EACtC,gBAAgBwC,GAAqBxC,CAAM;AAAA,EAC3C,eAAewD,GAAoBxD,CAAM;AAAA,EACzC,GAAGD,GAAsBC,CAAM;AACjC,IACM8D,KAAsB,OACtBC,KAAiB,CAACC,GAAWC,MAAgB;AACjD,QAAM;AAAA,IACJ,gBAAAvB;AAAA,IACA,iBAAAwB;AAAA,IACA,6BAAAC;AAAA,IACA,eAAAC;AAAA,EACJ,IAAMH,GAQEI,IAAwB,CAAE,GAC1B3e,IAAase,EAAU,KAAI,EAAG,MAAMF,EAAmB;AAC7D,MAAIpQ,IAAS;AACb,WAASnI,IAAQ7F,EAAW,SAAS,GAAG6F,KAAS,GAAGA,KAAS,GAAG;AAC9D,UAAM+Y,IAAoB5e,EAAW6F,CAAK,GACpC;AAAA,MACJ,YAAAgZ;AAAA,MACA,WAAA5B;AAAA,MACA,sBAAAS;AAAA,MACA,eAAAF;AAAA,MACA,8BAAAG;AAAA,IACN,IAAQX,EAAe4B,CAAiB;AACpC,QAAIC,GAAY;AACd,MAAA7Q,IAAS4Q,KAAqB5Q,EAAO,SAAS,IAAI,MAAMA,IAASA;AACjE;AAAA,IACN;AACI,QAAI+M,IAAqB,CAAC,CAAC4C,GACvB7C,IAAe0D,EAAgBzD,IAAqByC,EAAc,UAAU,GAAGG,CAA4B,IAAIH,CAAa;AAChI,QAAI,CAAC1C,GAAc;AACjB,UAAI,CAACC,GAAoB;AAEvB,QAAA/M,IAAS4Q,KAAqB5Q,EAAO,SAAS,IAAI,MAAMA,IAASA;AACjE;AAAA,MACR;AAEM,UADA8M,IAAe0D,EAAgBhB,CAAa,GACxC,CAAC1C,GAAc;AAEjB,QAAA9M,IAAS4Q,KAAqB5Q,EAAO,SAAS,IAAI,MAAMA,IAASA;AACjE;AAAA,MACR;AACM,MAAA+M,IAAqB;AAAA,IAC3B;AACI,UAAM+D,IAAkBJ,EAAczB,CAAS,EAAE,KAAK,GAAG,GACnD8B,IAAarB,IAAuBoB,IAAkBnC,KAAqBmC,GAC3EE,IAAUD,IAAajE;AAC7B,QAAI6D,EAAsB,SAASK,CAAO;AAExC;AAEF,IAAAL,EAAsB,KAAKK,CAAO;AAClC,UAAMC,IAAiBR,EAA4B3D,GAAcC,CAAkB;AACnF,aAAS7a,IAAI,GAAGA,IAAI+e,EAAe,QAAQ,EAAE/e,GAAG;AAC9C,YAAMgf,IAAQD,EAAe/e,CAAC;AAC9B,MAAAye,EAAsB,KAAKI,IAAaG,CAAK;AAAA,IACnD;AAEI,IAAAlR,IAAS4Q,KAAqB5Q,EAAO,SAAS,IAAI,MAAMA,IAASA;AAAA,EACrE;AACE,SAAOA;AACT;AAWA,SAASmR,KAAS;AAChB,MAAItZ,IAAQ,GACRuZ,GACAC,GACAha,IAAS;AACb,SAAOQ,IAAQ,UAAU;AACvB,KAAIuZ,IAAW,UAAUvZ,GAAO,OAC1BwZ,IAAgBC,GAAQF,CAAQ,OAClC/Z,MAAWA,KAAU,MACrBA,KAAUga;AAIhB,SAAOha;AACT;AACA,MAAMia,KAAU,CAAAC,MAAO;AACrB,MAAI,OAAOA,KAAQ;AACjB,WAAOA;AAET,MAAIF,GACAha,IAAS;AACb,WAASvC,IAAI,GAAGA,IAAIyc,EAAI,QAAQzc;AAC9B,IAAIyc,EAAIzc,CAAC,MACHuc,IAAgBC,GAAQC,EAAIzc,CAAC,CAAC,OAChCuC,MAAWA,KAAU,MACrBA,KAAUga;AAIhB,SAAOha;AACT;AACA,SAASma,GAAoBC,MAAsBC,GAAkB;AACnE,MAAInB,GACAoB,GACAC,GACAC,IAAiBC;AACrB,WAASA,EAAkBxB,GAAW;AACpC,UAAMhE,IAASoF,EAAiB,OAAO,CAACK,GAAgBC,MAAwBA,EAAoBD,CAAc,GAAGN,GAAmB;AACxI,WAAAlB,IAAcJ,GAAkB7D,CAAM,GACtCqF,IAAWpB,EAAY,MAAM,KAC7BqB,IAAWrB,EAAY,MAAM,KAC7BsB,IAAiBI,GACVA,EAAc3B,CAAS;AAAA,EAClC;AACE,WAAS2B,EAAc3B,GAAW;AAChC,UAAM4B,IAAeP,EAASrB,CAAS;AACvC,QAAI4B;AACF,aAAOA;AAET,UAAMlS,IAASqQ,GAAeC,GAAWC,CAAW;AACpD,WAAAqB,EAAStB,GAAWtQ,CAAM,GACnBA;AAAA,EACX;AACE,SAAO,WAA6B;AAClC,WAAO6R,EAAeV,GAAO,MAAM,MAAM,SAAS,CAAC;AAAA,EACpD;AACH;AACA,MAAMgB,IAAY,CAAA7f,MAAO;AACvB,QAAM8f,IAAc,CAAA3J,MAASA,EAAMnW,CAAG,KAAK,CAAE;AAC7C,SAAA8f,EAAY,gBAAgB,IACrBA;AACT,GACMC,KAAsB,+BACtBC,KAAyB,+BACzBC,KAAgB,cAChBC,KAAkB,oCAClBC,KAAkB,6HAClBC,KAAqB,sDAErBC,KAAc,mEACdC,KAAa,gGACbC,KAAa,CAAAtgB,MAASggB,GAAc,KAAKhgB,CAAK,GAC9CugB,IAAW,CAAAvgB,MAAS,CAAC,CAACA,KAAS,CAAC,OAAO,MAAM,OAAOA,CAAK,CAAC,GAC1DwgB,KAAY,CAAAxgB,MAAS,CAAC,CAACA,KAAS,OAAO,UAAU,OAAOA,CAAK,CAAC,GAC9DygB,KAAY,CAAAzgB,MAASA,EAAM,SAAS,GAAG,KAAKugB,EAASvgB,EAAM,MAAM,GAAG,EAAE,CAAC,GACvE0gB,KAAe,CAAA1gB,MAASigB,GAAgB,KAAKjgB,CAAK,GAClD2gB,KAAQ,MAAM,IACdC,KAAe,CAAA5gB;AAAA;AAAA;AAAA;AAAA,EAIrBkgB,GAAgB,KAAKlgB,CAAK,KAAK,CAACmgB,GAAmB,KAAKngB,CAAK;AAAA,GACvD6gB,KAAU,MAAM,IAChBC,KAAW,CAAA9gB,MAASogB,GAAY,KAAKpgB,CAAK,GAC1C+gB,KAAU,CAAA/gB,MAASqgB,GAAW,KAAKrgB,CAAK,GACxCghB,KAAoB,CAAAhhB,MAAS,CAACihB,EAAiBjhB,CAAK,KAAK,CAACkhB,EAAoBlhB,CAAK,GACnFmhB,KAAkB,CAAAnhB,MAASohB,GAAoBphB,GAAOqhB,IAAaR,EAAO,GAC1EI,IAAmB,CAAAjhB,MAAS8f,GAAoB,KAAK9f,CAAK,GAC1DshB,KAAoB,CAAAthB,MAASohB,GAAoBphB,GAAOuhB,IAAeX,EAAY,GACnFY,KAAoB,CAAAxhB,MAASohB,GAAoBphB,GAAOyhB,IAAelB,CAAQ,GAC/EmB,KAAsB,CAAA1hB,MAASohB,GAAoBphB,GAAO2hB,IAAiBd,EAAO,GAClFe,KAAmB,CAAA5hB,MAASohB,GAAoBphB,GAAO6hB,IAAcd,EAAO,GAC5Ee,KAAoB,CAAA9hB,MAASohB,GAAoBphB,GAAO+hB,IAAejB,EAAQ,GAC/EI,IAAsB,CAAAlhB,MAAS+f,GAAuB,KAAK/f,CAAK,GAChEgiB,KAA4B,CAAAhiB,MAASiiB,GAAuBjiB,GAAOuhB,EAAa,GAChFW,KAAgC,CAAAliB,MAASiiB,GAAuBjiB,GAAOmiB,EAAiB,GACxFC,KAA8B,CAAApiB,MAASiiB,GAAuBjiB,GAAO2hB,EAAe,GACpFU,KAA0B,CAAAriB,MAASiiB,GAAuBjiB,GAAOqhB,EAAW,GAC5EiB,KAA2B,CAAAtiB,MAASiiB,GAAuBjiB,GAAO6hB,EAAY,GAC9EU,KAA4B,CAAAviB,MAASiiB,GAAuBjiB,GAAO+hB,IAAe,EAAI,GAEtFX,KAAsB,CAACphB,GAAOwiB,GAAWC,MAAc;AAC3D,QAAMhV,IAASqS,GAAoB,KAAK9f,CAAK;AAC7C,SAAIyN,IACEA,EAAO,CAAC,IACH+U,EAAU/U,EAAO,CAAC,CAAC,IAErBgV,EAAUhV,EAAO,CAAC,CAAC,IAErB;AACT,GACMwU,KAAyB,CAACjiB,GAAOwiB,GAAWE,IAAqB,OAAU;AAC/E,QAAMjV,IAASsS,GAAuB,KAAK/f,CAAK;AAChD,SAAIyN,IACEA,EAAO,CAAC,IACH+U,EAAU/U,EAAO,CAAC,CAAC,IAErBiV,IAEF;AACT,GAEMf,KAAkB,CAAAvd,MAASA,MAAU,cAAcA,MAAU,cAC7Dyd,KAAe,CAAAzd,MAASA,MAAU,WAAWA,MAAU,OACvDid,KAAc,CAAAjd,MAASA,MAAU,YAAYA,MAAU,UAAUA,MAAU,WAC3Emd,KAAgB,CAAAnd,MAASA,MAAU,UACnCqd,KAAgB,CAAArd,MAASA,MAAU,UACnC+d,KAAoB,CAAA/d,MAASA,MAAU,eACvC2d,KAAgB,CAAA3d,MAASA,MAAU,UA2BnCue,KAAmB,MAAM;AAM7B,QAAMC,IAAahD,EAAU,OAAO,GAC9BiD,IAAYjD,EAAU,MAAM,GAC5BkD,IAAYlD,EAAU,MAAM,GAC5BmD,IAAkBnD,EAAU,aAAa,GACzCoD,IAAgBpD,EAAU,UAAU,GACpCqD,IAAerD,EAAU,SAAS,GAClCsD,IAAkBtD,EAAU,YAAY,GACxCuD,IAAiBvD,EAAU,WAAW,GACtCwD,IAAexD,EAAU,SAAS,GAClCyD,IAAczD,EAAU,QAAQ,GAChC0D,IAAc1D,EAAU,QAAQ,GAChC2D,IAAmB3D,EAAU,cAAc,GAC3C4D,IAAkB5D,EAAU,aAAa,GACzC6D,IAAkB7D,EAAU,aAAa,GACzC8D,IAAY9D,EAAU,MAAM,GAC5B+D,IAAmB/D,EAAU,aAAa,GAC1CgE,IAAchE,EAAU,QAAQ,GAChCiE,IAAYjE,EAAU,MAAM,GAC5BkE,IAAelE,EAAU,SAAS,GAQlCmE,IAAa,MAAM,CAAC,QAAQ,SAAS,OAAO,cAAc,QAAQ,QAAQ,SAAS,QAAQ,GAC3FC,IAAgB,MAAM;AAAA,IAAC;AAAA,IAAU;AAAA,IAAO;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAS;AAAA;AAAA,IAEzE;AAAA,IAAY;AAAA;AAAA,IAEZ;AAAA,IAAa;AAAA;AAAA,IAEb;AAAA,IAAgB;AAAA;AAAA,IAEhB;AAAA,EAAa,GACPC,IAA6B,MAAM,CAAC,GAAGD,EAAa,GAAI9C,GAAqBD,CAAgB,GAC7FiD,IAAgB,MAAM,CAAC,QAAQ,UAAU,QAAQ,WAAW,QAAQ,GACpEC,IAAkB,MAAM,CAAC,QAAQ,WAAW,MAAM,GAClDC,IAA0B,MAAM,CAAClD,GAAqBD,GAAkBmC,CAAY,GACpFiB,IAAa,MAAM,CAAC/D,IAAY,QAAQ,QAAQ,GAAG8D,GAAyB,GAC5EE,IAA4B,MAAM,CAAC9D,IAAW,QAAQ,WAAWU,GAAqBD,CAAgB,GACtGsD,IAA6B,MAAM,CAAC,QAAQ;AAAA,IAChD,MAAM,CAAC,QAAQ/D,IAAWU,GAAqBD,CAAgB;AAAA,EACnE,GAAKT,IAAWU,GAAqBD,CAAgB,GAC7CuD,IAA4B,MAAM,CAAChE,IAAW,QAAQU,GAAqBD,CAAgB,GAC3FwD,KAAwB,MAAM,CAAC,QAAQ,OAAO,OAAO,MAAMvD,GAAqBD,CAAgB,GAChGyD,IAAwB,MAAM,CAAC,SAAS,OAAO,UAAU,WAAW,UAAU,UAAU,WAAW,YAAY,eAAe,UAAU,GACxIC,IAA0B,MAAM,CAAC,SAAS,OAAO,UAAU,WAAW,eAAe,UAAU,GAC/FC,IAAc,MAAM,CAAC,QAAQ,GAAGR,EAAuB,CAAE,GACzDS,IAAc,MAAM,CAACvE,IAAY,QAAQ,QAAQ,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,GAAG8D,GAAyB,GAC5IU,IAAa,MAAM,CAAClC,GAAY1B,GAAqBD,CAAgB,GACrE8D,IAAkB,MAAM,CAAC,GAAGf,EAAa,GAAI5B,IAA6BV,IAAqB;AAAA,IACnG,UAAU,CAACR,GAAqBD,CAAgB;AAAA,EACpD,CAAG,GACK+D,IAAgB,MAAM,CAAC,aAAa;AAAA,IACxC,QAAQ,CAAC,IAAI,KAAK,KAAK,SAAS,OAAO;AAAA,EAC3C,CAAG,GACKC,IAAc,MAAM,CAAC,QAAQ,SAAS,WAAW5C,IAAyBlB,IAAiB;AAAA,IAC/F,MAAM,CAACD,GAAqBD,CAAgB;AAAA,EAChD,CAAG,GACKiE,IAA4B,MAAM,CAACzE,IAAWuB,IAA2BV,EAAiB,GAC1F6D,IAAc,MAAM;AAAA;AAAA,IAE1B;AAAA,IAAI;AAAA,IAAQ;AAAA,IAAQ9B;AAAA,IAAanC;AAAA,IAAqBD;AAAA,EAAgB,GAChEmE,IAAmB,MAAM,CAAC,IAAI7E,GAAUyB,IAA2BV,EAAiB,GACpF+D,IAAiB,MAAM,CAAC,SAAS,UAAU,UAAU,QAAQ,GAC7DC,IAAiB,MAAM,CAAC,UAAU,YAAY,UAAU,WAAW,UAAU,WAAW,eAAe,cAAc,cAAc,cAAc,cAAc,aAAa,OAAO,cAAc,SAAS,YAAY,GACtNC,IAAyB,MAAM,CAAChF,GAAUE,IAAW2B,IAA6BV,EAAmB,GACrG8D,KAAY,MAAM;AAAA;AAAA,IAExB;AAAA,IAAI;AAAA,IAAQ9B;AAAA,IAAWxC;AAAA,IAAqBD;AAAA,EAAgB,GACtDwE,KAAc,MAAM,CAAC,QAAQlF,GAAUW,GAAqBD,CAAgB,GAC5EyE,IAAa,MAAM,CAAC,QAAQnF,GAAUW,GAAqBD,CAAgB,GAC3E0E,KAAY,MAAM,CAACpF,GAAUW,GAAqBD,CAAgB,GAClE2E,KAAiB,MAAM,CAACtF,IAAY,QAAQ,GAAG8D,EAAuB,CAAE;AAC9E,SAAO;AAAA,IACL,WAAW;AAAA,IACX,OAAO;AAAA,MACL,SAAS,CAAC,QAAQ,QAAQ,SAAS,QAAQ;AAAA,MAC3C,QAAQ,CAAC,OAAO;AAAA,MAChB,MAAM,CAAC1D,EAAY;AAAA,MACnB,YAAY,CAACA,EAAY;AAAA,MACzB,OAAO,CAACC,EAAK;AAAA,MACb,WAAW,CAACD,EAAY;AAAA,MACxB,eAAe,CAACA,EAAY;AAAA,MAC5B,MAAM,CAAC,MAAM,OAAO,QAAQ;AAAA,MAC5B,MAAM,CAACM,EAAiB;AAAA,MACxB,eAAe,CAAC,QAAQ,cAAc,SAAS,UAAU,UAAU,YAAY,QAAQ,aAAa,OAAO;AAAA,MAC3G,gBAAgB,CAACN,EAAY;AAAA,MAC7B,SAAS,CAAC,QAAQ,SAAS,QAAQ,UAAU,WAAW,OAAO;AAAA,MAC/D,aAAa,CAAC,YAAY,QAAQ,UAAU,YAAY,WAAW,MAAM;AAAA,MACzE,QAAQ,CAACA,EAAY;AAAA,MACrB,QAAQ,CAACA,EAAY;AAAA,MACrB,SAAS,CAAC,MAAMH,CAAQ;AAAA,MACxB,MAAM,CAACG,EAAY;AAAA,MACnB,eAAe,CAACA,EAAY;AAAA,MAC5B,UAAU,CAAC,WAAW,SAAS,UAAU,QAAQ,SAAS,QAAQ;AAAA,IACnE;AAAA,IACD,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQX,QAAQ,CAAC;AAAA,QACP,QAAQ,CAAC,QAAQ,UAAUJ,IAAYW,GAAkBC,GAAqB0C,CAAW;AAAA,MACjG,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,WAAW,CAAC,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,MAKvB,SAAS,CAAC;AAAA,QACR,SAAS,CAACrD,GAAUU,GAAkBC,GAAqBiC,CAAc;AAAA,MACjF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,eAAeY,EAAU;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgBA,EAAU;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgB,CAAC,QAAQ,SAAS,cAAc,cAAc;AAAA,MACtE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,kBAAkB,CAAC,SAAS,OAAO;AAAA,MAC3C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,KAAK,CAAC;AAAA,QACJ,KAAK,CAAC,UAAU,SAAS;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC,SAAS,gBAAgB,UAAU,QAAQ,eAAe,SAAS,gBAAgB,iBAAiB,cAAc,gBAAgB,sBAAsB,sBAAsB,sBAAsB,mBAAmB,aAAa,aAAa,QAAQ,eAAe,YAAY,aAAa,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,MAKnT,IAAI,CAAC,WAAW,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,MAK7B,OAAO,CAAC;AAAA,QACN,OAAO,CAAC,SAAS,QAAQ,QAAQ,SAAS,KAAK;AAAA,MACvD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAAC,QAAQ,SAAS,QAAQ,QAAQ,SAAS,KAAK;AAAA,MAC/D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC,WAAW,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKvC,cAAc,CAAC;AAAA,QACb,QAAQ,CAAC,WAAW,SAAS,QAAQ,QAAQ,YAAY;AAAA,MACjE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,QAAQE,EAA0B;AAAA,MAC1C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC;AAAA,QACT,UAAUC,EAAa;AAAA,MAC/B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAcA,EAAa;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAcA,EAAa;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAYC,EAAe;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgBA,EAAe;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgBA,EAAe;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC,UAAU,SAAS,YAAY,YAAY,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,MAK9D,OAAO,CAAC;AAAA,QACN,OAAOE,EAAU;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAWA,EAAU;AAAA,MAC7B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAWA,EAAU;AAAA,MAC7B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAOA,EAAU;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,KAAK,CAAC;AAAA,QACJ,KAAKA,EAAU;AAAA,MACvB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,KAAK,CAAC;AAAA,QACJ,KAAKA,EAAU;AAAA,MACvB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAOA,EAAU;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQA,EAAU;AAAA,MAC1B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,MAAM,CAAC;AAAA,QACL,MAAMA,EAAU;AAAA,MACxB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC,WAAW,aAAa,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,MAK/C,GAAG,CAAC;AAAA,QACF,GAAG,CAAC7D,IAAW,QAAQU,GAAqBD,CAAgB;AAAA,MACpE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQD,OAAO,CAAC;AAAA,QACN,OAAO,CAACX,IAAY,QAAQ,QAAQ6C,GAAgB,GAAGiB,EAAyB,CAAA;AAAA,MACxF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,MAAM,CAAC,OAAO,eAAe,OAAO,aAAa;AAAA,MACzD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,MAAM,CAAC,UAAU,QAAQ,cAAc;AAAA,MAC/C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,MAAM,CAAC;AAAA,QACL,MAAM,CAAC7D,GAAUD,IAAY,QAAQ,WAAW,QAAQW,CAAgB;AAAA,MAChF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,MAAM,CAAC;AAAA,QACL,MAAM,CAAC,IAAIV,GAAUW,GAAqBD,CAAgB;AAAA,MAClE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAAC,IAAIV,GAAUW,GAAqBD,CAAgB;AAAA,MACpE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAACT,IAAW,SAAS,QAAQ,QAAQU,GAAqBD,CAAgB;AAAA,MACzF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaqD,EAAyB;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,KAAKC,EAA0B;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaC,EAAyB;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAWA,EAAyB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaF,EAAyB;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,KAAKC,EAA0B;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaC,EAAyB;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAWA,EAAyB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAAC,OAAO,OAAO,SAAS,aAAa,WAAW;AAAA,MACrE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaC,GAAqB;AAAA,MAC1C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,GAAqB;AAAA,MAC1C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,KAAK,CAAC;AAAA,QACJ,KAAKL,EAAuB;AAAA,MACpC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAASA,EAAuB;AAAA,MACxC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAASA,EAAuB;AAAA,MACxC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,SAAS,CAAC,GAAGM,EAAqB,GAAI,QAAQ;AAAA,MACtD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,iBAAiB,CAAC,GAAGC,EAAuB,GAAI,QAAQ;AAAA,MAChE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgB,CAAC,QAAQ,GAAGA,EAAyB,CAAA;AAAA,MAC7D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,SAAS,CAAC,UAAU,GAAGD,EAAuB,CAAA;AAAA,MACtD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,OAAO,CAAC,GAAGC,KAA2B;AAAA,UACpC,UAAU,CAAC,IAAI,MAAM;AAAA,QACtB,CAAA;AAAA,MACT,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,MAAM,CAAC,QAAQ,GAAGA,KAA2B;AAAA,UAC3C,UAAU,CAAC,IAAI,MAAM;AAAA,QACtB,CAAA;AAAA,MACT,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,iBAAiBD,EAAqB;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,eAAe,CAAC,GAAGC,EAAuB,GAAI,UAAU;AAAA,MAChE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAAC,QAAQ,GAAGA,EAAyB,CAAA;AAAA,MAC3D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,GAAG,CAAC;AAAA,QACF,GAAGP,EAAuB;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAIA,EAAuB;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAIA,EAAuB;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAIA,EAAuB;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAIA,EAAuB;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAIA,EAAuB;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAIA,EAAuB;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAIA,EAAuB;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAIA,EAAuB;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,GAAG,CAAC;AAAA,QACF,GAAGQ,EAAW;AAAA,MACtB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAIA,EAAW;AAAA,MACvB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAIA,EAAW;AAAA,MACvB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAIA,EAAW;AAAA,MACvB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAIA,EAAW;AAAA,MACvB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAIA,EAAW;AAAA,MACvB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAIA,EAAW;AAAA,MACvB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAIA,EAAW;AAAA,MACvB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAIA,EAAW;AAAA,MACvB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAWR,EAAuB;AAAA,MAC1C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKrC,WAAW,CAAC;AAAA,QACV,WAAWA,EAAuB;AAAA,MAC1C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQrC,MAAM,CAAC;AAAA,QACL,MAAMS,EAAW;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,GAAG,CAAC;AAAA,QACF,GAAG,CAAC1B,GAAgB,UAAU,GAAG0B,EAAa,CAAA;AAAA,MACtD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS;AAAA,UAAC1B;AAAA,UAAgB;AAAA;AAAA,UAC1B;AAAA,UAAQ,GAAG0B,EAAa;AAAA,QAAA;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS;AAAA,UAAC1B;AAAA,UAAgB;AAAA,UAAU;AAAA;AAAA,UACpC;AAAA;AAAA,UACA;AAAA,YACE,QAAQ,CAACD,CAAe;AAAA,UACzB;AAAA,UAAE,GAAG2B,EAAa;AAAA,QAAA;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,GAAG,CAAC;AAAA,QACF,GAAG,CAAC,UAAU,MAAM,GAAGA,EAAa,CAAA;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAC,UAAU,MAAM,QAAQ,GAAGA,EAAa,CAAA;AAAA,MAC1D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAC,UAAU,MAAM,GAAGA,EAAa,CAAA;AAAA,MAClD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQD,aAAa,CAAC;AAAA,QACZ,MAAM,CAAC,QAAQ/B,GAAWd,IAA2BV,EAAiB;AAAA,MAC9E,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC,eAAe,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKxD,cAAc,CAAC,UAAU,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA,MAKrC,eAAe,CAAC;AAAA,QACd,MAAM,CAACyB,GAAiB7B,GAAqBM,EAAiB;AAAA,MACtE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgB,CAAC,mBAAmB,mBAAmB,aAAa,kBAAkB,UAAU,iBAAiB,YAAY,kBAAkB,kBAAkBf,IAAWQ,CAAgB;AAAA,MACpM,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,MAAM,CAACiB,IAA+BjB,GAAkB4B,CAAS;AAAA,MACzE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,MAK5B,eAAe,CAAC,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,MAKzB,oBAAoB,CAAC,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,MAKnC,cAAc,CAAC,eAAe,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA,MAK7C,eAAe,CAAC,qBAAqB,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,MAKnD,gBAAgB,CAAC,sBAAsB,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA,MAK1D,UAAU,CAAC;AAAA,QACT,UAAU,CAACG,GAAe9B,GAAqBD,CAAgB;AAAA,MACvE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACV,GAAU,QAAQW,GAAqBM,EAAiB;AAAA,MAC/E,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS;AAAA;AAAA,UACTyB;AAAA,UAAc,GAAGmB,EAAyB;AAAA,QAAA;AAAA,MAClD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAAC,QAAQlD,GAAqBD,CAAgB;AAAA,MACpE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,uBAAuB,CAAC;AAAA,QACtB,MAAM,CAAC,UAAU,SAAS;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,MAAM,CAAC,QAAQ,WAAW,QAAQC,GAAqBD,CAAgB;AAAA,MAC/E,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,MAAM,CAAC,QAAQ,UAAU,SAAS,WAAW,SAAS,KAAK;AAAA,MACnE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,qBAAqB,CAAC;AAAA,QACpB,aAAa6D,EAAU;AAAA,MAC/B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,MAAMA,EAAU;AAAA,MACxB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC,aAAa,YAAY,gBAAgB,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,MAK3E,yBAAyB,CAAC;AAAA,QACxB,YAAY,CAAC,GAAGO,EAAc,GAAI,MAAM;AAAA,MAChD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,6BAA6B,CAAC;AAAA,QAC5B,YAAY,CAAC9E,GAAU,aAAa,QAAQW,GAAqBI,EAAiB;AAAA,MAC1F,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,yBAAyB,CAAC;AAAA,QACxB,YAAYwD,EAAU;AAAA,MAC9B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC;AAAA,QACnB,oBAAoB,CAACvE,GAAU,QAAQW,GAAqBD,CAAgB;AAAA,MACpF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC,aAAa,aAAa,cAAc,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,MAKxE,iBAAiB,CAAC,YAAY,iBAAiB,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,MAK1D,aAAa,CAAC;AAAA,QACZ,MAAM,CAAC,QAAQ,UAAU,WAAW,QAAQ;AAAA,MACpD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQmD,EAAuB;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,OAAO,CAAC,YAAY,OAAO,UAAU,UAAU,YAAY,eAAe,OAAO,SAASlD,GAAqBD,CAAgB;AAAA,MACvI,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAY,CAAC,UAAU,UAAU,OAAO,YAAY,YAAY,cAAc;AAAA,MACtF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAAC,UAAU,SAAS,OAAO,MAAM;AAAA,MAChD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,MAAM,CAAC;AAAA,QACL,MAAM,CAAC,cAAc,YAAY,QAAQ;AAAA,MACjD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAC,QAAQ,UAAU,MAAM;AAAA,MAC1C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAC,QAAQC,GAAqBD,CAAgB;AAAA,MAC/D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQD,iBAAiB,CAAC;AAAA,QAChB,IAAI,CAAC,SAAS,SAAS,QAAQ;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAW,CAAC,UAAU,WAAW,WAAW,MAAM;AAAA,MAC1D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAAC,UAAU,WAAW,SAAS;AAAA,MACpD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,IAAI8D,EAAe;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,IAAIC,EAAa;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,IAAIC,EAAW;AAAA,MACvB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,IAAI,CAAC,QAAQ;AAAA,UACX,QAAQ,CAAC;AAAA,YACP,IAAI,CAAC,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,IAAI;AAAA,UAC3D,GAAazE,IAAWU,GAAqBD,CAAgB;AAAA,UACnD,QAAQ,CAAC,IAAIC,GAAqBD,CAAgB;AAAA,UAClD,OAAO,CAACT,IAAWU,GAAqBD,CAAgB;AAAA,QACzD,GAAEqB,IAA0BV,EAAgB;AAAA,MACrD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,IAAIkD,EAAU;AAAA,MACtB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,qBAAqB,CAAC;AAAA,QACpB,MAAMI,EAAyB;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC;AAAA,QACnB,KAAKA,EAAyB;AAAA,MACtC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,IAAIA,EAAyB;AAAA,MACrC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,MAAMJ,EAAU;AAAA,MACxB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,KAAKA,EAAU;AAAA,MACvB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,IAAIA,EAAU;AAAA,MACtB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQD,SAAS,CAAC;AAAA,QACR,SAASK,EAAW;AAAA,MAC5B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAcA,EAAW;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAcA,EAAW;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAcA,EAAW;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAcA,EAAW;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAcA,EAAW;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAcA,EAAW;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAcA,EAAW;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAcA,EAAW;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,QAAQC,EAAgB;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAYA,EAAgB;AAAA,MACpC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAYA,EAAgB;AAAA,MACpC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAYA,EAAgB;AAAA,MACpC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAYA,EAAgB;AAAA,MACpC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAYA,EAAgB;AAAA,MACpC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAYA,EAAgB;AAAA,MACpC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAYA,EAAgB;AAAA,MACpC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAYA,EAAgB;AAAA,MACpC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAYA,EAAgB;AAAA,MACpC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKvC,YAAY,CAAC;AAAA,QACX,YAAYA,EAAgB;AAAA,MACpC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKvC,gBAAgB,CAAC;AAAA,QACf,QAAQ,CAAC,GAAGC,EAAgB,GAAE,UAAU,MAAM;AAAA,MACtD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,QAAQ,CAAC,GAAGA,EAAgB,GAAE,UAAU,MAAM;AAAA,MACtD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,QAAQP,EAAU;AAAA,MAC1B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAYA,EAAU;AAAA,MAC9B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAYA,EAAU;AAAA,MAC9B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAYA,EAAU;AAAA,MAC9B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAYA,EAAU;AAAA,MAC9B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAYA,EAAU;AAAA,MAC9B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAYA,EAAU;AAAA,MAC9B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAYA,EAAU;AAAA,MAC9B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAYA,EAAU;AAAA,MAC9B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,QAAQA,EAAU;AAAA,MAC1B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,SAAS,CAAC,GAAGO,EAAgB,GAAE,QAAQ,QAAQ;AAAA,MACvD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,kBAAkB,CAAC9E,GAAUW,GAAqBD,CAAgB;AAAA,MAC1E,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,SAAS,CAAC,IAAIV,GAAUyB,IAA2BV,EAAiB;AAAA,MAC5E,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,SAASwD,EAAU;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQD,QAAQ,CAAC;AAAA,QACP,QAAQ;AAAA;AAAA,UAER;AAAA,UAAI;AAAA,UAAQxB;AAAA,UAAaf;AAAA,UAA2BT;AAAA,QAAiB;AAAA,MAC7E,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,QAAQgD,EAAU;AAAA,MAC1B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgB,CAAC,QAAQvB,GAAkBhB,IAA2BT,EAAiB;AAAA,MAC/F,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,sBAAsB,CAAC;AAAA,QACrB,gBAAgBgD,EAAU;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC;AAAA,QACT,MAAMM,EAAgB;AAAA,MAC9B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOD,gBAAgB,CAAC,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA,MAK7B,cAAc,CAAC;AAAA,QACb,MAAMN,EAAU;AAAA,MACxB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOD,iBAAiB,CAAC;AAAA,QAChB,eAAe,CAACvE,GAAUe,EAAiB;AAAA,MACnD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOD,qBAAqB,CAAC;AAAA,QACpB,eAAewD,EAAU;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,cAAcM,EAAgB;AAAA,MACtC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC;AAAA,QACnB,cAAcN,EAAU;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,eAAe,CAAC,QAAQtB,GAAiBjB,IAA2BT,EAAiB;AAAA,MAC7F,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,qBAAqB,CAAC;AAAA,QACpB,eAAegD,EAAU;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAACvE,GAAUW,GAAqBD,CAAgB;AAAA,MACjE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAAC,GAAGqE,EAAgB,GAAE,eAAe,cAAc;AAAA,MACxE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAYA,EAAc;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAAC,UAAU,WAAW,WAAW,QAAQ,UAAU,MAAM;AAAA,MACvE,GAAE,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,MAKjB,kBAAkB,CAAC;AAAA,QACjB,MAAM,CAAC,OAAO,YAAY,aAAa,SAAS;AAAA,MACxD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,yBAAyB,CAAC;AAAA,QACxB,eAAe,CAAC/E,CAAQ;AAAA,MAChC,CAAO;AAAA,MACD,8BAA8B,CAAC;AAAA,QAC7B,oBAAoBgF,EAAsB;AAAA,MAClD,CAAO;AAAA,MACD,4BAA4B,CAAC;AAAA,QAC3B,kBAAkBA,EAAsB;AAAA,MAChD,CAAO;AAAA,MACD,gCAAgC,CAAC;AAAA,QAC/B,oBAAoBT,EAAU;AAAA,MACtC,CAAO;AAAA,MACD,8BAA8B,CAAC;AAAA,QAC7B,kBAAkBA,EAAU;AAAA,MACpC,CAAO;AAAA,MACD,yBAAyB,CAAC;AAAA,QACxB,eAAeS,EAAsB;AAAA,MAC7C,CAAO;AAAA,MACD,uBAAuB,CAAC;AAAA,QACtB,aAAaA,EAAsB;AAAA,MAC3C,CAAO;AAAA,MACD,2BAA2B,CAAC;AAAA,QAC1B,eAAeT,EAAU;AAAA,MACjC,CAAO;AAAA,MACD,yBAAyB,CAAC;AAAA,QACxB,aAAaA,EAAU;AAAA,MAC/B,CAAO;AAAA,MACD,yBAAyB,CAAC;AAAA,QACxB,eAAeS,EAAsB;AAAA,MAC7C,CAAO;AAAA,MACD,uBAAuB,CAAC;AAAA,QACtB,aAAaA,EAAsB;AAAA,MAC3C,CAAO;AAAA,MACD,2BAA2B,CAAC;AAAA,QAC1B,eAAeT,EAAU;AAAA,MACjC,CAAO;AAAA,MACD,yBAAyB,CAAC;AAAA,QACxB,aAAaA,EAAU;AAAA,MAC/B,CAAO;AAAA,MACD,yBAAyB,CAAC;AAAA,QACxB,eAAeS,EAAsB;AAAA,MAC7C,CAAO;AAAA,MACD,uBAAuB,CAAC;AAAA,QACtB,aAAaA,EAAsB;AAAA,MAC3C,CAAO;AAAA,MACD,2BAA2B,CAAC;AAAA,QAC1B,eAAeT,EAAU;AAAA,MACjC,CAAO;AAAA,MACD,yBAAyB,CAAC;AAAA,QACxB,aAAaA,EAAU;AAAA,MAC/B,CAAO;AAAA,MACD,yBAAyB,CAAC;AAAA,QACxB,eAAeS,EAAsB;AAAA,MAC7C,CAAO;AAAA,MACD,uBAAuB,CAAC;AAAA,QACtB,aAAaA,EAAsB;AAAA,MAC3C,CAAO;AAAA,MACD,2BAA2B,CAAC;AAAA,QAC1B,eAAeT,EAAU;AAAA,MACjC,CAAO;AAAA,MACD,yBAAyB,CAAC;AAAA,QACxB,aAAaA,EAAU;AAAA,MAC/B,CAAO;AAAA,MACD,yBAAyB,CAAC;AAAA,QACxB,eAAeS,EAAsB;AAAA,MAC7C,CAAO;AAAA,MACD,uBAAuB,CAAC;AAAA,QACtB,aAAaA,EAAsB;AAAA,MAC3C,CAAO;AAAA,MACD,2BAA2B,CAAC;AAAA,QAC1B,eAAeT,EAAU;AAAA,MACjC,CAAO;AAAA,MACD,yBAAyB,CAAC;AAAA,QACxB,aAAaA,EAAU;AAAA,MAC/B,CAAO;AAAA,MACD,yBAAyB,CAAC;AAAA,QACxB,eAAeS,EAAsB;AAAA,MAC7C,CAAO;AAAA,MACD,uBAAuB,CAAC;AAAA,QACtB,aAAaA,EAAsB;AAAA,MAC3C,CAAO;AAAA,MACD,2BAA2B,CAAC;AAAA,QAC1B,eAAeT,EAAU;AAAA,MACjC,CAAO;AAAA,MACD,yBAAyB,CAAC;AAAA,QACxB,aAAaA,EAAU;AAAA,MAC/B,CAAO;AAAA,MACD,qBAAqB,CAAC;AAAA,QACpB,eAAe,CAAC5D,GAAqBD,CAAgB;AAAA,MAC7D,CAAO;AAAA,MACD,8BAA8B,CAAC;AAAA,QAC7B,oBAAoBsE,EAAsB;AAAA,MAClD,CAAO;AAAA,MACD,4BAA4B,CAAC;AAAA,QAC3B,kBAAkBA,EAAsB;AAAA,MAChD,CAAO;AAAA,MACD,gCAAgC,CAAC;AAAA,QAC/B,oBAAoBT,EAAU;AAAA,MACtC,CAAO;AAAA,MACD,8BAA8B,CAAC;AAAA,QAC7B,kBAAkBA,EAAU;AAAA,MACpC,CAAO;AAAA,MACD,2BAA2B,CAAC;AAAA,QAC1B,eAAe,CAAC,UAAU,SAAS;AAAA,MAC3C,CAAO;AAAA,MACD,0BAA0B,CAAC;AAAA,QACzB,eAAe,CAAC;AAAA,UACd,SAAS,CAAC,QAAQ,QAAQ;AAAA,UAC1B,UAAU,CAAC,QAAQ,QAAQ;AAAA,QAC5B,CAAA;AAAA,MACT,CAAO;AAAA,MACD,yBAAyB,CAAC;AAAA,QACxB,kBAAkBd,EAAa;AAAA,MACvC,CAAO;AAAA,MACD,wBAAwB,CAAC;AAAA,QACvB,cAAc,CAACzD,CAAQ;AAAA,MAC/B,CAAO;AAAA,MACD,6BAA6B,CAAC;AAAA,QAC5B,mBAAmBgF,EAAsB;AAAA,MACjD,CAAO;AAAA,MACD,2BAA2B,CAAC;AAAA,QAC1B,iBAAiBA,EAAsB;AAAA,MAC/C,CAAO;AAAA,MACD,+BAA+B,CAAC;AAAA,QAC9B,mBAAmBT,EAAU;AAAA,MACrC,CAAO;AAAA,MACD,6BAA6B,CAAC;AAAA,QAC5B,iBAAiBA,EAAU;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,MAAM,CAAC,SAAS,aAAa,OAAO;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,eAAe,CAAC,UAAU,WAAW,WAAW,QAAQ,UAAU,MAAM;AAAA,MAChF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,MAAMC,EAAe;AAAA,MAC7B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,MAAMC,EAAa;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,MAAMC,EAAW;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAAC,SAAS,WAAW;AAAA,MAC1C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,MAAM,CAAC,QAAQ/D,GAAqBD,CAAgB;AAAA,MAC5D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQD,QAAQ,CAAC;AAAA,QACP,QAAQ;AAAA;AAAA,UAER;AAAA,UAAI;AAAA,UAAQC;AAAA,UAAqBD;AAAA,QAAgB;AAAA,MACzD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,MAAM,CAAC;AAAA,QACL,MAAMuE,GAAS;AAAA,MACvB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAY,CAACjF,GAAUW,GAAqBD,CAAgB;AAAA,MACpE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC;AAAA,QACT,UAAU,CAACV,GAAUW,GAAqBD,CAAgB;AAAA,MAClE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,eAAe;AAAA;AAAA,UAEf;AAAA,UAAI;AAAA,UAAQwC;AAAA,UAAiBlB;AAAA,UAA2BT;AAAA,QAAiB;AAAA,MACjF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,qBAAqB,CAAC;AAAA,QACpB,eAAegD,EAAU;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAW,CAAC,IAAIvE,GAAUW,GAAqBD,CAAgB;AAAA,MACvE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACV,GAAUW,GAAqBD,CAAgB;AAAA,MACtE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAAC,IAAIV,GAAUW,GAAqBD,CAAgB;AAAA,MACpE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC;AAAA,QACT,UAAU,CAACV,GAAUW,GAAqBD,CAAgB;AAAA,MAClE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAAC,IAAIV,GAAUW,GAAqBD,CAAgB;AAAA,MACnE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,mBAAmB;AAAA;AAAA,UAEnB;AAAA,UAAI;AAAA,UAAQC;AAAA,UAAqBD;AAAA,QAAgB;AAAA,MACzD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,iBAAiBuE,GAAS;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,uBAAuB,CAAC;AAAA,QACtB,uBAAuB,CAACjF,GAAUW,GAAqBD,CAAgB;AAAA,MAC/E,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,qBAAqB,CAAC;AAAA,QACpB,qBAAqB,CAACV,GAAUW,GAAqBD,CAAgB;AAAA,MAC7E,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,sBAAsB,CAAC;AAAA,QACrB,sBAAsB,CAAC,IAAIV,GAAUW,GAAqBD,CAAgB;AAAA,MAClF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,uBAAuB,CAAC;AAAA,QACtB,uBAAuB,CAACV,GAAUW,GAAqBD,CAAgB;AAAA,MAC/E,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,mBAAmB,CAAC,IAAIV,GAAUW,GAAqBD,CAAgB;AAAA,MAC/E,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC;AAAA,QACnB,oBAAoB,CAACV,GAAUW,GAAqBD,CAAgB;AAAA,MAC5E,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,qBAAqB,CAAC;AAAA,QACpB,qBAAqB,CAACV,GAAUW,GAAqBD,CAAgB;AAAA,MAC7E,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,kBAAkB,CAAC,IAAIV,GAAUW,GAAqBD,CAAgB;AAAA,MAC9E,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQD,mBAAmB,CAAC;AAAA,QAClB,QAAQ,CAAC,YAAY,UAAU;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,kBAAkBmD,EAAuB;AAAA,MACjD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC;AAAA,QACnB,oBAAoBA,EAAuB;AAAA,MACnD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC;AAAA,QACnB,oBAAoBA,EAAuB;AAAA,MACnD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,OAAO,CAAC,QAAQ,OAAO;AAAA,MAC/B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAC,OAAO,QAAQ;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQD,YAAY,CAAC;AAAA,QACX,YAAY,CAAC,IAAI,OAAO,UAAU,WAAW,UAAU,aAAa,QAAQlD,GAAqBD,CAAgB;AAAA,MACzH,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,uBAAuB,CAAC;AAAA,QACtB,YAAY,CAAC,UAAU,UAAU;AAAA,MACzC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC;AAAA,QACT,UAAU,CAACV,GAAU,WAAWW,GAAqBD,CAAgB;AAAA,MAC7E,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,MAAM,CAAC;AAAA,QACL,MAAM,CAAC,UAAU,WAAW4C,GAAW3C,GAAqBD,CAAgB;AAAA,MACpF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAACV,GAAUW,GAAqBD,CAAgB;AAAA,MAC/D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAC,QAAQ6C,GAAc5C,GAAqBD,CAAgB;AAAA,MAC7E,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQD,UAAU,CAAC;AAAA,QACT,UAAU,CAAC,UAAU,SAAS;AAAA,MACtC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAAC0C,GAAkBzC,GAAqBD,CAAgB;AAAA,MAC7E,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,sBAAsB,CAAC;AAAA,QACrB,sBAAsBgD,EAA0B;AAAA,MACxD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQwB,GAAW;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAYA,GAAW;AAAA,MAC/B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAYA,GAAW;AAAA,MAC/B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAYA,GAAW;AAAA,MAC/B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAOC,EAAU;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAWA,EAAU;AAAA,MAC7B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAWA,EAAU;AAAA,MAC7B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAWA,EAAU;AAAA,MAC7B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,MAKvB,MAAM,CAAC;AAAA,QACL,MAAMC,GAAS;AAAA,MACvB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC;AAAA,QACT,UAAUA,GAAS;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC;AAAA,QACT,UAAUA,GAAS;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAW,CAACzE,GAAqBD,GAAkB,IAAI,QAAQ,OAAO,KAAK;AAAA,MACnF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC;AAAA,QACnB,QAAQgD,EAA0B;AAAA,MAC1C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,WAAW,CAAC,MAAM,MAAM;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAW2B,GAAc;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,eAAeA,GAAc;AAAA,MACrC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,eAAeA,GAAc;AAAA,MACrC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,eAAeA,GAAc;AAAA,MACrC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQnC,QAAQ,CAAC;AAAA,QACP,QAAQd,EAAU;AAAA,MAC1B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAY,CAAC,QAAQ,MAAM;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,OAAOA,EAAU;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,QAAQ,CAAC,UAAU,QAAQ,SAAS,cAAc,aAAa,YAAY;AAAA,MACnF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAAC,QAAQ,WAAW,WAAW,QAAQ,QAAQ,QAAQ,QAAQ,eAAe,QAAQ,gBAAgB,YAAY,QAAQ,aAAa,iBAAiB,SAAS,QAAQ,WAAW,QAAQ,YAAY,cAAc,cAAc,cAAc,YAAY,YAAY,YAAY,YAAY,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,eAAe,eAAe,WAAW,YAAY5D,GAAqBD,CAAgB;AAAA,MAC1d,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgB,CAAC,SAAS,SAAS;AAAA,MAC3C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,kBAAkB,CAAC,QAAQ,MAAM;AAAA,MACzC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAAC,QAAQ,IAAI,KAAK,GAAG;AAAA,MACrC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,QAAQ,CAAC,QAAQ,QAAQ;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAYmD,EAAuB;AAAA,MAC3C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAYA,EAAuB;AAAA,MAC3C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,MAAM,CAAC,SAAS,OAAO,UAAU,YAAY;AAAA,MACrD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,MAAM,CAAC,UAAU,QAAQ;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,MAAM,CAAC,QAAQ,KAAK,KAAK,MAAM;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,MAAM,CAAC,aAAa,WAAW;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAAC,QAAQ,QAAQ,cAAc;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,aAAa,CAAC,KAAK,QAAQ,OAAO;AAAA,MAC1C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,aAAa,CAAC,KAAK,MAAM,MAAM;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,MAK/B,QAAQ,CAAC;AAAA,QACP,QAAQ,CAAC,QAAQ,QAAQ,OAAO,MAAM;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,eAAe,CAAC,QAAQ,UAAU,YAAY,aAAalD,GAAqBD,CAAgB;AAAA,MACxG,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQD,MAAM,CAAC;AAAA,QACL,MAAM,CAAC,QAAQ,GAAG6D,EAAY,CAAA;AAAA,MACtC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,QAAQ,CAACvE,GAAUyB,IAA2BV,IAAmBE,EAAiB;AAAA,MAC1F,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAAC,QAAQ,GAAGsD,EAAY,CAAA;AAAA,MACxC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQD,uBAAuB,CAAC;AAAA,QACtB,uBAAuB,CAAC,QAAQ,MAAM;AAAA,MACvC,CAAA;AAAA,IACF;AAAA,IACD,wBAAwB;AAAA,MACtB,UAAU,CAAC,cAAc,YAAY;AAAA,MACrC,YAAY,CAAC,gBAAgB,cAAc;AAAA,MAC3C,OAAO,CAAC,WAAW,WAAW,SAAS,OAAO,OAAO,SAAS,UAAU,MAAM;AAAA,MAC9E,WAAW,CAAC,SAAS,MAAM;AAAA,MAC3B,WAAW,CAAC,OAAO,QAAQ;AAAA,MAC3B,MAAM,CAAC,SAAS,QAAQ,QAAQ;AAAA,MAChC,KAAK,CAAC,SAAS,OAAO;AAAA,MACtB,GAAG,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI;AAAA,MAClD,IAAI,CAAC,MAAM,IAAI;AAAA,MACf,IAAI,CAAC,MAAM,IAAI;AAAA,MACf,GAAG,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI;AAAA,MAClD,IAAI,CAAC,MAAM,IAAI;AAAA,MACf,IAAI,CAAC,MAAM,IAAI;AAAA,MACf,MAAM,CAAC,KAAK,GAAG;AAAA,MACf,aAAa,CAAC,SAAS;AAAA,MACvB,cAAc,CAAC,eAAe,oBAAoB,cAAc,eAAe,cAAc;AAAA,MAC7F,eAAe,CAAC,YAAY;AAAA,MAC5B,oBAAoB,CAAC,YAAY;AAAA,MACjC,cAAc,CAAC,YAAY;AAAA,MAC3B,eAAe,CAAC,YAAY;AAAA,MAC5B,gBAAgB,CAAC,YAAY;AAAA,MAC7B,cAAc,CAAC,WAAW,UAAU;AAAA,MACpC,SAAS,CAAC,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,YAAY;AAAA,MACtM,aAAa,CAAC,cAAc,YAAY;AAAA,MACxC,aAAa,CAAC,cAAc,YAAY;AAAA,MACxC,aAAa,CAAC,cAAc,YAAY;AAAA,MACxC,aAAa,CAAC,cAAc,YAAY;AAAA,MACxC,aAAa,CAAC,cAAc,YAAY;AAAA,MACxC,aAAa,CAAC,cAAc,YAAY;AAAA,MACxC,kBAAkB,CAAC,oBAAoB,kBAAkB;AAAA,MACzD,YAAY,CAAC,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,YAAY;AAAA,MAC3H,cAAc,CAAC,cAAc,YAAY;AAAA,MACzC,cAAc,CAAC,cAAc,YAAY;AAAA,MACzC,gBAAgB,CAAC,kBAAkB,kBAAkB,kBAAkB,kBAAkB,kBAAkB,kBAAkB,kBAAkB,gBAAgB;AAAA,MAC/J,kBAAkB,CAAC,kBAAkB,gBAAgB;AAAA,MACrD,kBAAkB,CAAC,kBAAkB,gBAAgB;AAAA,MACrD,WAAW,CAAC,eAAe,eAAe,gBAAgB;AAAA,MAC1D,kBAAkB,CAAC,aAAa,eAAe,eAAe,aAAa;AAAA,MAC3E,YAAY,CAAC,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,WAAW;AAAA,MACnH,aAAa,CAAC,aAAa,WAAW;AAAA,MACtC,aAAa,CAAC,aAAa,WAAW;AAAA,MACtC,YAAY,CAAC,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,WAAW;AAAA,MACnH,aAAa,CAAC,aAAa,WAAW;AAAA,MACtC,aAAa,CAAC,aAAa,WAAW;AAAA,MACtC,OAAO,CAAC,WAAW,WAAW,UAAU;AAAA,MACxC,WAAW,CAAC,OAAO;AAAA,MACnB,WAAW,CAAC,OAAO;AAAA,MACnB,YAAY,CAAC,OAAO;AAAA,IACrB;AAAA,IACD,gCAAgC;AAAA,MAC9B,aAAa,CAAC,SAAS;AAAA,IACxB;AAAA,IACD,yBAAyB,CAAC,KAAK,MAAM,SAAS,YAAY,UAAU,mBAAmB,QAAQ,gBAAgB,cAAc,UAAU,eAAe,WAAW;AAAA,EAClK;AACH,GAsDMe,KAAuB,gBAAA5G,GAAoB0D,EAAgB;ACr9F1D,SAASzT,MAAM4W,GAAsB;AACnC,SAAAD,GAAQjM,GAAKkM,CAAM,CAAC;AAC7B;ACDA,SAASC,GAAM,EAAE,WAAA1lB,GAAW,GAAGoF,KAAwC;AAEnE,SAAA,gBAAA9E;AAAA,IAAC;AAAA,IAAA;AAAA,MACD,aAAU;AAAA,MACV,WAAU;AAAA,MAEV,UAAA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,aAAU;AAAA,UACV,WAAWuO,GAAG,yBAAyB7O,CAAS;AAAA,UAC/C,GAAGoF;AAAA,QAAA;AAAA,MAAA;AAAA,IACN;AAAA,EACF;AAEF;AAEA,SAASugB,GAAY,EAAE,WAAA3lB,GAAW,GAAGoF,KAAwC;AAEzE,SAAA,gBAAA9E;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWuO,GAAG,mBAAmB7O,CAAS;AAAA,MACzC,GAAGoF;AAAA,IAAA;AAAA,EACN;AAEJ;AAEA,SAASwgB,GAAU,EAAE,WAAA5lB,GAAW,GAAGoF,KAAwC;AAEvE,SAAA,gBAAA9E;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWuO,GAAG,8BAA8B7O,CAAS;AAAA,MACpD,GAAGoF;AAAA,IAAA;AAAA,EACN;AAEJ;AAeA,SAASygB,GAAS,EAAE,WAAA7lB,GAAW,GAAGoF,KAAqC;AAEnE,SAAA,gBAAA9E;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWuO;AAAA,QACT;AAAA,QACA7O;AAAA,MACF;AAAA,MACC,GAAGoF;AAAA,IAAA;AAAA,EACN;AAEJ;AAEA,SAAS0gB,GAAU,EAAE,WAAA9lB,GAAW,GAAGoF,KAAqC;AAEpE,SAAA,gBAAA9E;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWuO;AAAA,QACT;AAAA,QACA7O;AAAA,MACF;AAAA,MACC,GAAGoF;AAAA,IAAA;AAAA,EACN;AAEJ;AAEA,SAAS2gB,GAAU,EAAE,WAAA/lB,GAAW,GAAGoF,KAAqC;AAEpE,SAAA,gBAAA9E;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWuO,GAAG,sBAAsB7O,CAAS;AAAA,MAC5C,GAAGoF;AAAA,IAAA;AAAA,EACN;AAEJ;AAEA,SAAS4gB,GAAa;AAAA,EACpB,WAAAhmB;AAAA,EACA,GAAGoF;AACL,GAAoC;AAEhC,SAAA,gBAAA9E;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWuO,GAAG,sCAAsC7O,CAAS;AAAA,MAC5D,GAAGoF;AAAA,IAAA;AAAA,EACN;AAEJ;ACpFa,MAAAsgB,KAA4D,CACvEtgB,MAGE,gBAAA9E;AAAA,EAAC2lB;AAAAA,EAAA;AAAA,IACE,GAAG7gB;AAAA,IACJ,WAAWhG,EAAWgG,EAAM,SAAS;AAAA,EAAA;AACvC,GAISwgB,KAET,CAACxgB,MAED,gBAAA9E;AAAA,EAAC4lB;AAAAA,EAAA;AAAA,IACE,GAAG9gB;AAAA,IACJ,WAAWhG,EAAWgG,EAAM,WAAW,mBAAmB;AAAA,EAAA;AAC5D,GAIS4gB,KAET,CAAC5gB,MAED,gBAAA9E;AAAA,EAAC6lB;AAAAA,EAAA;AAAA,IACE,GAAG/gB;AAAA,IACJ,WAAWhG,EAAWgG,EAAM,WAAW,sBAAsB;AAAA,EAAA;AAC/D,GASS2gB,KAA4C,CAAC;AAAA,EACxD,SAAAK;AAAA,EACA,OAAA/M;AAAA,EACA,WAAArZ;AAAA,EACA,GAAGsE;AACL,MAAM;AACJ,QAAM+hB,IAAahN,IAAQ,SAASA,CAAK,KAAK;AAG5C,SAAA,gBAAA/Y;AAAA,IAACgmB;AAAAA,IAAA;AAAA,MACE,GAAGhiB;AAAA,MACJ,SAAA8hB;AAAA,MACA,WAAWhnB,EAAWY,GAAWqmB,CAAU;AAAA,IAAA;AAAA,EAC7C;AAEJ;AACAN,GAAU,cAAc;AAEX,MAAAJ,KAET,CAACvgB,MAED,gBAAA9E;AAAA,EAACimB;AAAAA,EAAA;AAAA,IACE,GAAGnhB;AAAA,IACJ,WAAWhG,EAAWgG,EAAM,WAAW,mBAAmB;AAAA,EAAA;AAC5D,GASS0gB,KAA4C,CAAC;AAAA,EACxD,SAAA/lB,IAAU;AAAA,EACV,WAAAC;AAAA,EACA,OAAAyL;AAAA,EACA,UAAAxL;AAAA,EACA,GAAGmF;AACL,MAAM;AACJ,QAAMohB,IAAcpnB;AAAA,IAClBgB,GAAO;AAAA,IACPJ;AAAA,IACA;AAAA,MACE,CAACI,GAAO,OAAO,GAAGL,MAAY;AAAA,MAC9B,CAACK,GAAO,SAAS,GAAGL,MAAY;AAAA,IAClC;AAAA,IACA;AAAA,EACF;AAGE,SAAA,gBAAAO;AAAA,IAACmmB;AAAAA,IAAA;AAAA,MACE,GAAGrhB;AAAA,MACJ,WAAWohB;AAAA,MACX,OAAA/a;AAAA,MAEC,UAAAxL;AAAA,IAAA;AAAA,EACH;AAEJ,GAEa4lB,KAAkE,CAC7EzgB,MAGE,gBAAA9E;AAAA,EAAComB;AAAAA,EAAA;AAAA,IACE,GAAGthB;AAAA,IACJ,WAAWhG;AAAA,MACTgG,EAAM;AAAA,MACN;AAAA,MACA;AAAA,MACAhF,GAAO;AAAA,IAAA;AAAA,EACT;AACF;;;;;;;;;;;;;;GC7GSumB,KAAU,CAAC;AAAA,EACtB,QAAQC;AAAA,EACR,SAAAC;AAAA,EACA,YAAAC,IAAa;AAAA,EACb,mBAAAC,IAAoB;AAAA,EACpB,gBAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,UAAAhnB;AAAA,EACA,WAAAD;AAAA,EACA,kBAAAknB;AACF,MAAoB;AAClB,QAAM,CAAC1f,GAAQ2f,CAAS,IAAIhkB,GAAS,EAAK,GACpC,CAACikB,GAAkBC,CAAmB,IAAIlkB,GAAS4jB,CAAiB,GACpEO,IAAergB,GAAsB,IAAI,GACzCsgB,IAAUtgB,GAAO,EAAK,GACtBugB,IAAavgB,GAA+B,IAAI,GAEhDwgB,IAAWb,MAAqB,SAAYA,IAAmBpf,GAC/DkgB,IAAkBT,MAAY,WAAWA,MAAY,QACrDU,IAAkBV,MAAY,WAAWA,MAAY,QAErDW,IAAYC,GAAM,GAElBC,IAAgB1nB,GAAO,oBAAoBgnB,CAAgB,EAAE,KAAK,IAElEW,IAAmB3oB,EAAWgB,GAAO,gBAAgBJ,CAAS,GAC9DgoB,IAAe5oB;AAAA,IACnBgB,GAAO;AAAA,IACP0nB;AAAA,IACAZ;AAAA,EACF;AA0DE,SAAA,gBAAAljB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAKwjB;AAAA,MACL,WAAWO;AAAA,MACX,cAtDqB,MAAM;AACzB,QAAA,CAACL,KAAmBd,MAAqB,WAEzCU,EAAa,WAAsB,aAAAA,EAAa,OAAO,GAE9CA,EAAA,UAAU,OAAO,WAAW,MAAM;AACzC,cAAAP,MAAsB,eAAeS,EAAW,SAAS;AACrD,kBAAAS,IAAOT,EAAW,QAAQ,sBAAsB,GAChDU,IAAaD,EAAK,KAClBE,KAAa,OAAO,cAAcF,EAAK;AAEzB,YAAAZ,EAAAc,MAAcD,IAAa,UAAU,OAAO;AAAA,UAAA;AAEhE,YAAAb,EAAoBN,CAAiB;AAGvC,UAAAI,EAAU,EAAI;AAAA,WACbL,CAAU;AAAA,MACf;AAAA,MAqCI,cAnCqB,MAAM;AACzB,QAAA,CAACY,KAAmBd,MAAqB,WAEzCU,EAAa,WAAsB,aAAAA,EAAa,OAAO,GAE9CA,EAAA,UAAU,OAAO,WAAW,MAAM;AACzC,UAACC,EAAQ,WACXJ,EAAU,EAAK;AAAA,WAEhB,EAAE;AAAA,MACP;AAAA,MA0BI,SAxBgB,MAAM;AACpB,YAAA,GAACQ,KAAmBf,MAAqB,SAIzC;AAAA,cAFIW,EAAA,UAAU,CAACA,EAAQ,SAEvBR,MAAsB,eAAeS,EAAW,SAAS;AACrD,kBAAAS,IAAOT,EAAW,QAAQ,sBAAsB,GAChDU,IAAaD,EAAK,KAClBE,KAAa,OAAO,cAAcF,EAAK;AAEzB,YAAAZ,EAAAc,MAAcD,IAAa,UAAU,OAAO;AAAA,UAAA;AAEhE,YAAAb,EAAoBN,CAAiB;AAGvC,UAAAI,EAAUI,EAAQ,OAAO;AAAA;AAAA,MAC3B;AAAA,MASI,oBAAkBE,IAAWG,IAAY;AAAA,MACzC,UAAU;AAAA,MACV,OAAO,EAAE,SAAS,gBAAgB,UAAU,WAAW;AAAA,MAEtD,UAAA;AAAA,QAAA3nB;AAAA,QAEAwnB,KACC,gBAAAnnB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAIsnB;AAAA,YACJ,MAAK;AAAA,YACL,WAAWI;AAAA,YACX,OAzEqB;AAAA,cAC3B,QAAQhB,KAAkB;AAAA,cAC1B,UAAU;AAAA,YACZ;AAAA,YAwES,UAAAH;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAEJ;AAEJ;;;;;;;GC/GauB,KAAS,CAAC;AAAA,EACrB,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,aAAAC,IAAc;AAChB,MAAmB;;AACjB,2BACG,OACC,EAAA,UAAA;AAAA,IAAA,gBAAAloB,EAAC,SAAI,WAAWF,GAAO,QACpB,UAASioB,EAAA,IAAI,CAACI,MACb,gBAAAzkB;AAAA,MAAC;AAAA,MAAA;AAAA,QAEC,WAAW5E;AAAA,UACTgB,GAAO;AAAA,UACPooB,KAAepoB,GAAO;AAAA,UACtBkoB,MAAcG,EAAQ,MAAMroB,GAAO;AAAA,QACrC;AAAA,QACA,SAAS,MAAMmoB,EAAYE,EAAQ,EAAE;AAAA,QAErC,UAAA;AAAA,UAAA,gBAAAnoB;AAAA,YAACR;AAAA,YAAA;AAAA,cACC,SAAS;AAAA,cACT,WAAWM,GAAO;AAAA,cAEjB,UAAQqoB,EAAA;AAAA,YAAA;AAAA,UACX;AAAA,UACA,gBAAAnoB;AAAA,YAACR;AAAA,YAAA;AAAA,cACC,SAAS;AAAA,cACT,WAAWM,GAAO;AAAA,cAEjB,UAAQqoB,EAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QACX;AAAA,MAAA;AAAA,MAnBKA,EAAQ;AAAA,IAqBhB,CAAA,GACH;AAAA,MACC3gB,IAAAugB,EAAS,KAAK,CAACI,MAAYA,EAAQ,OAAOH,CAAS,MAAnD,gBAAAxgB,EAAsD,cACrD,gBAAAxH,EAACR,IAAW,EAAA,SAAQ,WAAU,UAAS,YAAA,CAAA;AAAA,EAAA,GAE3C;AAEJ,GCvCa4oB,KAAWngB,EAAM;AAAA,EAC5B,CACE;AAAA,IACE,OAAAxE;AAAA,IACA,OAAA8C;AAAA,IACA,YAAAC;AAAA,IACA,QAAAiE;AAAA,IACA,SAAAC;AAAA,IACA,UAAA3G;AAAA,IACA,UAAAmE;AAAA,IACA,WAAAxI;AAAA,IACA,UAAAgH;AAAA,IACA,OAAArH;AAAA,IACA,cAAA6V;AAAA,IACA,MAAAmT,IAAO;AAAA,IACP,GAAGrkB;AAAA,KAELsB,MACG;AACH,UAAMgjB,IAAejpB,MAAU,QACzB,CAACkpB,GAAeC,CAAgB,IAAI3lB;AAAA,OACxCqS,KAAA,gBAAAA,EAAc,eAAc;AAAA,IAC9B;AAEA,IAAAlS,GAAU,MAAM;AACV,MAAA,CAACslB,KAAgBpT,MAAiB,UACnBsT,EAAAtT,EAAa,UAAU;AAAA,IAC1C,GACC,CAACA,CAAY,CAAC;AAEX,UAAAuT,IAAeH,IAAejpB,IAAQkpB,GAEtC1d,IAAe,CAAC3K,MAA8C;AAC5D,YAAAwoB,IAAMxoB,EAAE,OAAO;AAEjB,MAACooB,KAAcE,EAAiBE,CAAG,GAEvChiB,KAAA,QAAAA,EAAWxG;AAAA,IACb;AAGE,WAAA,gBAAAF;AAAA,MAACwK;AAAA,MAAA;AAAA,QACC,OAAA/G;AAAA,QACA,OAAA8C;AAAA,QACA,YAAAC;AAAA,QACA,QAAAiE;AAAA,QACA,SAAAC;AAAA,QACA,UAAA3G;AAAA,QACA,UAAAmE;AAAA,QAEA,UAAA,gBAAAlI;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAAsF;AAAA,YACA,WAAWxG,EAAWgB,GAAO,OAAOJ,CAAS;AAAA,YAC7C,UAAAqE;AAAA,YACA,UAAAmE;AAAA,YACA,OAAOugB;AAAA,YACP,MAAAJ;AAAA,YACA,UAAUxd;AAAA,YACT,GAAG7G;AAAA,UAAA;AAAA,QAAA;AAAA,MACN;AAAA,IACF;AAAA,EAAA;AAGN;AAEAokB,GAAS,cAAc;","x_google_ignoreList":[0,2,6,7,8,9,10,11,12,13,14,15,16,29,39,40]}
1
+ {"version":3,"file":"stp-ui-kit.es.js","sources":["../node_modules/classnames/index.js","../src/components/Typography/Typography.tsx","../node_modules/dayjs/dayjs.min.js","../src/components/Banner/utils/utils.ts","../src/components/Banner/Banner.tsx","../src/components/Button/Button.tsx","../node_modules/lucide-react/dist/esm/shared/src/utils.js","../node_modules/lucide-react/dist/esm/defaultAttributes.js","../node_modules/lucide-react/dist/esm/Icon.js","../node_modules/lucide-react/dist/esm/createLucideIcon.js","../node_modules/lucide-react/dist/esm/icons/check-check.js","../node_modules/lucide-react/dist/esm/icons/chevron-down.js","../node_modules/lucide-react/dist/esm/icons/chevron-up.js","../node_modules/lucide-react/dist/esm/icons/circle-alert.js","../node_modules/lucide-react/dist/esm/icons/octagon-alert.js","../node_modules/lucide-react/dist/esm/icons/triangle-alert.js","../node_modules/lucide-react/dist/esm/icons/x.js","../src/components/InlineError/InlineError.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/NavigationItem/NavigationItem.tsx","../src/components/Collapse/Collapse.tsx","../src/components/CourseCollapse/CourseCollapse.tsx","../src/components/Dropdown/Dropdown.tsx","../src/components/Empty/Empty.tsx","../src/components/FormItem/FormItemContext.tsx","../src/components/FormItem/FormItem.tsx","../src/components/IconButton/IconButton.tsx","../src/components/Input/BaseInputWrapper.tsx","../src/components/Input/Input.tsx","../node_modules/sonner/dist/index.mjs","../src/components/Message/CustomToaster.tsx","../src/components/Message/Message.tsx","../src/components/Modal/Modal.tsx","../src/components/Modal/ModalApi.tsx","../src/components/PageHeader/PageHeader.tsx","../src/components/ProgressLine/ProgressLine.tsx","../src/components/RadioButton/RadioButton.tsx","../src/components/SectionHeader/SectionHeader.tsx","../src/components/Table/Cell.tsx","../node_modules/clsx/dist/clsx.mjs","../node_modules/tailwind-merge/dist/bundle-mjs.mjs","../src/lib/utils.ts","../src/components/ui/table.tsx","../src/components/Table/Table.tsx","../src/components/Tooltip/Tooltip.tsx","../src/components/TopBar/TopBar.tsx","../src/components/Input/TextArea.tsx"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import classNames from \"classnames\";\r\nimport { ReactNode } from \"react\";\r\nimport styles from \"./Typography.module.scss\";\r\n\r\nexport interface TypographyProps {\r\n variant?:\r\n | \"heading-xl\"\r\n | \"heading-lg\"\r\n | \"heading-md\"\r\n | \"heading-sm\"\r\n | \"heading-xs\"\r\n | \"body-lg\"\r\n | \"body-md\"\r\n | \"body-sm\";\r\n className?: string;\r\n children: ReactNode;\r\n weight?: \"regular\" | \"semibold\" | \"bold\" | \"medium\";\r\n}\r\n\r\nexport const Typography = ({\r\n variant = \"body-md\",\r\n className = \"\",\r\n children,\r\n weight,\r\n}: TypographyProps) => {\r\n const variantClass = styles[variant] || \"\";\r\n const weightClass = styles[weight || \"\"] || \"\";\r\n\r\n return (\r\n <span\r\n className={classNames(\r\n styles.typography,\r\n variantClass,\r\n weightClass,\r\n className,\r\n )}\r\n >\r\n {children}\r\n </span>\r\n );\r\n};\r\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","import dayjs from \"dayjs\";\r\n\r\nexport const formatDeadline = (date: string | Date): string => {\r\n // Use dayjs to parse the input date\r\n const day = dayjs(date);\r\n\r\n // Get the day suffix (e.g., \"st\", \"nd\", \"rd\", \"th\")\r\n const dayOfMonth = day.date();\r\n const suffix =\r\n dayOfMonth === 1 || dayOfMonth === 21 || dayOfMonth === 31\r\n ? \"st\"\r\n : dayOfMonth === 2 || dayOfMonth === 22\r\n ? \"nd\"\r\n : dayOfMonth === 3 || dayOfMonth === 23\r\n ? \"rd\"\r\n : \"th\";\r\n\r\n // Format the date in the desired format \"May 18th, 13:00\"\r\n const formattedDate = day.format(\"MMMM D, HH:mm\");\r\n\r\n // Replace the day with the day + suffix (convert dayOfMonth to string)\r\n const formattedDeadline = formattedDate.replace(dayOfMonth.toString(), `${dayOfMonth}${suffix}`);\r\n\r\n return `${formattedDeadline} (UTC +5)`;\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Typography } from \"../Typography/Typography\";\r\nimport styles from \"./Banner.module.scss\";\r\nimport { formatDeadline } from \"./utils/utils\";\r\n\r\ninterface BannerProps {\r\n color: string;\r\n title: string;\r\n bgPattern: string;\r\n bgPatternFinished?: string;\r\n buttonColor: string;\r\n deadline: string;\r\n onClick: () => void;\r\n}\r\n\r\nexport const Banner = ({\r\n color,\r\n title,\r\n bgPattern,\r\n deadline,\r\n bgPatternFinished,\r\n buttonColor,\r\n onClick,\r\n}: BannerProps) => {\r\n // const { t } = useTranslation(\"common\");\r\n const [isFinished, setIsFinished] = useState(false);\r\n const [timeLeft, setTimeLeft] = useState({\r\n days: 0,\r\n hours: 0,\r\n minutes: 0,\r\n seconds: 0,\r\n });\r\n\r\n useEffect(() => {\r\n const deadlineDate = new Date(deadline);\r\n const calculateTimeUnits = (milliseconds: number) => ({\r\n days: Math.floor(milliseconds / (1000 * 60 * 60 * 24)),\r\n hours: Math.floor((milliseconds / (1000 * 60 * 60)) % 24),\r\n minutes: Math.floor((milliseconds / (1000 * 60)) % 60),\r\n seconds: Math.floor((milliseconds / 1000) % 60),\r\n });\r\n\r\n const updateCountdown = () => {\r\n const now = Date.now();\r\n const remaining = deadlineDate.getTime() - now;\r\n\r\n if (remaining <= 0) {\r\n setIsFinished(true);\r\n setTimeLeft({ days: 0, hours: 0, minutes: 0, seconds: 0 });\r\n } else {\r\n setTimeLeft(calculateTimeUnits(remaining));\r\n }\r\n };\r\n\r\n updateCountdown();\r\n const interval = setInterval(updateCountdown, 1000);\r\n return () => clearInterval(interval);\r\n }, [deadline]);\r\n\r\n const renderTimerCell = (value: number, label: string) => (\r\n <div className={styles.timerCell}>\r\n <Typography\r\n variant='heading-lg'\r\n className={styles.timerCount}\r\n >\r\n {value}\r\n </Typography>\r\n {label}\r\n </div>\r\n );\r\n\r\n return (\r\n <div\r\n className={styles.container}\r\n style={{ backgroundColor: color }}\r\n >\r\n <div className={styles.content}>\r\n <div className={styles.title}>\r\n <Typography variant='heading-md'>{title}</Typography>\r\n <Typography variant='body-md'>{formatDeadline(deadline)}</Typography>\r\n </div>\r\n <div className={styles.timer}>\r\n {renderTimerCell(timeLeft.days, \"Days\")}\r\n {renderTimerCell(timeLeft.hours, \"Hours\")}\r\n {renderTimerCell(timeLeft.minutes, \"Minutes\")}\r\n {renderTimerCell(timeLeft.seconds, \"Seconds\")}\r\n </div>\r\n </div>\r\n <div\r\n className={styles.pattern}\r\n style={\r\n {\r\n \"--pattern-color\": color,\r\n \"--pattern-url\": `url(${\r\n isFinished ? (bgPatternFinished ?? bgPattern) : bgPattern\r\n })`,\r\n } as React.CSSProperties\r\n }\r\n >\r\n {isFinished && (\r\n <button\r\n className={styles.button}\r\n style={{ backgroundColor: buttonColor }}\r\n onClick={onClick}\r\n >\r\n <Typography variant='heading-md'>{\"Start\"}</Typography>\r\n </button>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport { ButtonHTMLAttributes, ReactNode } from \"react\";\r\nimport styles from \"./Button.module.scss\";\r\n\r\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\r\n state?: \"default\" | \"primary\" | \"tertiary\" | \"plain\";\r\n size?: \"small\" | \"medium\" | \"large\";\r\n selected?: boolean;\r\n children: ReactNode;\r\n className?: string;\r\n onClick?: () => void;\r\n}\r\n\r\nexport const Button = ({\r\n state = \"default\",\r\n size = \"medium\",\r\n selected = false,\r\n disabled = false,\r\n children,\r\n onClick = () => {},\r\n className = \"\",\r\n ...rest\r\n}: ButtonProps) => {\r\n const buttonClass = classNames(\r\n styles.btn,\r\n styles[state],\r\n styles[size],\r\n {\r\n [styles[`${state}-selected`]]: selected,\r\n },\r\n className,\r\n );\r\n\r\n return (\r\n <button\r\n className={buttonClass}\r\n onClick={onClick}\r\n disabled={disabled}\r\n {...rest}\r\n >\r\n {children}\r\n </button>\r\n );\r\n};\r\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst toCamelCase = (string) => string.replace(\n /^([A-Z])|[\\s-_]+(\\w)/g,\n (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()\n);\nconst toPascalCase = (string) => {\n const camelCase = toCamelCase(string);\n return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);\n};\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n}).join(\" \").trim();\nconst hasA11yProp = (props) => {\n for (const prop in props) {\n if (prop.startsWith(\"aria-\") || prop === \"role\" || prop === \"title\") {\n return true;\n }\n }\n};\n\nexport { hasA11yProp, mergeClasses, toCamelCase, toKebabCase, toPascalCase };\n//# sourceMappingURL=utils.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { mergeClasses, hasA11yProp } from './shared/src/utils.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...!children && !hasA11yProp(rest) && { \"aria-hidden\": \"true\" },\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n )\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses, toKebabCase, toPascalCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className\n ),\n ...props\n })\n );\n Component.displayName = toPascalCase(iconName);\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M18 6 7 17l-5-5\", key: \"116fxf\" }],\n [\"path\", { d: \"m22 10-7.5 7.5L13 16\", key: \"ke71qq\" }]\n];\nconst CheckCheck = createLucideIcon(\"check-check\", __iconNode);\n\nexport { __iconNode, CheckCheck as default };\n//# sourceMappingURL=check-check.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"m6 9 6 6 6-6\", key: \"qrunsl\" }]];\nconst ChevronDown = createLucideIcon(\"chevron-down\", __iconNode);\n\nexport { __iconNode, ChevronDown as default };\n//# sourceMappingURL=chevron-down.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"m18 15-6-6-6 6\", key: \"153udz\" }]];\nconst ChevronUp = createLucideIcon(\"chevron-up\", __iconNode);\n\nexport { __iconNode, ChevronUp as default };\n//# sourceMappingURL=chevron-up.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"8\", y2: \"12\", key: \"1pkeuh\" }],\n [\"line\", { x1: \"12\", x2: \"12.01\", y1: \"16\", y2: \"16\", key: \"4dfq90\" }]\n];\nconst CircleAlert = createLucideIcon(\"circle-alert\", __iconNode);\n\nexport { __iconNode, CircleAlert as default };\n//# sourceMappingURL=circle-alert.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 16h.01\", key: \"1drbdi\" }],\n [\"path\", { d: \"M12 8v4\", key: \"1got3b\" }],\n [\n \"path\",\n {\n d: \"M15.312 2a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586l-4.688-4.688A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2z\",\n key: \"1fd625\"\n }\n ]\n];\nconst OctagonAlert = createLucideIcon(\"octagon-alert\", __iconNode);\n\nexport { __iconNode, OctagonAlert as default };\n//# sourceMappingURL=octagon-alert.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\",\n key: \"wmoenq\"\n }\n ],\n [\"path\", { d: \"M12 9v4\", key: \"juzpu7\" }],\n [\"path\", { d: \"M12 17h.01\", key: \"p32p05\" }]\n];\nconst TriangleAlert = createLucideIcon(\"triangle-alert\", __iconNode);\n\nexport { __iconNode, TriangleAlert as default };\n//# sourceMappingURL=triangle-alert.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\n [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\n];\nconst X = createLucideIcon(\"x\", __iconNode);\n\nexport { __iconNode, X as default };\n//# sourceMappingURL=x.js.map\n","import classNames from \"classnames\";\r\nimport { CircleAlert } from \"lucide-react\";\r\nimport { PropsWithChildren } from \"react\";\r\nimport styles from \"./InlineError.module.scss\";\r\n\r\nexport const InlineError = ({ children }: PropsWithChildren) => {\r\n return (\r\n <div className={classNames(styles.message)}>\r\n <CircleAlert\r\n className={styles.critical}\r\n size={20}\r\n />\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport React, { useEffect, useRef } from \"react\";\r\nimport { InlineError } from \"../InlineError/InlineError\";\r\nimport styles from \"./Checkbox.module.scss\";\r\n\r\ninterface CheckboxProps extends React.InputHTMLAttributes<HTMLInputElement> {\r\n label?: string;\r\n error?: string;\r\n helperText?: string;\r\n indeterminate?: boolean;\r\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\r\n}\r\n\r\nexport const Checkbox: React.FC<CheckboxProps> = ({\r\n label,\r\n error,\r\n helperText,\r\n disabled,\r\n className,\r\n indeterminate,\r\n onChange,\r\n ...rest\r\n}) => {\r\n const ref = useRef<HTMLInputElement>(null);\r\n\r\n useEffect(() => {\r\n if (ref.current) {\r\n ref.current.indeterminate = !!indeterminate;\r\n }\r\n }, [indeterminate]);\r\n\r\n const handleLabelClick = () => {\r\n if (ref.current && !disabled) {\r\n const event = {\r\n target: ref.current,\r\n } as React.ChangeEvent<HTMLInputElement>;\r\n onChange?.(event);\r\n }\r\n };\r\n\r\n return (\r\n <div className={styles.formItem}>\r\n <input\r\n ref={ref}\r\n type='checkbox'\r\n className={classNames(className, styles.checkbox, {\r\n [styles.error]: !!error,\r\n })}\r\n disabled={disabled}\r\n onChange={onChange}\r\n {...rest}\r\n />\r\n <div className={styles.labelContainer}>\r\n <div\r\n className={classNames(styles.label, {\r\n [styles.disabled]: disabled,\r\n })}\r\n onClick={handleLabelClick}\r\n >\r\n {label}\r\n </div>\r\n {error && (\r\n <div\r\n className={classNames(styles.message, {\r\n [styles.error]: !!error,\r\n })}\r\n >\r\n {error ? <InlineError>{error}</InlineError> : helperText}\r\n </div>\r\n )}\r\n {helperText && !error && (\r\n <div\r\n className={classNames(styles.message, {\r\n [styles.error]: !!error,\r\n })}\r\n >\r\n {helperText}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport React from \"react\";\r\nimport { Typography } from \"../Typography/Typography\";\r\nimport styles from \"./NavigationItem.module.scss\";\r\n\r\nexport interface NavigationItemProps {\r\n icon?: React.ReactNode;\r\n label: string;\r\n secondaryIcon?: React.ReactNode;\r\n collapsed?: boolean;\r\n active?: boolean;\r\n isParentNode?: boolean;\r\n onClick?: () => void;\r\n className?: string;\r\n}\r\n\r\nexport const NavigationItem = ({\r\n icon,\r\n label,\r\n secondaryIcon,\r\n collapsed = false,\r\n active = false,\r\n isParentNode = false,\r\n onClick,\r\n className,\r\n}: NavigationItemProps) => {\r\n return (\r\n <div\r\n className={classNames(\r\n styles.navigationItem,\r\n active && styles.active,\r\n className,\r\n )}\r\n onClick={onClick}\r\n >\r\n <div className={styles.container}>\r\n <div className={styles.IconContainer}>\r\n {icon}\r\n {isParentNode && (\r\n <img\r\n src='/assets/icons/ParentLine.svg'\r\n alt='Arrow Indicator'\r\n className={styles.ParentLine}\r\n />\r\n )}\r\n </div>\r\n\r\n <Typography\r\n variant='body-md'\r\n className={classNames(collapsed && styles.collapsed, styles.label)}\r\n >\r\n {label}\r\n </Typography>\r\n </div>\r\n {secondaryIcon && (\r\n <div\r\n className={classNames(\r\n styles.secondaryIcon,\r\n collapsed && styles.collapsed,\r\n )}\r\n >\r\n {secondaryIcon}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport { ChevronDown, ChevronUp } from \"lucide-react\";\r\nimport { useState } from \"react\";\r\nimport { NavigationItem } from \"../NavigationItem/NavigationItem\";\r\nimport styles from \"./Collapse.module.scss\";\r\n\r\nexport interface NavItem {\r\n id: string;\r\n name: string;\r\n icon?: React.ReactNode;\r\n children?: NavItem[];\r\n}\r\n\r\nexport interface CollapseProps {\r\n activeItemId: string;\r\n onChange: (item: NavItem) => void;\r\n item: NavItem;\r\n}\r\n\r\nexport const Collapse = ({ activeItemId, onChange, item }: CollapseProps) => {\r\n const sideArrowIndex = item.children?.findIndex(\r\n (child) => child.id === activeItemId,\r\n );\r\n\r\n const [isOpen, setIsOpen] = useState(sideArrowIndex !== -1);\r\n\r\n const handleToggle = () => {\r\n if (item.children) {\r\n setIsOpen(!isOpen);\r\n }\r\n onChange(item);\r\n };\r\n\r\n return (\r\n <div>\r\n <NavigationItem\r\n icon={item.icon}\r\n label={item.name}\r\n secondaryIcon={\r\n isOpen ? <ChevronUp size={20} /> : <ChevronDown size={20} />\r\n }\r\n onClick={handleToggle}\r\n isParentNode={isOpen && sideArrowIndex !== -1}\r\n active={sideArrowIndex !== -1 && !isOpen}\r\n className={classNames(isOpen && sideArrowIndex === -1 && styles.isOpen)}\r\n />\r\n <div className={styles.childContainer}>\r\n {isOpen &&\r\n item.children?.map((subRoute, index) => (\r\n <div\r\n key={subRoute.id}\r\n className={classNames(\r\n styles.ArrowContainer,\r\n activeItemId === subRoute.id ? styles.active : \"\",\r\n )}\r\n onClick={() => onChange(subRoute)}\r\n >\r\n <div className={styles.arrowBlock}>\r\n {sideArrowIndex === index && (\r\n <img\r\n src='/assets/icons/ArrowLine.svg'\r\n alt='Arrow Indicator'\r\n />\r\n )}\r\n {index < (sideArrowIndex ?? -1) && (\r\n <img\r\n src='/assets/icons/SideLine.svg'\r\n alt='Side Indicator'\r\n />\r\n )}\r\n </div>\r\n <NavigationItem\r\n icon={subRoute.icon}\r\n label={subRoute.name}\r\n active={subRoute.id === activeItemId}\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport { CheckCheck, ChevronDown, ChevronUp } from \"lucide-react\";\r\nimport { useState } from \"react\";\r\nimport { NavigationItem } from \"../NavigationItem/NavigationItem\";\r\nimport styles from \"./CourseCollapse.module.scss\";\r\n\r\nexport interface CourseNavItem {\r\n id: string;\r\n name: string;\r\n icon?: React.ReactNode;\r\n completed?: boolean;\r\n children?: CourseNavItem[];\r\n}\r\n\r\nexport interface CourseCollapseProps {\r\n activeItemId: string;\r\n onChange: (item: CourseNavItem) => void;\r\n item: CourseNavItem;\r\n}\r\n\r\nexport const CourseCollapse = ({\r\n activeItemId,\r\n onChange,\r\n item,\r\n}: CourseCollapseProps) => {\r\n const sideArrowIndex = item.children?.findIndex(\r\n (child) => child.id === activeItemId,\r\n );\r\n\r\n const [isOpen, setIsOpen] = useState(sideArrowIndex !== -1);\r\n\r\n const handleToggle = () => {\r\n if (item.children) {\r\n setIsOpen(!isOpen);\r\n }\r\n onChange(item);\r\n };\r\n\r\n return (\r\n <div>\r\n <NavigationItem\r\n icon={item.icon}\r\n label={item.name}\r\n secondaryIcon={\r\n isOpen ? <ChevronUp size={20} /> : <ChevronDown size={20} />\r\n }\r\n onClick={handleToggle}\r\n isParentNode={isOpen && sideArrowIndex !== -1}\r\n active={sideArrowIndex !== -1 && !isOpen}\r\n className={classNames(isOpen && sideArrowIndex === -1 && styles.isOpen)}\r\n />\r\n <div className={styles.childContainer}>\r\n {isOpen &&\r\n item.children?.map((subRoute, index) => (\r\n <div\r\n key={subRoute.id}\r\n className={classNames(\r\n styles.ArrowContainer,\r\n activeItemId === subRoute.id ? styles.active : \"\",\r\n )}\r\n onClick={() => onChange(subRoute)}\r\n >\r\n <div className={styles.arrowBlock}>\r\n {sideArrowIndex === index && (\r\n <img\r\n src='/assets/icons/ArrowLine.svg'\r\n alt='Arrow Indicator'\r\n />\r\n )}\r\n {index < (sideArrowIndex ?? -1) && (\r\n <img\r\n src='/assets/icons/SideLine.svg'\r\n alt='Side Indicator'\r\n />\r\n )}\r\n </div>\r\n <NavigationItem\r\n icon={subRoute.icon}\r\n label={subRoute.name}\r\n key={subRoute.id}\r\n active={subRoute.id === activeItemId}\r\n secondaryIcon={\r\n subRoute.completed && (\r\n <CheckCheck\r\n size={20}\r\n className={styles.iconCheck}\r\n />\r\n )\r\n }\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { InlineError } from \"../InlineError/InlineError\";\r\nimport styles from \"./Dropdown.module.scss\";\r\n\r\ninterface DropdownOption {\r\n label: string;\r\n value: string | number;\r\n disabled?: boolean;\r\n}\r\n\r\ninterface DropdownProps {\r\n label?: string;\r\n error?: string;\r\n helperText?: string;\r\n disabled?: boolean;\r\n readOnly?: boolean;\r\n className?: string;\r\n placeholder?: string;\r\n value?: string | number;\r\n options: DropdownOption[];\r\n onChange?: (value: string | number) => void;\r\n onFocus?: () => void;\r\n onBlur?: () => void;\r\n}\r\n\r\nexport const Dropdown = React.forwardRef<HTMLDivElement, DropdownProps>(\r\n (\r\n {\r\n label,\r\n error,\r\n helperText,\r\n disabled,\r\n readOnly,\r\n className,\r\n placeholder = \"Select an option\",\r\n value,\r\n options,\r\n onChange,\r\n onFocus,\r\n onBlur,\r\n },\r\n ref,\r\n ) => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [focusedIndex, setFocusedIndex] = useState(-1);\r\n const dropdownRef = useRef<HTMLDivElement>(null);\r\n const optionsRef = useRef<HTMLDivElement[]>([]);\r\n\r\n const selectedOption = options.find((option) => option.value === value);\r\n\r\n const handleToggle = () => {\r\n if (disabled || readOnly) return;\r\n\r\n if (!isOpen) {\r\n setIsOpen(true);\r\n setFocusedIndex(selectedOption ? options.indexOf(selectedOption) : -1);\r\n onFocus?.();\r\n } else {\r\n setIsOpen(false);\r\n setFocusedIndex(-1);\r\n onBlur?.();\r\n }\r\n };\r\n\r\n const handleOptionSelect = (option: DropdownOption) => {\r\n if (option.disabled) return;\r\n\r\n onChange?.(option.value);\r\n setIsOpen(false);\r\n setFocusedIndex(-1);\r\n onBlur?.();\r\n };\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent) => {\r\n if (disabled || readOnly) return;\r\n\r\n switch (e.key) {\r\n case \"Enter\":\r\n case \" \":\r\n e.preventDefault();\r\n if (!isOpen) {\r\n setIsOpen(true);\r\n setFocusedIndex(\r\n selectedOption ? options.indexOf(selectedOption) : 0,\r\n );\r\n onFocus?.();\r\n } else if (focusedIndex >= 0) {\r\n const option = options[focusedIndex];\r\n if (!option.disabled) {\r\n handleOptionSelect(option);\r\n }\r\n }\r\n break;\r\n case \"Escape\":\r\n if (isOpen) {\r\n setIsOpen(false);\r\n setFocusedIndex(-1);\r\n onBlur?.();\r\n }\r\n break;\r\n case \"ArrowDown\":\r\n e.preventDefault();\r\n if (!isOpen) {\r\n setIsOpen(true);\r\n setFocusedIndex(0);\r\n onFocus?.();\r\n } else {\r\n const nextIndex =\r\n focusedIndex < options.length - 1 ? focusedIndex + 1 : 0;\r\n setFocusedIndex(nextIndex);\r\n }\r\n break;\r\n case \"ArrowUp\":\r\n e.preventDefault();\r\n if (!isOpen) {\r\n setIsOpen(true);\r\n setFocusedIndex(options.length - 1);\r\n onFocus?.();\r\n } else {\r\n const prevIndex =\r\n focusedIndex > 0 ? focusedIndex - 1 : options.length - 1;\r\n setFocusedIndex(prevIndex);\r\n }\r\n break;\r\n }\r\n };\r\n\r\n // Close dropdown when clicking outside\r\n useEffect(() => {\r\n const handleClickOutside = (event: MouseEvent) => {\r\n if (\r\n dropdownRef.current &&\r\n !dropdownRef.current.contains(event.target as Node)\r\n ) {\r\n setIsOpen(false);\r\n setFocusedIndex(-1);\r\n onBlur?.();\r\n }\r\n };\r\n\r\n if (isOpen) {\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () =>\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n }\r\n }, [isOpen, onBlur]);\r\n\r\n // Scroll focused option into view\r\n useEffect(() => {\r\n if (focusedIndex >= 0 && optionsRef.current[focusedIndex]) {\r\n optionsRef.current[focusedIndex].scrollIntoView({\r\n block: \"nearest\",\r\n });\r\n }\r\n }, [focusedIndex]);\r\n\r\n return (\r\n <div className={styles.formItem}>\r\n {label && (\r\n <label\r\n className={classNames(styles.label, {\r\n [styles.disabled]: disabled,\r\n [styles.readOnly]: readOnly,\r\n })}\r\n >\r\n {label}\r\n </label>\r\n )}\r\n <div\r\n ref={dropdownRef}\r\n className={classNames(styles.inputContainer, className, {\r\n [styles.disabled]: disabled,\r\n [styles.readOnly]: readOnly,\r\n [styles.error]: !!error,\r\n [styles.open]: isOpen,\r\n })}\r\n >\r\n <div\r\n ref={ref}\r\n className={classNames(styles.trigger)}\r\n tabIndex={disabled || readOnly ? -1 : 0}\r\n onClick={handleToggle}\r\n onKeyDown={handleKeyDown}\r\n role='combobox'\r\n aria-expanded={isOpen}\r\n aria-haspopup='listbox'\r\n aria-label={label}\r\n >\r\n <span className={styles.value}>\r\n {selectedOption ? selectedOption.label : placeholder}\r\n </span>\r\n <svg\r\n className={classNames(styles.chevron, {\r\n [styles.rotated]: isOpen,\r\n })}\r\n width='16'\r\n height='16'\r\n viewBox='0 0 16 16'\r\n fill='none'\r\n xmlns='http://www.w3.org/2000/svg'\r\n >\r\n <path\r\n d='M4 6L8 10L12 6'\r\n stroke='currentColor'\r\n strokeWidth='2'\r\n strokeLinecap='round'\r\n strokeLinejoin='round'\r\n />\r\n </svg>\r\n </div>\r\n\r\n {isOpen && (\r\n <div\r\n className={styles.options}\r\n role='listbox'\r\n >\r\n <div className={styles.container}>\r\n {options.map((option, index) => (\r\n <div\r\n key={option.value}\r\n ref={(el) => (optionsRef.current[index] = el!)}\r\n className={classNames(styles.option, {\r\n [styles.selected]: option.value === value,\r\n [styles.focused]: index === focusedIndex,\r\n [styles.disabled]: option.disabled,\r\n })}\r\n onClick={() => handleOptionSelect(option)}\r\n role='option'\r\n aria-selected={option.value === value}\r\n >\r\n {option.label}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n <div\r\n className={classNames(styles.message, {\r\n [styles.error]: !!error,\r\n })}\r\n >\r\n {error ? <InlineError>{error}</InlineError> : helperText}\r\n </div>\r\n </div>\r\n );\r\n },\r\n);\r\n\r\nDropdown.displayName = \"Dropdown\";\r\nexport type { DropdownProps, DropdownOption };\r\n","import classNames from \"classnames\";\r\nimport { ReactNode } from \"react\";\r\nimport { Button } from \"../Button/Button\";\r\nimport { Typography } from \"../Typography/Typography\";\r\nimport styles from \"./Empty.module.scss\";\r\n\r\nexport interface EmptyProps {\r\n children: ReactNode;\r\n className?: string;\r\n}\r\n\r\nconst EmptyBase = ({ children, className = \"\" }: EmptyProps) => (\r\n <div className={`${styles.emptyContainer} ${className}`}>{children}</div>\r\n);\r\n\r\nexport interface EmptyTextProps {\r\n children: ReactNode;\r\n className?: string;\r\n}\r\n\r\nconst EmptyTitle = ({ children, className = \"\" }: EmptyTextProps) => (\r\n <>\r\n <Typography\r\n className={classNames(className, styles.desktop)}\r\n variant={\"heading-md\"}\r\n >\r\n {children}\r\n </Typography>\r\n <Typography\r\n className={classNames(className, styles.mobile)}\r\n variant={\"heading-sm\"}\r\n >\r\n {children}\r\n </Typography>\r\n </>\r\n);\r\n\r\nconst EmptyContext = ({ children, className = \"\" }: EmptyTextProps) => (\r\n <div className={classNames(className)}>{children}</div>\r\n);\r\n\r\nconst EmptyContent = ({ children, className = \"\" }: EmptyTextProps) => (\r\n <div className={`${styles.content} ${className}`}>{children}</div>\r\n);\r\n\r\nconst EmptyButtonContent = ({ children, className = \"\" }: EmptyTextProps) => (\r\n <div className={`${styles.buttonContent} ${className}`}>{children}</div>\r\n);\r\n\r\nexport interface EmptyButtonProps {\r\n children: ReactNode;\r\n onClick?: () => void;\r\n className?: string;\r\n}\r\n\r\nconst EmptyPrimaryButton = ({\r\n children,\r\n onClick,\r\n className = \"\",\r\n}: EmptyButtonProps) => (\r\n <Button\r\n state={\"primary\"}\r\n size='medium'\r\n className={`${styles.buttons} ${className}`}\r\n onClick={onClick}\r\n >\r\n {children}\r\n </Button>\r\n);\r\n\r\nconst EmptySecondaryButton = ({\r\n children,\r\n onClick,\r\n className = \"\",\r\n}: EmptyButtonProps) => (\r\n <Button\r\n size='medium'\r\n className={`${styles.buttons} ${className}`}\r\n onClick={onClick}\r\n >\r\n {children}\r\n </Button>\r\n);\r\n\r\ninterface EmptyImageProps {\r\n src: string;\r\n className?: string;\r\n alt?: string;\r\n}\r\n\r\nconst EmptyImage = ({\r\n src,\r\n className = \"\",\r\n alt = \"Empty state image\",\r\n}: EmptyImageProps) => (\r\n <img\r\n className={classNames(styles.imageContent, className)}\r\n src={src}\r\n alt={alt}\r\n />\r\n);\r\n\r\ninterface EmptyType extends React.FC<EmptyProps> {\r\n Title: typeof EmptyTitle;\r\n Context: typeof EmptyContext;\r\n Content: typeof EmptyContent;\r\n ButtonContent: typeof EmptyButtonContent;\r\n PrimaryButton: typeof EmptyPrimaryButton;\r\n SecondaryButton: typeof EmptySecondaryButton;\r\n Image: typeof EmptyImage;\r\n}\r\n\r\nconst Empty = EmptyBase as EmptyType;\r\n\r\nEmpty.Title = EmptyTitle;\r\nEmpty.Context = EmptyContext;\r\nEmpty.Content = EmptyContent;\r\nEmpty.ButtonContent = EmptyButtonContent;\r\nEmpty.PrimaryButton = EmptyPrimaryButton;\r\nEmpty.SecondaryButton = EmptySecondaryButton;\r\nEmpty.Image = EmptyImage;\r\n\r\nexport { Empty };\r\n","import { createContext, useContext } from \"react\";\r\n\r\nexport type FormItemState = \"default\" | \"error\" | \"disabled\" | \"readOnly\";\r\n\r\nexport interface FormItemContextValue {\r\n state: FormItemState;\r\n}\r\n\r\nexport const FormItemContext = createContext<FormItemContextValue>({\r\n state: \"default\",\r\n});\r\n\r\nexport const useFormItem = () => useContext(FormItemContext);\r\n","// FormItem.tsx\r\nimport classNames from \"classnames\";\r\nimport { CircleAlert } from \"lucide-react\";\r\nimport React, { PropsWithChildren, ReactNode } from \"react\";\r\nimport styles from \"./FormItem.module.scss\";\r\nimport { FormItemContext, useFormItem } from \"./FormItemContext\";\r\n\r\n// Тип состояния формы\r\ntype FormState = \"default\" | \"error\" | \"disabled\" | \"readOnly\";\r\n\r\n// Props для FormItem\r\ninterface FormItemProps {\r\n children: ReactNode;\r\n error?: boolean;\r\n disabled?: boolean;\r\n readOnly?: boolean;\r\n}\r\n\r\n// FormItem Component\r\nconst FormItem = ({ children, error, disabled, readOnly }: FormItemProps) => {\r\n let state: FormState = \"default\";\r\n\r\n if (error) state = \"error\";\r\n else if (disabled) state = \"disabled\";\r\n else if (readOnly) state = \"readOnly\";\r\n\r\n return (\r\n <FormItemContext.Provider value={{ state }}>\r\n <div className={styles.formItem}>{children}</div>\r\n </FormItemContext.Provider>\r\n );\r\n};\r\n\r\n// Label Component\r\nconst Label = ({ children }: PropsWithChildren) => {\r\n const { state } = useFormItem();\r\n\r\n return (\r\n <label\r\n className={classNames(\r\n styles.label,\r\n state === \"disabled\" && styles.disabled,\r\n state === \"readOnly\" && styles.readOnly,\r\n )}\r\n >\r\n {children}\r\n </label>\r\n );\r\n};\r\n\r\n// Props для Input\r\ninterface InputProps extends React.ComponentPropsWithoutRef<\"input\"> {\r\n as?: React.ElementType;\r\n className?: string;\r\n}\r\n\r\n// Input Component (Flexible)\r\nconst Input = React.forwardRef<HTMLElement, InputProps>(\r\n ({ as: Component = \"input\", className, ...props }, ref) => {\r\n const { state } = useFormItem();\r\n\r\n return (\r\n <Component\r\n ref={ref}\r\n className={classNames(styles.input, styles[state], className)}\r\n disabled={state === \"disabled\"}\r\n readOnly={state === \"readOnly\"}\r\n {...props}\r\n />\r\n );\r\n },\r\n);\r\nInput.displayName = \"FormItem.Input\";\r\n\r\n// Message Component\r\nconst Message = ({ children }: PropsWithChildren) => {\r\n const { state } = useFormItem();\r\n if (!children) return null;\r\n\r\n return (\r\n <div\r\n className={classNames(\r\n styles.message,\r\n state === \"error\" ? styles.error : styles.default,\r\n )}\r\n >\r\n {state === \"error\" && <CircleAlert className={styles.critical} />}\r\n {children}\r\n </div>\r\n );\r\n};\r\n\r\n// Combine exports\r\nFormItem.Label = Label;\r\nFormItem.Input = Input;\r\nFormItem.Message = Message;\r\n\r\nexport { FormItem };\r\n","import classNames from \"classnames\";\r\nimport React from \"react\";\r\nimport styles from \"./IconButton.module.scss\";\r\n\r\nexport interface IconButtonProps\r\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n state?: \"default\" | \"primary\" | \"tertiary\" | \"plain\";\r\n size?: \"small\" | \"medium\" | \"large\";\r\n selected?: boolean;\r\n children: React.ReactNode;\r\n className?: string;\r\n onClick?: () => void;\r\n}\r\n\r\nexport const IconButton = ({\r\n state = \"default\",\r\n size = \"medium\",\r\n selected = false,\r\n disabled = false,\r\n children,\r\n onClick = () => {},\r\n className = \"\",\r\n ...rest\r\n}: IconButtonProps) => {\r\n const buttonClass = classNames(\r\n styles.btn,\r\n styles[state],\r\n styles[size],\r\n {\r\n [styles[`${state}-selected`]]: selected,\r\n },\r\n className,\r\n );\r\n\r\n return (\r\n <button\r\n className={buttonClass}\r\n onClick={onClick}\r\n disabled={disabled}\r\n {...rest}\r\n >\r\n {children}\r\n </button>\r\n );\r\n};\r\n\r\nexport default IconButton;\r\n","import classNames from \"classnames\";\r\nimport React from \"react\";\r\nimport { InlineError } from \"../InlineError/InlineError\";\r\nimport styles from \"./Input.module.scss\";\r\n\r\ninterface BaseInputWrapperProps {\r\n label?: string;\r\n error?: string;\r\n helperText?: string;\r\n disabled?: boolean;\r\n readOnly?: boolean;\r\n prefix?: React.ReactNode;\r\n postfix?: React.ReactNode;\r\n children: React.ReactNode;\r\n}\r\n\r\nexport const BaseInputWrapper = ({\r\n label,\r\n error,\r\n helperText,\r\n disabled,\r\n readOnly,\r\n prefix,\r\n postfix,\r\n children,\r\n}: BaseInputWrapperProps) => (\r\n <div className={styles.formItem}>\r\n {label && (\r\n <label\r\n className={classNames(styles.label, {\r\n [styles.disabled]: disabled,\r\n [styles.readOnly]: readOnly,\r\n })}\r\n >\r\n {label}\r\n </label>\r\n )}\r\n <div\r\n className={classNames(styles.inputContainer, {\r\n [styles.disabled]: disabled,\r\n [styles.readOnly]: readOnly,\r\n [styles.error]: !!error,\r\n })}\r\n >\r\n {prefix}\r\n {children}\r\n {postfix}\r\n </div>\r\n <div\r\n className={classNames(styles.message, {\r\n [styles.error]: !!error,\r\n })}\r\n >\r\n {error ? <InlineError>{error}</InlineError> : helperText}\r\n </div>\r\n </div>\r\n);\r\n","import classNames from \"classnames\";\r\nimport React from \"react\";\r\nimport { BaseInputWrapper } from \"./BaseInputWrapper\";\r\nimport styles from \"./Input.module.scss\";\r\n\r\ninterface InputProps\r\n extends Omit<\r\n React.InputHTMLAttributes<HTMLInputElement>,\r\n \"prefix\" | \"postfix\"\r\n > {\r\n label?: string;\r\n error?: string;\r\n helperText?: string;\r\n prefix?: React.ReactNode;\r\n postfix?: React.ReactNode;\r\n maskRegex?: string;\r\n textPrefix?: string;\r\n}\r\n\r\nexport const Input = React.forwardRef<HTMLInputElement, InputProps>(\r\n (\r\n {\r\n label,\r\n error,\r\n helperText,\r\n prefix,\r\n postfix,\r\n disabled,\r\n readOnly,\r\n className,\r\n maskRegex,\r\n textPrefix,\r\n onChange,\r\n onFocus,\r\n ...rest\r\n },\r\n ref,\r\n ) => {\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n if (maskRegex && !new RegExp(maskRegex).test(e.target.value)) {\r\n e.target.setCustomValidity(\"Неверный формат\");\r\n } else {\r\n e.target.setCustomValidity(\"\");\r\n }\r\n onChange?.(e);\r\n };\r\n\r\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\r\n if (textPrefix && !e.target.value) {\r\n const newVal = textPrefix;\r\n e.target.value = newVal;\r\n e.target.setSelectionRange(newVal.length, newVal.length);\r\n e.target.dispatchEvent(new Event(\"input\", { bubbles: true }));\r\n }\r\n onFocus?.(e);\r\n };\r\n\r\n return (\r\n <BaseInputWrapper\r\n label={label}\r\n error={error}\r\n helperText={helperText}\r\n prefix={prefix}\r\n postfix={postfix}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n >\r\n <input\r\n ref={ref}\r\n className={classNames(styles.input, className)}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n onChange={handleChange}\r\n onFocus={handleFocus}\r\n {...rest}\r\n />\r\n </BaseInputWrapper>\r\n );\r\n },\r\n);\r\n\r\nInput.displayName = \"Input\";\r\nexport type { InputProps };\r\n","'use client';\nfunction __insertCSS(code) {\n if (!code || typeof document == 'undefined') return\n let head = document.head || document.getElementsByTagName('head')[0]\n let style = document.createElement('style')\n style.type = 'text/css'\n head.appendChild(style)\n ;style.styleSheet ? (style.styleSheet.cssText = code) : style.appendChild(document.createTextNode(code))\n}\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nconst getAsset = (type)=>{\n switch(type){\n case 'success':\n return SuccessIcon;\n case 'info':\n return InfoIcon;\n case 'warning':\n return WarningIcon;\n case 'error':\n return ErrorIcon;\n default:\n return null;\n }\n};\nconst bars = Array(12).fill(0);\nconst Loader = ({ visible, className })=>{\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: [\n 'sonner-loading-wrapper',\n className\n ].filter(Boolean).join(' '),\n \"data-visible\": visible\n }, /*#__PURE__*/ React.createElement(\"div\", {\n className: \"sonner-spinner\"\n }, bars.map((_, i)=>/*#__PURE__*/ React.createElement(\"div\", {\n className: \"sonner-loading-bar\",\n key: `spinner-bar-${i}`\n }))));\n};\nconst SuccessIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n height: \"20\",\n width: \"20\"\n}, /*#__PURE__*/ React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z\",\n clipRule: \"evenodd\"\n}));\nconst WarningIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n height: \"20\",\n width: \"20\"\n}, /*#__PURE__*/ React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z\",\n clipRule: \"evenodd\"\n}));\nconst InfoIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n height: \"20\",\n width: \"20\"\n}, /*#__PURE__*/ React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z\",\n clipRule: \"evenodd\"\n}));\nconst ErrorIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n height: \"20\",\n width: \"20\"\n}, /*#__PURE__*/ React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z\",\n clipRule: \"evenodd\"\n}));\nconst CloseIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"12\",\n height: \"12\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/ React.createElement(\"line\", {\n x1: \"18\",\n y1: \"6\",\n x2: \"6\",\n y2: \"18\"\n}), /*#__PURE__*/ React.createElement(\"line\", {\n x1: \"6\",\n y1: \"6\",\n x2: \"18\",\n y2: \"18\"\n}));\n\nconst useIsDocumentHidden = ()=>{\n const [isDocumentHidden, setIsDocumentHidden] = React.useState(document.hidden);\n React.useEffect(()=>{\n const callback = ()=>{\n setIsDocumentHidden(document.hidden);\n };\n document.addEventListener('visibilitychange', callback);\n return ()=>window.removeEventListener('visibilitychange', callback);\n }, []);\n return isDocumentHidden;\n};\n\nlet toastsCounter = 1;\nclass Observer {\n constructor(){\n // We use arrow functions to maintain the correct `this` reference\n this.subscribe = (subscriber)=>{\n this.subscribers.push(subscriber);\n return ()=>{\n const index = this.subscribers.indexOf(subscriber);\n this.subscribers.splice(index, 1);\n };\n };\n this.publish = (data)=>{\n this.subscribers.forEach((subscriber)=>subscriber(data));\n };\n this.addToast = (data)=>{\n this.publish(data);\n this.toasts = [\n ...this.toasts,\n data\n ];\n };\n this.create = (data)=>{\n var _data_id;\n const { message, ...rest } = data;\n const id = typeof (data == null ? void 0 : data.id) === 'number' || ((_data_id = data.id) == null ? void 0 : _data_id.length) > 0 ? data.id : toastsCounter++;\n const alreadyExists = this.toasts.find((toast)=>{\n return toast.id === id;\n });\n const dismissible = data.dismissible === undefined ? true : data.dismissible;\n if (this.dismissedToasts.has(id)) {\n this.dismissedToasts.delete(id);\n }\n if (alreadyExists) {\n this.toasts = this.toasts.map((toast)=>{\n if (toast.id === id) {\n this.publish({\n ...toast,\n ...data,\n id,\n title: message\n });\n return {\n ...toast,\n ...data,\n id,\n dismissible,\n title: message\n };\n }\n return toast;\n });\n } else {\n this.addToast({\n title: message,\n ...rest,\n dismissible,\n id\n });\n }\n return id;\n };\n this.dismiss = (id)=>{\n if (id) {\n this.dismissedToasts.add(id);\n requestAnimationFrame(()=>this.subscribers.forEach((subscriber)=>subscriber({\n id,\n dismiss: true\n })));\n } else {\n this.toasts.forEach((toast)=>{\n this.subscribers.forEach((subscriber)=>subscriber({\n id: toast.id,\n dismiss: true\n }));\n });\n }\n return id;\n };\n this.message = (message, data)=>{\n return this.create({\n ...data,\n message\n });\n };\n this.error = (message, data)=>{\n return this.create({\n ...data,\n message,\n type: 'error'\n });\n };\n this.success = (message, data)=>{\n return this.create({\n ...data,\n type: 'success',\n message\n });\n };\n this.info = (message, data)=>{\n return this.create({\n ...data,\n type: 'info',\n message\n });\n };\n this.warning = (message, data)=>{\n return this.create({\n ...data,\n type: 'warning',\n message\n });\n };\n this.loading = (message, data)=>{\n return this.create({\n ...data,\n type: 'loading',\n message\n });\n };\n this.promise = (promise, data)=>{\n if (!data) {\n // Nothing to show\n return;\n }\n let id = undefined;\n if (data.loading !== undefined) {\n id = this.create({\n ...data,\n promise,\n type: 'loading',\n message: data.loading,\n description: typeof data.description !== 'function' ? data.description : undefined\n });\n }\n const p = Promise.resolve(promise instanceof Function ? promise() : promise);\n let shouldDismiss = id !== undefined;\n let result;\n const originalPromise = p.then(async (response)=>{\n result = [\n 'resolve',\n response\n ];\n const isReactElementResponse = React.isValidElement(response);\n if (isReactElementResponse) {\n shouldDismiss = false;\n this.create({\n id,\n type: 'default',\n message: response\n });\n } else if (isHttpResponse(response) && !response.ok) {\n shouldDismiss = false;\n const promiseData = typeof data.error === 'function' ? await data.error(`HTTP error! status: ${response.status}`) : data.error;\n const description = typeof data.description === 'function' ? await data.description(`HTTP error! status: ${response.status}`) : data.description;\n const isExtendedResult = typeof promiseData === 'object' && !React.isValidElement(promiseData);\n const toastSettings = isExtendedResult ? promiseData : {\n message: promiseData\n };\n this.create({\n id,\n type: 'error',\n description,\n ...toastSettings\n });\n } else if (response instanceof Error) {\n shouldDismiss = false;\n const promiseData = typeof data.error === 'function' ? await data.error(response) : data.error;\n const description = typeof data.description === 'function' ? await data.description(response) : data.description;\n const isExtendedResult = typeof promiseData === 'object' && !React.isValidElement(promiseData);\n const toastSettings = isExtendedResult ? promiseData : {\n message: promiseData\n };\n this.create({\n id,\n type: 'error',\n description,\n ...toastSettings\n });\n } else if (data.success !== undefined) {\n shouldDismiss = false;\n const promiseData = typeof data.success === 'function' ? await data.success(response) : data.success;\n const description = typeof data.description === 'function' ? await data.description(response) : data.description;\n const isExtendedResult = typeof promiseData === 'object' && !React.isValidElement(promiseData);\n const toastSettings = isExtendedResult ? promiseData : {\n message: promiseData\n };\n this.create({\n id,\n type: 'success',\n description,\n ...toastSettings\n });\n }\n }).catch(async (error)=>{\n result = [\n 'reject',\n error\n ];\n if (data.error !== undefined) {\n shouldDismiss = false;\n const promiseData = typeof data.error === 'function' ? await data.error(error) : data.error;\n const description = typeof data.description === 'function' ? await data.description(error) : data.description;\n const isExtendedResult = typeof promiseData === 'object' && !React.isValidElement(promiseData);\n const toastSettings = isExtendedResult ? promiseData : {\n message: promiseData\n };\n this.create({\n id,\n type: 'error',\n description,\n ...toastSettings\n });\n }\n }).finally(()=>{\n if (shouldDismiss) {\n // Toast is still in load state (and will be indefinitely — dismiss it)\n this.dismiss(id);\n id = undefined;\n }\n data.finally == null ? void 0 : data.finally.call(data);\n });\n const unwrap = ()=>new Promise((resolve, reject)=>originalPromise.then(()=>result[0] === 'reject' ? reject(result[1]) : resolve(result[1])).catch(reject));\n if (typeof id !== 'string' && typeof id !== 'number') {\n // cannot Object.assign on undefined\n return {\n unwrap\n };\n } else {\n return Object.assign(id, {\n unwrap\n });\n }\n };\n this.custom = (jsx, data)=>{\n const id = (data == null ? void 0 : data.id) || toastsCounter++;\n this.create({\n jsx: jsx(id),\n id,\n ...data\n });\n return id;\n };\n this.getActiveToasts = ()=>{\n return this.toasts.filter((toast)=>!this.dismissedToasts.has(toast.id));\n };\n this.subscribers = [];\n this.toasts = [];\n this.dismissedToasts = new Set();\n }\n}\nconst ToastState = new Observer();\n// bind this to the toast function\nconst toastFunction = (message, data)=>{\n const id = (data == null ? void 0 : data.id) || toastsCounter++;\n ToastState.addToast({\n title: message,\n ...data,\n id\n });\n return id;\n};\nconst isHttpResponse = (data)=>{\n return data && typeof data === 'object' && 'ok' in data && typeof data.ok === 'boolean' && 'status' in data && typeof data.status === 'number';\n};\nconst basicToast = toastFunction;\nconst getHistory = ()=>ToastState.toasts;\nconst getToasts = ()=>ToastState.getActiveToasts();\n// We use `Object.assign` to maintain the correct types as we would lose them otherwise\nconst toast = Object.assign(basicToast, {\n success: ToastState.success,\n info: ToastState.info,\n warning: ToastState.warning,\n error: ToastState.error,\n custom: ToastState.custom,\n message: ToastState.message,\n promise: ToastState.promise,\n dismiss: ToastState.dismiss,\n loading: ToastState.loading\n}, {\n getHistory,\n getToasts\n});\n\n__insertCSS(\"[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}\");\n\nfunction isAction(action) {\n return action.label !== undefined;\n}\n\n// Visible toasts amount\nconst VISIBLE_TOASTS_AMOUNT = 3;\n// Viewport padding\nconst VIEWPORT_OFFSET = '24px';\n// Mobile viewport padding\nconst MOBILE_VIEWPORT_OFFSET = '16px';\n// Default lifetime of a toasts (in ms)\nconst TOAST_LIFETIME = 4000;\n// Default toast width\nconst TOAST_WIDTH = 356;\n// Default gap between toasts\nconst GAP = 14;\n// Threshold to dismiss a toast\nconst SWIPE_THRESHOLD = 45;\n// Equal to exit animation duration\nconst TIME_BEFORE_UNMOUNT = 200;\nfunction cn(...classes) {\n return classes.filter(Boolean).join(' ');\n}\nfunction getDefaultSwipeDirections(position) {\n const [y, x] = position.split('-');\n const directions = [];\n if (y) {\n directions.push(y);\n }\n if (x) {\n directions.push(x);\n }\n return directions;\n}\nconst Toast = (props)=>{\n var _toast_classNames, _toast_classNames1, _toast_classNames2, _toast_classNames3, _toast_classNames4, _toast_classNames5, _toast_classNames6, _toast_classNames7, _toast_classNames8;\n const { invert: ToasterInvert, toast, unstyled, interacting, setHeights, visibleToasts, heights, index, toasts, expanded, removeToast, defaultRichColors, closeButton: closeButtonFromToaster, style, cancelButtonStyle, actionButtonStyle, className = '', descriptionClassName = '', duration: durationFromToaster, position, gap, expandByDefault, classNames, icons, closeButtonAriaLabel = 'Close toast' } = props;\n const [swipeDirection, setSwipeDirection] = React.useState(null);\n const [swipeOutDirection, setSwipeOutDirection] = React.useState(null);\n const [mounted, setMounted] = React.useState(false);\n const [removed, setRemoved] = React.useState(false);\n const [swiping, setSwiping] = React.useState(false);\n const [swipeOut, setSwipeOut] = React.useState(false);\n const [isSwiped, setIsSwiped] = React.useState(false);\n const [offsetBeforeRemove, setOffsetBeforeRemove] = React.useState(0);\n const [initialHeight, setInitialHeight] = React.useState(0);\n const remainingTime = React.useRef(toast.duration || durationFromToaster || TOAST_LIFETIME);\n const dragStartTime = React.useRef(null);\n const toastRef = React.useRef(null);\n const isFront = index === 0;\n const isVisible = index + 1 <= visibleToasts;\n const toastType = toast.type;\n const dismissible = toast.dismissible !== false;\n const toastClassname = toast.className || '';\n const toastDescriptionClassname = toast.descriptionClassName || '';\n // Height index is used to calculate the offset as it gets updated before the toast array, which means we can calculate the new layout faster.\n const heightIndex = React.useMemo(()=>heights.findIndex((height)=>height.toastId === toast.id) || 0, [\n heights,\n toast.id\n ]);\n const closeButton = React.useMemo(()=>{\n var _toast_closeButton;\n return (_toast_closeButton = toast.closeButton) != null ? _toast_closeButton : closeButtonFromToaster;\n }, [\n toast.closeButton,\n closeButtonFromToaster\n ]);\n const duration = React.useMemo(()=>toast.duration || durationFromToaster || TOAST_LIFETIME, [\n toast.duration,\n durationFromToaster\n ]);\n const closeTimerStartTimeRef = React.useRef(0);\n const offset = React.useRef(0);\n const lastCloseTimerStartTimeRef = React.useRef(0);\n const pointerStartRef = React.useRef(null);\n const [y, x] = position.split('-');\n const toastsHeightBefore = React.useMemo(()=>{\n return heights.reduce((prev, curr, reducerIndex)=>{\n // Calculate offset up until current toast\n if (reducerIndex >= heightIndex) {\n return prev;\n }\n return prev + curr.height;\n }, 0);\n }, [\n heights,\n heightIndex\n ]);\n const isDocumentHidden = useIsDocumentHidden();\n const invert = toast.invert || ToasterInvert;\n const disabled = toastType === 'loading';\n offset.current = React.useMemo(()=>heightIndex * gap + toastsHeightBefore, [\n heightIndex,\n toastsHeightBefore\n ]);\n React.useEffect(()=>{\n remainingTime.current = duration;\n }, [\n duration\n ]);\n React.useEffect(()=>{\n // Trigger enter animation without using CSS animation\n setMounted(true);\n }, []);\n React.useEffect(()=>{\n const toastNode = toastRef.current;\n if (toastNode) {\n const height = toastNode.getBoundingClientRect().height;\n // Add toast height to heights array after the toast is mounted\n setInitialHeight(height);\n setHeights((h)=>[\n {\n toastId: toast.id,\n height,\n position: toast.position\n },\n ...h\n ]);\n return ()=>setHeights((h)=>h.filter((height)=>height.toastId !== toast.id));\n }\n }, [\n setHeights,\n toast.id\n ]);\n React.useLayoutEffect(()=>{\n // Keep height up to date with the content in case it updates\n if (!mounted) return;\n const toastNode = toastRef.current;\n const originalHeight = toastNode.style.height;\n toastNode.style.height = 'auto';\n const newHeight = toastNode.getBoundingClientRect().height;\n toastNode.style.height = originalHeight;\n setInitialHeight(newHeight);\n setHeights((heights)=>{\n const alreadyExists = heights.find((height)=>height.toastId === toast.id);\n if (!alreadyExists) {\n return [\n {\n toastId: toast.id,\n height: newHeight,\n position: toast.position\n },\n ...heights\n ];\n } else {\n return heights.map((height)=>height.toastId === toast.id ? {\n ...height,\n height: newHeight\n } : height);\n }\n });\n }, [\n mounted,\n toast.title,\n toast.description,\n setHeights,\n toast.id,\n toast.jsx,\n toast.action,\n toast.cancel\n ]);\n const deleteToast = React.useCallback(()=>{\n // Save the offset for the exit swipe animation\n setRemoved(true);\n setOffsetBeforeRemove(offset.current);\n setHeights((h)=>h.filter((height)=>height.toastId !== toast.id));\n setTimeout(()=>{\n removeToast(toast);\n }, TIME_BEFORE_UNMOUNT);\n }, [\n toast,\n removeToast,\n setHeights,\n offset\n ]);\n React.useEffect(()=>{\n if (toast.promise && toastType === 'loading' || toast.duration === Infinity || toast.type === 'loading') return;\n let timeoutId;\n // Pause the timer on each hover\n const pauseTimer = ()=>{\n if (lastCloseTimerStartTimeRef.current < closeTimerStartTimeRef.current) {\n // Get the elapsed time since the timer started\n const elapsedTime = new Date().getTime() - closeTimerStartTimeRef.current;\n remainingTime.current = remainingTime.current - elapsedTime;\n }\n lastCloseTimerStartTimeRef.current = new Date().getTime();\n };\n const startTimer = ()=>{\n // setTimeout(, Infinity) behaves as if the delay is 0.\n // As a result, the toast would be closed immediately, giving the appearance that it was never rendered.\n // See: https://github.com/denysdovhan/wtfjs?tab=readme-ov-file#an-infinite-timeout\n if (remainingTime.current === Infinity) return;\n closeTimerStartTimeRef.current = new Date().getTime();\n // Let the toast know it has started\n timeoutId = setTimeout(()=>{\n toast.onAutoClose == null ? void 0 : toast.onAutoClose.call(toast, toast);\n deleteToast();\n }, remainingTime.current);\n };\n if (expanded || interacting || isDocumentHidden) {\n pauseTimer();\n } else {\n startTimer();\n }\n return ()=>clearTimeout(timeoutId);\n }, [\n expanded,\n interacting,\n toast,\n toastType,\n isDocumentHidden,\n deleteToast\n ]);\n React.useEffect(()=>{\n if (toast.delete) {\n deleteToast();\n toast.onDismiss == null ? void 0 : toast.onDismiss.call(toast, toast);\n }\n }, [\n deleteToast,\n toast.delete\n ]);\n function getLoadingIcon() {\n var _toast_classNames;\n if (icons == null ? void 0 : icons.loading) {\n var _toast_classNames1;\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: cn(classNames == null ? void 0 : classNames.loader, toast == null ? void 0 : (_toast_classNames1 = toast.classNames) == null ? void 0 : _toast_classNames1.loader, 'sonner-loader'),\n \"data-visible\": toastType === 'loading'\n }, icons.loading);\n }\n return /*#__PURE__*/ React.createElement(Loader, {\n className: cn(classNames == null ? void 0 : classNames.loader, toast == null ? void 0 : (_toast_classNames = toast.classNames) == null ? void 0 : _toast_classNames.loader),\n visible: toastType === 'loading'\n });\n }\n const icon = toast.icon || (icons == null ? void 0 : icons[toastType]) || getAsset(toastType);\n var _toast_richColors, _icons_close;\n return /*#__PURE__*/ React.createElement(\"li\", {\n tabIndex: 0,\n ref: toastRef,\n className: cn(className, toastClassname, classNames == null ? void 0 : classNames.toast, toast == null ? void 0 : (_toast_classNames = toast.classNames) == null ? void 0 : _toast_classNames.toast, classNames == null ? void 0 : classNames.default, classNames == null ? void 0 : classNames[toastType], toast == null ? void 0 : (_toast_classNames1 = toast.classNames) == null ? void 0 : _toast_classNames1[toastType]),\n \"data-sonner-toast\": \"\",\n \"data-rich-colors\": (_toast_richColors = toast.richColors) != null ? _toast_richColors : defaultRichColors,\n \"data-styled\": !Boolean(toast.jsx || toast.unstyled || unstyled),\n \"data-mounted\": mounted,\n \"data-promise\": Boolean(toast.promise),\n \"data-swiped\": isSwiped,\n \"data-removed\": removed,\n \"data-visible\": isVisible,\n \"data-y-position\": y,\n \"data-x-position\": x,\n \"data-index\": index,\n \"data-front\": isFront,\n \"data-swiping\": swiping,\n \"data-dismissible\": dismissible,\n \"data-type\": toastType,\n \"data-invert\": invert,\n \"data-swipe-out\": swipeOut,\n \"data-swipe-direction\": swipeOutDirection,\n \"data-expanded\": Boolean(expanded || expandByDefault && mounted),\n style: {\n '--index': index,\n '--toasts-before': index,\n '--z-index': toasts.length - index,\n '--offset': `${removed ? offsetBeforeRemove : offset.current}px`,\n '--initial-height': expandByDefault ? 'auto' : `${initialHeight}px`,\n ...style,\n ...toast.style\n },\n onDragEnd: ()=>{\n setSwiping(false);\n setSwipeDirection(null);\n pointerStartRef.current = null;\n },\n onPointerDown: (event)=>{\n if (disabled || !dismissible) return;\n dragStartTime.current = new Date();\n setOffsetBeforeRemove(offset.current);\n // Ensure we maintain correct pointer capture even when going outside of the toast (e.g. when swiping)\n event.target.setPointerCapture(event.pointerId);\n if (event.target.tagName === 'BUTTON') return;\n setSwiping(true);\n pointerStartRef.current = {\n x: event.clientX,\n y: event.clientY\n };\n },\n onPointerUp: ()=>{\n var _toastRef_current, _toastRef_current1, _dragStartTime_current;\n if (swipeOut || !dismissible) return;\n pointerStartRef.current = null;\n const swipeAmountX = Number(((_toastRef_current = toastRef.current) == null ? void 0 : _toastRef_current.style.getPropertyValue('--swipe-amount-x').replace('px', '')) || 0);\n const swipeAmountY = Number(((_toastRef_current1 = toastRef.current) == null ? void 0 : _toastRef_current1.style.getPropertyValue('--swipe-amount-y').replace('px', '')) || 0);\n const timeTaken = new Date().getTime() - ((_dragStartTime_current = dragStartTime.current) == null ? void 0 : _dragStartTime_current.getTime());\n const swipeAmount = swipeDirection === 'x' ? swipeAmountX : swipeAmountY;\n const velocity = Math.abs(swipeAmount) / timeTaken;\n if (Math.abs(swipeAmount) >= SWIPE_THRESHOLD || velocity > 0.11) {\n setOffsetBeforeRemove(offset.current);\n toast.onDismiss == null ? void 0 : toast.onDismiss.call(toast, toast);\n if (swipeDirection === 'x') {\n setSwipeOutDirection(swipeAmountX > 0 ? 'right' : 'left');\n } else {\n setSwipeOutDirection(swipeAmountY > 0 ? 'down' : 'up');\n }\n deleteToast();\n setSwipeOut(true);\n return;\n } else {\n var _toastRef_current2, _toastRef_current3;\n (_toastRef_current2 = toastRef.current) == null ? void 0 : _toastRef_current2.style.setProperty('--swipe-amount-x', `0px`);\n (_toastRef_current3 = toastRef.current) == null ? void 0 : _toastRef_current3.style.setProperty('--swipe-amount-y', `0px`);\n }\n setIsSwiped(false);\n setSwiping(false);\n setSwipeDirection(null);\n },\n onPointerMove: (event)=>{\n var _window_getSelection, // Apply transform using both x and y values\n _toastRef_current, _toastRef_current1;\n if (!pointerStartRef.current || !dismissible) return;\n const isHighlighted = ((_window_getSelection = window.getSelection()) == null ? void 0 : _window_getSelection.toString().length) > 0;\n if (isHighlighted) return;\n const yDelta = event.clientY - pointerStartRef.current.y;\n const xDelta = event.clientX - pointerStartRef.current.x;\n var _props_swipeDirections;\n const swipeDirections = (_props_swipeDirections = props.swipeDirections) != null ? _props_swipeDirections : getDefaultSwipeDirections(position);\n // Determine swipe direction if not already locked\n if (!swipeDirection && (Math.abs(xDelta) > 1 || Math.abs(yDelta) > 1)) {\n setSwipeDirection(Math.abs(xDelta) > Math.abs(yDelta) ? 'x' : 'y');\n }\n let swipeAmount = {\n x: 0,\n y: 0\n };\n const getDampening = (delta)=>{\n const factor = Math.abs(delta) / 20;\n return 1 / (1.5 + factor);\n };\n // Only apply swipe in the locked direction\n if (swipeDirection === 'y') {\n // Handle vertical swipes\n if (swipeDirections.includes('top') || swipeDirections.includes('bottom')) {\n if (swipeDirections.includes('top') && yDelta < 0 || swipeDirections.includes('bottom') && yDelta > 0) {\n swipeAmount.y = yDelta;\n } else {\n // Smoothly transition to dampened movement\n const dampenedDelta = yDelta * getDampening(yDelta);\n // Ensure we don't jump when transitioning to dampened movement\n swipeAmount.y = Math.abs(dampenedDelta) < Math.abs(yDelta) ? dampenedDelta : yDelta;\n }\n }\n } else if (swipeDirection === 'x') {\n // Handle horizontal swipes\n if (swipeDirections.includes('left') || swipeDirections.includes('right')) {\n if (swipeDirections.includes('left') && xDelta < 0 || swipeDirections.includes('right') && xDelta > 0) {\n swipeAmount.x = xDelta;\n } else {\n // Smoothly transition to dampened movement\n const dampenedDelta = xDelta * getDampening(xDelta);\n // Ensure we don't jump when transitioning to dampened movement\n swipeAmount.x = Math.abs(dampenedDelta) < Math.abs(xDelta) ? dampenedDelta : xDelta;\n }\n }\n }\n if (Math.abs(swipeAmount.x) > 0 || Math.abs(swipeAmount.y) > 0) {\n setIsSwiped(true);\n }\n (_toastRef_current = toastRef.current) == null ? void 0 : _toastRef_current.style.setProperty('--swipe-amount-x', `${swipeAmount.x}px`);\n (_toastRef_current1 = toastRef.current) == null ? void 0 : _toastRef_current1.style.setProperty('--swipe-amount-y', `${swipeAmount.y}px`);\n }\n }, closeButton && !toast.jsx && toastType !== 'loading' ? /*#__PURE__*/ React.createElement(\"button\", {\n \"aria-label\": closeButtonAriaLabel,\n \"data-disabled\": disabled,\n \"data-close-button\": true,\n onClick: disabled || !dismissible ? ()=>{} : ()=>{\n deleteToast();\n toast.onDismiss == null ? void 0 : toast.onDismiss.call(toast, toast);\n },\n className: cn(classNames == null ? void 0 : classNames.closeButton, toast == null ? void 0 : (_toast_classNames2 = toast.classNames) == null ? void 0 : _toast_classNames2.closeButton)\n }, (_icons_close = icons == null ? void 0 : icons.close) != null ? _icons_close : CloseIcon) : null, (toastType || toast.icon || toast.promise) && toast.icon !== null && ((icons == null ? void 0 : icons[toastType]) !== null || toast.icon) ? /*#__PURE__*/ React.createElement(\"div\", {\n \"data-icon\": \"\",\n className: cn(classNames == null ? void 0 : classNames.icon, toast == null ? void 0 : (_toast_classNames3 = toast.classNames) == null ? void 0 : _toast_classNames3.icon)\n }, toast.promise || toast.type === 'loading' && !toast.icon ? toast.icon || getLoadingIcon() : null, toast.type !== 'loading' ? icon : null) : null, /*#__PURE__*/ React.createElement(\"div\", {\n \"data-content\": \"\",\n className: cn(classNames == null ? void 0 : classNames.content, toast == null ? void 0 : (_toast_classNames4 = toast.classNames) == null ? void 0 : _toast_classNames4.content)\n }, /*#__PURE__*/ React.createElement(\"div\", {\n \"data-title\": \"\",\n className: cn(classNames == null ? void 0 : classNames.title, toast == null ? void 0 : (_toast_classNames5 = toast.classNames) == null ? void 0 : _toast_classNames5.title)\n }, toast.jsx ? toast.jsx : typeof toast.title === 'function' ? toast.title() : toast.title), toast.description ? /*#__PURE__*/ React.createElement(\"div\", {\n \"data-description\": \"\",\n className: cn(descriptionClassName, toastDescriptionClassname, classNames == null ? void 0 : classNames.description, toast == null ? void 0 : (_toast_classNames6 = toast.classNames) == null ? void 0 : _toast_classNames6.description)\n }, typeof toast.description === 'function' ? toast.description() : toast.description) : null), /*#__PURE__*/ React.isValidElement(toast.cancel) ? toast.cancel : toast.cancel && isAction(toast.cancel) ? /*#__PURE__*/ React.createElement(\"button\", {\n \"data-button\": true,\n \"data-cancel\": true,\n style: toast.cancelButtonStyle || cancelButtonStyle,\n onClick: (event)=>{\n // We need to check twice because typescript\n if (!isAction(toast.cancel)) return;\n if (!dismissible) return;\n toast.cancel.onClick == null ? void 0 : toast.cancel.onClick.call(toast.cancel, event);\n deleteToast();\n },\n className: cn(classNames == null ? void 0 : classNames.cancelButton, toast == null ? void 0 : (_toast_classNames7 = toast.classNames) == null ? void 0 : _toast_classNames7.cancelButton)\n }, toast.cancel.label) : null, /*#__PURE__*/ React.isValidElement(toast.action) ? toast.action : toast.action && isAction(toast.action) ? /*#__PURE__*/ React.createElement(\"button\", {\n \"data-button\": true,\n \"data-action\": true,\n style: toast.actionButtonStyle || actionButtonStyle,\n onClick: (event)=>{\n // We need to check twice because typescript\n if (!isAction(toast.action)) return;\n toast.action.onClick == null ? void 0 : toast.action.onClick.call(toast.action, event);\n if (event.defaultPrevented) return;\n deleteToast();\n },\n className: cn(classNames == null ? void 0 : classNames.actionButton, toast == null ? void 0 : (_toast_classNames8 = toast.classNames) == null ? void 0 : _toast_classNames8.actionButton)\n }, toast.action.label) : null);\n};\nfunction getDocumentDirection() {\n if (typeof window === 'undefined') return 'ltr';\n if (typeof document === 'undefined') return 'ltr'; // For Fresh purpose\n const dirAttribute = document.documentElement.getAttribute('dir');\n if (dirAttribute === 'auto' || !dirAttribute) {\n return window.getComputedStyle(document.documentElement).direction;\n }\n return dirAttribute;\n}\nfunction assignOffset(defaultOffset, mobileOffset) {\n const styles = {};\n [\n defaultOffset,\n mobileOffset\n ].forEach((offset, index)=>{\n const isMobile = index === 1;\n const prefix = isMobile ? '--mobile-offset' : '--offset';\n const defaultValue = isMobile ? MOBILE_VIEWPORT_OFFSET : VIEWPORT_OFFSET;\n function assignAll(offset) {\n [\n 'top',\n 'right',\n 'bottom',\n 'left'\n ].forEach((key)=>{\n styles[`${prefix}-${key}`] = typeof offset === 'number' ? `${offset}px` : offset;\n });\n }\n if (typeof offset === 'number' || typeof offset === 'string') {\n assignAll(offset);\n } else if (typeof offset === 'object') {\n [\n 'top',\n 'right',\n 'bottom',\n 'left'\n ].forEach((key)=>{\n if (offset[key] === undefined) {\n styles[`${prefix}-${key}`] = defaultValue;\n } else {\n styles[`${prefix}-${key}`] = typeof offset[key] === 'number' ? `${offset[key]}px` : offset[key];\n }\n });\n } else {\n assignAll(defaultValue);\n }\n });\n return styles;\n}\nfunction useSonner() {\n const [activeToasts, setActiveToasts] = React.useState([]);\n React.useEffect(()=>{\n return ToastState.subscribe((toast)=>{\n if (toast.dismiss) {\n setTimeout(()=>{\n ReactDOM.flushSync(()=>{\n setActiveToasts((toasts)=>toasts.filter((t)=>t.id !== toast.id));\n });\n });\n return;\n }\n // Prevent batching, temp solution.\n setTimeout(()=>{\n ReactDOM.flushSync(()=>{\n setActiveToasts((toasts)=>{\n const indexOfExistingToast = toasts.findIndex((t)=>t.id === toast.id);\n // Update the toast if it already exists\n if (indexOfExistingToast !== -1) {\n return [\n ...toasts.slice(0, indexOfExistingToast),\n {\n ...toasts[indexOfExistingToast],\n ...toast\n },\n ...toasts.slice(indexOfExistingToast + 1)\n ];\n }\n return [\n toast,\n ...toasts\n ];\n });\n });\n });\n });\n }, []);\n return {\n toasts: activeToasts\n };\n}\nconst Toaster = /*#__PURE__*/ React.forwardRef(function Toaster(props, ref) {\n const { invert, position = 'bottom-right', hotkey = [\n 'altKey',\n 'KeyT'\n ], expand, closeButton, className, offset, mobileOffset, theme = 'light', richColors, duration, style, visibleToasts = VISIBLE_TOASTS_AMOUNT, toastOptions, dir = getDocumentDirection(), gap = GAP, icons, containerAriaLabel = 'Notifications' } = props;\n const [toasts, setToasts] = React.useState([]);\n const possiblePositions = React.useMemo(()=>{\n return Array.from(new Set([\n position\n ].concat(toasts.filter((toast)=>toast.position).map((toast)=>toast.position))));\n }, [\n toasts,\n position\n ]);\n const [heights, setHeights] = React.useState([]);\n const [expanded, setExpanded] = React.useState(false);\n const [interacting, setInteracting] = React.useState(false);\n const [actualTheme, setActualTheme] = React.useState(theme !== 'system' ? theme : typeof window !== 'undefined' ? window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' : 'light');\n const listRef = React.useRef(null);\n const hotkeyLabel = hotkey.join('+').replace(/Key/g, '').replace(/Digit/g, '');\n const lastFocusedElementRef = React.useRef(null);\n const isFocusWithinRef = React.useRef(false);\n const removeToast = React.useCallback((toastToRemove)=>{\n setToasts((toasts)=>{\n var _toasts_find;\n if (!((_toasts_find = toasts.find((toast)=>toast.id === toastToRemove.id)) == null ? void 0 : _toasts_find.delete)) {\n ToastState.dismiss(toastToRemove.id);\n }\n return toasts.filter(({ id })=>id !== toastToRemove.id);\n });\n }, []);\n React.useEffect(()=>{\n return ToastState.subscribe((toast)=>{\n if (toast.dismiss) {\n // Prevent batching of other state updates\n requestAnimationFrame(()=>{\n setToasts((toasts)=>toasts.map((t)=>t.id === toast.id ? {\n ...t,\n delete: true\n } : t));\n });\n return;\n }\n // Prevent batching, temp solution.\n setTimeout(()=>{\n ReactDOM.flushSync(()=>{\n setToasts((toasts)=>{\n const indexOfExistingToast = toasts.findIndex((t)=>t.id === toast.id);\n // Update the toast if it already exists\n if (indexOfExistingToast !== -1) {\n return [\n ...toasts.slice(0, indexOfExistingToast),\n {\n ...toasts[indexOfExistingToast],\n ...toast\n },\n ...toasts.slice(indexOfExistingToast + 1)\n ];\n }\n return [\n toast,\n ...toasts\n ];\n });\n });\n });\n });\n }, [\n toasts\n ]);\n React.useEffect(()=>{\n if (theme !== 'system') {\n setActualTheme(theme);\n return;\n }\n if (theme === 'system') {\n // check if current preference is dark\n if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {\n // it's currently dark\n setActualTheme('dark');\n } else {\n // it's not dark\n setActualTheme('light');\n }\n }\n if (typeof window === 'undefined') return;\n const darkMediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n try {\n // Chrome & Firefox\n darkMediaQuery.addEventListener('change', ({ matches })=>{\n if (matches) {\n setActualTheme('dark');\n } else {\n setActualTheme('light');\n }\n });\n } catch (error) {\n // Safari < 14\n darkMediaQuery.addListener(({ matches })=>{\n try {\n if (matches) {\n setActualTheme('dark');\n } else {\n setActualTheme('light');\n }\n } catch (e) {\n console.error(e);\n }\n });\n }\n }, [\n theme\n ]);\n React.useEffect(()=>{\n // Ensure expanded is always false when no toasts are present / only one left\n if (toasts.length <= 1) {\n setExpanded(false);\n }\n }, [\n toasts\n ]);\n React.useEffect(()=>{\n const handleKeyDown = (event)=>{\n var _listRef_current;\n const isHotkeyPressed = hotkey.every((key)=>event[key] || event.code === key);\n if (isHotkeyPressed) {\n var _listRef_current1;\n setExpanded(true);\n (_listRef_current1 = listRef.current) == null ? void 0 : _listRef_current1.focus();\n }\n if (event.code === 'Escape' && (document.activeElement === listRef.current || ((_listRef_current = listRef.current) == null ? void 0 : _listRef_current.contains(document.activeElement)))) {\n setExpanded(false);\n }\n };\n document.addEventListener('keydown', handleKeyDown);\n return ()=>document.removeEventListener('keydown', handleKeyDown);\n }, [\n hotkey\n ]);\n React.useEffect(()=>{\n if (listRef.current) {\n return ()=>{\n if (lastFocusedElementRef.current) {\n lastFocusedElementRef.current.focus({\n preventScroll: true\n });\n lastFocusedElementRef.current = null;\n isFocusWithinRef.current = false;\n }\n };\n }\n }, [\n listRef.current\n ]);\n return(// Remove item from normal navigation flow, only available via hotkey\n /*#__PURE__*/ React.createElement(\"section\", {\n ref: ref,\n \"aria-label\": `${containerAriaLabel} ${hotkeyLabel}`,\n tabIndex: -1,\n \"aria-live\": \"polite\",\n \"aria-relevant\": \"additions text\",\n \"aria-atomic\": \"false\",\n suppressHydrationWarning: true\n }, possiblePositions.map((position, index)=>{\n var _heights_;\n const [y, x] = position.split('-');\n if (!toasts.length) return null;\n return /*#__PURE__*/ React.createElement(\"ol\", {\n key: position,\n dir: dir === 'auto' ? getDocumentDirection() : dir,\n tabIndex: -1,\n ref: listRef,\n className: className,\n \"data-sonner-toaster\": true,\n \"data-sonner-theme\": actualTheme,\n \"data-y-position\": y,\n \"data-x-position\": x,\n style: {\n '--front-toast-height': `${((_heights_ = heights[0]) == null ? void 0 : _heights_.height) || 0}px`,\n '--width': `${TOAST_WIDTH}px`,\n '--gap': `${gap}px`,\n ...style,\n ...assignOffset(offset, mobileOffset)\n },\n onBlur: (event)=>{\n if (isFocusWithinRef.current && !event.currentTarget.contains(event.relatedTarget)) {\n isFocusWithinRef.current = false;\n if (lastFocusedElementRef.current) {\n lastFocusedElementRef.current.focus({\n preventScroll: true\n });\n lastFocusedElementRef.current = null;\n }\n }\n },\n onFocus: (event)=>{\n const isNotDismissible = event.target instanceof HTMLElement && event.target.dataset.dismissible === 'false';\n if (isNotDismissible) return;\n if (!isFocusWithinRef.current) {\n isFocusWithinRef.current = true;\n lastFocusedElementRef.current = event.relatedTarget;\n }\n },\n onMouseEnter: ()=>setExpanded(true),\n onMouseMove: ()=>setExpanded(true),\n onMouseLeave: ()=>{\n // Avoid setting expanded to false when interacting with a toast, e.g. swiping\n if (!interacting) {\n setExpanded(false);\n }\n },\n onDragEnd: ()=>setExpanded(false),\n onPointerDown: (event)=>{\n const isNotDismissible = event.target instanceof HTMLElement && event.target.dataset.dismissible === 'false';\n if (isNotDismissible) return;\n setInteracting(true);\n },\n onPointerUp: ()=>setInteracting(false)\n }, toasts.filter((toast)=>!toast.position && index === 0 || toast.position === position).map((toast, index)=>{\n var _toastOptions_duration, _toastOptions_closeButton;\n return /*#__PURE__*/ React.createElement(Toast, {\n key: toast.id,\n icons: icons,\n index: index,\n toast: toast,\n defaultRichColors: richColors,\n duration: (_toastOptions_duration = toastOptions == null ? void 0 : toastOptions.duration) != null ? _toastOptions_duration : duration,\n className: toastOptions == null ? void 0 : toastOptions.className,\n descriptionClassName: toastOptions == null ? void 0 : toastOptions.descriptionClassName,\n invert: invert,\n visibleToasts: visibleToasts,\n closeButton: (_toastOptions_closeButton = toastOptions == null ? void 0 : toastOptions.closeButton) != null ? _toastOptions_closeButton : closeButton,\n interacting: interacting,\n position: position,\n style: toastOptions == null ? void 0 : toastOptions.style,\n unstyled: toastOptions == null ? void 0 : toastOptions.unstyled,\n classNames: toastOptions == null ? void 0 : toastOptions.classNames,\n cancelButtonStyle: toastOptions == null ? void 0 : toastOptions.cancelButtonStyle,\n actionButtonStyle: toastOptions == null ? void 0 : toastOptions.actionButtonStyle,\n closeButtonAriaLabel: toastOptions == null ? void 0 : toastOptions.closeButtonAriaLabel,\n removeToast: removeToast,\n toasts: toasts.filter((t)=>t.position == toast.position),\n heights: heights.filter((h)=>h.position == toast.position),\n setHeights: setHeights,\n expandByDefault: expand,\n gap: gap,\n expanded: expanded,\n swipeDirections: props.swipeDirections\n });\n }));\n })));\n});\n\nexport { Toaster, toast, useSonner };\n","import { Toaster, ToasterProps } from \"sonner\";\r\n\r\nexport const CustomToaster = (props: ToasterProps) => {\r\n return (\r\n <Toaster\r\n position='bottom-right'\r\n duration={3000}\r\n closeButton\r\n richColors\r\n {...props}\r\n />\r\n );\r\n};\r\n","import { OctagonAlert, TriangleAlert, X } from \"lucide-react\";\r\nimport { toast } from \"sonner\";\r\nimport IconButton from \"../IconButton/IconButton\";\r\nimport styles from \"./Message.module.scss\";\r\n\r\ntype MessageType = \"default\" | \"warning\" | \"error\";\r\n\r\nexport const message = {\r\n default(text: string) {\r\n toast.custom((t) => (\r\n <div className={`${styles.customToast} ${styles.default}`}>\r\n <div className={styles.content}>{text}</div>\r\n <IconButton\r\n className={styles.closeBtn}\r\n onClick={() => toast.dismiss(t)}\r\n >\r\n <X />\r\n </IconButton>\r\n </div>\r\n ));\r\n },\r\n\r\n warning(text: string) {\r\n toast.custom((t) => (\r\n <div className={`${styles.customToast} ${styles.warning}`}>\r\n <div className={styles.content}>\r\n <TriangleAlert className={styles.warningIcon} />\r\n {text}\r\n </div>\r\n <IconButton\r\n className={styles.closeBtn}\r\n onClick={() => toast.dismiss(t)}\r\n >\r\n <X />\r\n </IconButton>\r\n </div>\r\n ));\r\n },\r\n\r\n error(text: string) {\r\n toast.custom((t) => (\r\n <div className={`${styles.customToast} ${styles.error}`}>\r\n <div className={styles.content}>\r\n <OctagonAlert className={styles.criticalIcon} />\r\n {text}\r\n </div>\r\n <IconButton\r\n className={styles.closeBtn}\r\n onClick={() => toast.dismiss(t)}\r\n >\r\n <X />\r\n </IconButton>\r\n </div>\r\n ));\r\n },\r\n\r\n show(text: string, type: MessageType = \"default\") {\r\n if (type === \"error\") return this.error(text);\r\n if (type === \"warning\") return this.warning(text);\r\n return this.default(text);\r\n },\r\n};\r\n","import classNames from \"classnames\";\r\nimport { OctagonAlert, TriangleAlert, X } from \"lucide-react\";\r\nimport React, { ReactNode } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport { Button, ButtonProps } from \"../Button/Button\";\r\nimport IconButton from \"../IconButton/IconButton\";\r\nimport { Typography } from \"../Typography/Typography\";\r\nimport styles from \"./Modal.module.scss\";\r\n\r\nexport interface ModalProps {\r\n activator?: ReactNode;\r\n open: boolean;\r\n onClose: () => void;\r\n title: string;\r\n primaryButtonProps?: ButtonProps;\r\n secondaryButtonProps?: ButtonProps[];\r\n tone?: \"default\" | \"critical\" | \"warning\";\r\n children: ReactNode;\r\n fullHeight?: boolean;\r\n}\r\n\r\nconst ModalBase = ({\r\n open,\r\n onClose,\r\n title,\r\n primaryButtonProps,\r\n secondaryButtonProps = [],\r\n tone = \"default\",\r\n children,\r\n fullHeight = false,\r\n}: ModalProps) => {\r\n if (!open) return null;\r\n\r\n const toneClass = styles[`tone-${tone}`] || \"\";\r\n\r\n return createPortal(\r\n <div\r\n className={styles.modalLayout}\r\n onClick={onClose}\r\n >\r\n <div\r\n className={classNames(\r\n styles.modalContainer,\r\n toneClass,\r\n fullHeight && styles.fullHeight,\r\n )}\r\n onClick={(e) => e.stopPropagation()}\r\n role='dialog'\r\n aria-modal='true'\r\n aria-labelledby='modal-title'\r\n >\r\n <div className={styles.header}>\r\n <div className={styles.title}>\r\n {tone === \"critical\" && (\r\n <OctagonAlert className={styles.critical} />\r\n )}\r\n {tone === \"warning\" && <TriangleAlert className={styles.warning} />}\r\n <Typography variant='heading-sm'>{title}</Typography>\r\n </div>\r\n <IconButton\r\n size='small'\r\n state='default'\r\n onClick={onClose}\r\n aria-label='Close modal'\r\n >\r\n <X />\r\n </IconButton>\r\n </div>\r\n\r\n <div className={styles.content}>{children}</div>\r\n\r\n <div className={styles.footer}>\r\n {secondaryButtonProps.map((props, i) => (\r\n <Button\r\n key={i}\r\n className={styles.secondaryButton}\r\n {...props}\r\n >\r\n {props.children}\r\n </Button>\r\n ))}\r\n {primaryButtonProps && (\r\n <Button\r\n type='button'\r\n state='primary'\r\n className={styles.primaryButton}\r\n {...primaryButtonProps}\r\n >\r\n {primaryButtonProps.children}\r\n </Button>\r\n )}\r\n </div>\r\n </div>\r\n </div>,\r\n document.body,\r\n );\r\n};\r\n\r\ninterface SectionProps {\r\n children: ReactNode;\r\n}\r\n\r\nconst Section = ({ children }: SectionProps) => (\r\n <section className={styles.section}>{children}</section>\r\n);\r\n\r\ninterface ModalComponent extends React.FC<ModalProps> {\r\n Section: typeof Section;\r\n}\r\n\r\nconst Modal = ModalBase as ModalComponent;\r\nModal.Section = Section;\r\n\r\nexport { Modal };\r\n","import React from \"react\";\r\nimport { createRoot } from \"react-dom/client\";\r\nimport { Modal } from \"@/components/Modal/Modal\";\r\n\r\nexport interface ModalShowOptions {\r\n title: string;\r\n content: React.ReactNode;\r\n onOk?: () => void;\r\n onCancel?: () => void;\r\n okText?: string;\r\n cancelText?: string;\r\n tone?: \"default\" | \"critical\" | \"warning\";\r\n style?: React.CSSProperties;\r\n centered?: boolean;\r\n}\r\n\r\nexport function showModal(options: ModalShowOptions) {\r\n const container = document.createElement(\"div\");\r\n document.body.appendChild(container);\r\n\r\n const root = createRoot(container);\r\n\r\n const unmount = () => {\r\n root.unmount();\r\n container.remove();\r\n };\r\n\r\n const handleOk = () => {\r\n options.onOk?.();\r\n unmount();\r\n };\r\n\r\n const handleCancel = () => {\r\n options.onCancel?.();\r\n unmount();\r\n };\r\n\r\n root.render(\r\n <Modal\r\n open={true}\r\n title={options.title}\r\n tone={options.tone}\r\n onClose={handleCancel}\r\n primaryButtonProps={{\r\n children: options.okText || \"OK\",\r\n onClick: handleOk,\r\n }}\r\n secondaryButtonProps={[\r\n {\r\n children: options.cancelText || \"Cancel\",\r\n onClick: handleCancel,\r\n },\r\n ]}\r\n >\r\n <Modal.Section>{options.content}</Modal.Section>\r\n </Modal>,\r\n );\r\n}\r\n\r\nexport const ModalAPI = {\r\n error: (opts: Omit<ModalShowOptions, \"tone\">) =>\r\n showModal({ ...opts, tone: \"critical\" }),\r\n\r\n warning: (opts: Omit<ModalShowOptions, \"tone\">) =>\r\n showModal({ ...opts, tone: \"warning\" }),\r\n\r\n info: (opts: Omit<ModalShowOptions, \"tone\">) =>\r\n showModal({ ...opts, tone: \"default\" }),\r\n};\r\n","import { PropsWithChildren } from \"react\";\r\nimport { Typography } from \"../Typography/Typography\";\r\nimport styles from \"./PageHeader.module.scss\";\r\n\r\nexport const PageHeader = ({ children }: PropsWithChildren) => {\r\n return (\r\n <header className={styles.pageHeader}>\r\n <Typography\r\n variant='heading-xl'\r\n className={styles.lg}\r\n >\r\n {children}\r\n </Typography>\r\n <Typography\r\n variant='heading-md'\r\n className={styles.mg}\r\n >\r\n {children}\r\n </Typography>\r\n </header>\r\n );\r\n};\r\n","import styles from \"./ProgressLine.module.scss\";\r\n\r\nexport interface ProgressLineProps {\r\n percent: number;\r\n}\r\nexport const ProgressLine = ({ percent }: ProgressLineProps) => {\r\n return (\r\n <div className={styles.container}>\r\n <div className={styles.line}>\r\n <div\r\n className={styles.progress}\r\n style={{ width: `${percent}%` }}\r\n ></div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport { InlineError } from \"../InlineError/InlineError\";\r\nimport styles from \"./Input.module.scss\";\r\n\r\ninterface RadioButtonProps extends React.InputHTMLAttributes<HTMLInputElement> {\r\n label?: string;\r\n error?: string;\r\n helperText?: string;\r\n name: string;\r\n onChange?: React.ChangeEventHandler<HTMLInputElement>; // Make sure onChange is passed\r\n}\r\n\r\nexport const RadioButton = ({\r\n label,\r\n error,\r\n helperText,\r\n disabled,\r\n className,\r\n name,\r\n onChange,\r\n ...rest\r\n}: RadioButtonProps) => {\r\n const handleLabelClick = () => {\r\n if (onChange) {\r\n const event = {\r\n target: {\r\n name,\r\n value: rest.value || \"\",\r\n },\r\n } as React.ChangeEvent<HTMLInputElement>;\r\n\r\n onChange(event);\r\n }\r\n };\r\n return (\r\n <div className={styles.formItem}>\r\n <input\r\n type='radio'\r\n className={classNames(className, styles.inputContainer, styles.radio)}\r\n disabled={disabled}\r\n name={name}\r\n onChange={onChange}\r\n {...rest}\r\n />\r\n <div className={styles.labelContainer}>\r\n <div\r\n className={classNames(styles.label, {\r\n [styles.disabled]: disabled,\r\n })}\r\n onClick={handleLabelClick}\r\n >\r\n {label}\r\n </div>\r\n {error && (\r\n <div\r\n className={classNames(styles.message, {\r\n [styles.error]: !!error,\r\n })}\r\n >\r\n {error ? <InlineError>{error}</InlineError> : helperText}\r\n </div>\r\n )}\r\n {helperText && !error && (\r\n <div\r\n className={classNames(styles.message, {\r\n [styles.error]: !!error,\r\n })}\r\n >\r\n {helperText}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import { ReactNode } from \"react\";\r\nimport { Typography } from \"../Typography/Typography\";\r\nimport styles from \"./SectionHeader.module.scss\";\r\n\r\nexport interface SectionHeaderProps {\r\n title: string;\r\n extra?: ReactNode;\r\n}\r\nexport const SectionHeader = ({ title, extra }: SectionHeaderProps) => {\r\n return (\r\n <div className={styles.container}>\r\n <Typography\r\n variant='heading-md'\r\n className={styles.notMobile}\r\n >\r\n {title}\r\n </Typography>\r\n <Typography\r\n variant='heading-sm'\r\n className={styles.mobile}\r\n >\r\n {title}\r\n </Typography>\r\n {extra}\r\n </div>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport { PropsWithChildren } from \"react\";\r\nimport styles from \"./Table.module.scss\";\r\n\r\nexport type CellType =\r\n | \"label\"\r\n | \"input\"\r\n | \"button\"\r\n | \"icon-button\"\r\n | \"checkbox\"\r\n | \"empty\"\r\n | \"icon-label\";\r\n\r\ntype Align =\r\n | \"top-left\"\r\n | \"top\"\r\n | \"top-right\"\r\n | \"middle-left\"\r\n | \"middle\"\r\n | \"middle-right\"\r\n | \"bottom-left\"\r\n | \"bottom\"\r\n | \"bottom-right\";\r\n\r\ninterface CellProps {\r\n cellType?: CellType;\r\n align?: Align;\r\n}\r\n\r\nexport const Cell = ({\r\n children,\r\n cellType = \"label\",\r\n align = \"middle-left\",\r\n ...props\r\n}: PropsWithChildren<CellProps>) => {\r\n const cellClass = classNames(\r\n styles.td,\r\n styles[cellType],\r\n styles[`align-${align}`],\r\n );\r\n\r\n return (\r\n <div\r\n {...props}\r\n className={cellClass}\r\n >\r\n {children}\r\n </div>\r\n );\r\n};\r\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","const CLASS_PART_SEPARATOR = '-';\nconst createClassGroupUtils = config => {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n classGroups\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n for (const classGroupId in classGroups) {\n processClassesRecursively(classGroups[classGroupId], classMap, classGroupId, theme);\n }\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst MODIFIER_SEPARATOR = ':';\nconst MODIFIER_SEPARATOR_LENGTH = MODIFIER_SEPARATOR.length;\nconst createParseClassName = config => {\n const {\n prefix,\n experimentalParseClassName\n } = config;\n /**\n * Parse class name into parts.\n *\n * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n */\n let parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let parenDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0 && parenDepth === 0) {\n if (currentCharacter === MODIFIER_SEPARATOR) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + MODIFIER_SEPARATOR_LENGTH;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n } else if (currentCharacter === '(') {\n parenDepth++;\n } else if (currentCharacter === ')') {\n parenDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const baseClassName = stripImportantModifier(baseClassNameWithImportantModifier);\n const hasImportantModifier = baseClassName !== baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (prefix) {\n const fullPrefix = prefix + MODIFIER_SEPARATOR;\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.substring(fullPrefix.length)) : {\n isExternal: true,\n modifiers: [],\n hasImportantModifier: false,\n baseClassName: className,\n maybePostfixModifierPosition: undefined\n };\n }\n if (experimentalParseClassName) {\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => experimentalParseClassName({\n className,\n parseClassName: parseClassNameOriginal\n });\n }\n return parseClassName;\n};\nconst stripImportantModifier = baseClassName => {\n if (baseClassName.endsWith(IMPORTANT_MODIFIER)) {\n return baseClassName.substring(0, baseClassName.length - 1);\n }\n /**\n * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.\n * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864\n */\n if (baseClassName.startsWith(IMPORTANT_MODIFIER)) {\n return baseClassName.substring(1);\n }\n return baseClassName;\n};\n\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst createSortModifiers = config => {\n const orderSensitiveModifiers = Object.fromEntries(config.orderSensitiveModifiers.map(modifier => [modifier, true]));\n const sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isPositionSensitive = modifier[0] === '[' || orderSensitiveModifiers[modifier];\n if (isPositionSensitive) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n };\n return sortModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n sortModifiers: createSortModifiers(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds,\n sortModifiers\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n isExternal,\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n if (isExternal) {\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n let hasPostfixModifier = !!maybePostfixModifierPosition;\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i;\nconst arbitraryVariableRegex = /^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isFraction = value => fractionRegex.test(value);\nconst isNumber = value => !!value && !Number.isNaN(Number(value));\nconst isInteger = value => !!value && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst isAny = () => true;\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst isAnyNonArbitrary = value => !isArbitraryValue(value) && !isArbitraryVariable(value);\nconst isArbitrarySize = value => getIsArbitraryValue(value, isLabelSize, isNever);\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, isLabelLength, isLengthOnly);\nconst isArbitraryNumber = value => getIsArbitraryValue(value, isLabelNumber, isNumber);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, isLabelPosition, isNever);\nconst isArbitraryImage = value => getIsArbitraryValue(value, isLabelImage, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, isLabelShadow, isShadow);\nconst isArbitraryVariable = value => arbitraryVariableRegex.test(value);\nconst isArbitraryVariableLength = value => getIsArbitraryVariable(value, isLabelLength);\nconst isArbitraryVariableFamilyName = value => getIsArbitraryVariable(value, isLabelFamilyName);\nconst isArbitraryVariablePosition = value => getIsArbitraryVariable(value, isLabelPosition);\nconst isArbitraryVariableSize = value => getIsArbitraryVariable(value, isLabelSize);\nconst isArbitraryVariableImage = value => getIsArbitraryVariable(value, isLabelImage);\nconst isArbitraryVariableShadow = value => getIsArbitraryVariable(value, isLabelShadow, true);\n// Helpers\nconst getIsArbitraryValue = (value, testLabel, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {\n const result = arbitraryVariableRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return shouldMatchNoLabel;\n }\n return false;\n};\n// Labels\nconst isLabelPosition = label => label === 'position' || label === 'percentage';\nconst isLabelImage = label => label === 'image' || label === 'url';\nconst isLabelSize = label => label === 'length' || label === 'size' || label === 'bg-size';\nconst isLabelLength = label => label === 'length';\nconst isLabelNumber = label => label === 'number';\nconst isLabelFamilyName = label => label === 'family-name';\nconst isLabelShadow = label => label === 'shadow';\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isAnyNonArbitrary,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isArbitraryVariable,\n isArbitraryVariableFamilyName,\n isArbitraryVariableImage,\n isArbitraryVariableLength,\n isArbitraryVariablePosition,\n isArbitraryVariableShadow,\n isArbitraryVariableSize,\n isFraction,\n isInteger,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n /**\n * Theme getters for theme variable namespaces\n * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces\n */\n /***/\n const themeColor = fromTheme('color');\n const themeFont = fromTheme('font');\n const themeText = fromTheme('text');\n const themeFontWeight = fromTheme('font-weight');\n const themeTracking = fromTheme('tracking');\n const themeLeading = fromTheme('leading');\n const themeBreakpoint = fromTheme('breakpoint');\n const themeContainer = fromTheme('container');\n const themeSpacing = fromTheme('spacing');\n const themeRadius = fromTheme('radius');\n const themeShadow = fromTheme('shadow');\n const themeInsetShadow = fromTheme('inset-shadow');\n const themeTextShadow = fromTheme('text-shadow');\n const themeDropShadow = fromTheme('drop-shadow');\n const themeBlur = fromTheme('blur');\n const themePerspective = fromTheme('perspective');\n const themeAspect = fromTheme('aspect');\n const themeEase = fromTheme('ease');\n const themeAnimate = fromTheme('animate');\n /**\n * Helpers to avoid repeating the same scales\n *\n * We use functions that create a new array every time they're called instead of static arrays.\n * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config.\n */\n /***/\n const scaleBreak = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const scalePosition = () => ['center', 'top', 'bottom', 'left', 'right', 'top-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-top', 'top-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-top', 'bottom-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-bottom', 'bottom-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-bottom'];\n const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue];\n const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const scaleOverscroll = () => ['auto', 'contain', 'none'];\n const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];\n const scaleInset = () => [isFraction, 'full', 'auto', ...scaleUnambiguousSpacing()];\n const scaleGridTemplateColsRows = () => [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartAndEnd = () => ['auto', {\n span: ['full', isInteger, isArbitraryVariable, isArbitraryValue]\n }, isInteger, isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartOrEnd = () => [isInteger, 'auto', isArbitraryVariable, isArbitraryValue];\n const scaleGridAutoColsRows = () => ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue];\n const scaleAlignPrimaryAxis = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch', 'baseline', 'center-safe', 'end-safe'];\n const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'];\n const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()];\n const scaleSizing = () => [isFraction, 'auto', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];\n const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];\n const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {\n position: [isArbitraryVariable, isArbitraryValue]\n }];\n const scaleBgRepeat = () => ['no-repeat', {\n repeat: ['', 'x', 'y', 'space', 'round']\n }];\n const scaleBgSize = () => ['auto', 'cover', 'contain', isArbitraryVariableSize, isArbitrarySize, {\n size: [isArbitraryVariable, isArbitraryValue]\n }];\n const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength];\n const scaleRadius = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', 'full', themeRadius, isArbitraryVariable, isArbitraryValue];\n const scaleBorderWidth = () => ['', isNumber, isArbitraryVariableLength, isArbitraryLength];\n const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double'];\n const scaleBlendMode = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition];\n const scaleBlur = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeBlur, isArbitraryVariable, isArbitraryValue];\n const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleTranslate = () => [isFraction, 'full', ...scaleUnambiguousSpacing()];\n return {\n cacheSize: 500,\n theme: {\n animate: ['spin', 'ping', 'pulse', 'bounce'],\n aspect: ['video'],\n blur: [isTshirtSize],\n breakpoint: [isTshirtSize],\n color: [isAny],\n container: [isTshirtSize],\n 'drop-shadow': [isTshirtSize],\n ease: ['in', 'out', 'in-out'],\n font: [isAnyNonArbitrary],\n 'font-weight': ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black'],\n 'inset-shadow': [isTshirtSize],\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'],\n perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'],\n radius: [isTshirtSize],\n shadow: [isTshirtSize],\n spacing: ['px', isNumber],\n text: [isTshirtSize],\n 'text-shadow': [isTshirtSize],\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest']\n },\n classGroups: {\n // --------------\n // --- Layout ---\n // --------------\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n * @deprecated since Tailwind CSS v4.0.0\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': scaleBreak()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': scaleBreak()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Screen Reader Only\n * @see https://tailwindcss.com/docs/display#screen-reader-only\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: scalePositionWithArbitrary()\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: scaleOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': scaleOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': scaleOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: scaleOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': scaleOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': scaleOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: scaleInset()\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': scaleInset()\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': scaleInset()\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: scaleInset()\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: scaleInset()\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: scaleInset()\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: scaleInset()\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: scaleInset()\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: scaleInset()\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------------\n // --- Flexbox and Grid ---\n // ------------------------\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: [isFraction, 'full', 'auto', themeContainer, ...scaleUnambiguousSpacing()]\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['nowrap', 'wrap', 'wrap-reverse']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: [isInteger, 'first', 'last', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': scaleGridAutoColsRows()\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': scaleGridAutoColsRows()\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: scaleUnambiguousSpacing()\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': scaleUnambiguousSpacing()\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': scaleUnambiguousSpacing()\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: [...scaleAlignPrimaryAxis(), 'normal']\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': [...scaleAlignSecondaryAxis(), 'normal']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...scaleAlignPrimaryAxis()]\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: [...scaleAlignSecondaryAxis(), {\n baseline: ['', 'last']\n }]\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', ...scaleAlignSecondaryAxis(), {\n baseline: ['', 'last']\n }]\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': scaleAlignPrimaryAxis()\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': [...scaleAlignSecondaryAxis(), 'baseline']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: scaleUnambiguousSpacing()\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: scaleUnambiguousSpacing()\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: scaleUnambiguousSpacing()\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: scaleMargin()\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: scaleMargin()\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: scaleMargin()\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: scaleMargin()\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: scaleMargin()\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: scaleMargin()\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: scaleMargin()\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: scaleMargin()\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: scaleMargin()\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x': [{\n 'space-x': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y': [{\n 'space-y': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y-reverse': ['space-y-reverse'],\n // --------------\n // --- Sizing ---\n // --------------\n /**\n * Size\n * @see https://tailwindcss.com/docs/width#setting-both-width-and-height\n */\n size: [{\n size: scaleSizing()\n }],\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: [themeContainer, 'screen', ...scaleSizing()]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [themeContainer, 'screen', /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'none', ...scaleSizing()]\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [themeContainer, 'screen', 'none', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'prose', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n {\n screen: [themeBreakpoint]\n }, ...scaleSizing()]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: ['screen', 'lh', ...scaleSizing()]\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': ['screen', 'lh', 'none', ...scaleSizing()]\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': ['screen', 'lh', ...scaleSizing()]\n }],\n // ------------------\n // --- Typography ---\n // ------------------\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Font Stretch\n * @see https://tailwindcss.com/docs/font-stretch\n */\n 'font-stretch': [{\n 'font-stretch': ['ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', isPercent, isArbitraryValue]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: [/** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n themeLeading, ...scaleUnambiguousSpacing()]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://v3.tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: scaleColor()\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: scaleColor()\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...scaleLineStyle(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: [isNumber, 'from-font', 'auto', isArbitraryVariable, isArbitraryLength]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: scaleColor()\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: scaleUnambiguousSpacing()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Overflow Wrap\n * @see https://tailwindcss.com/docs/overflow-wrap\n */\n wrap: [{\n wrap: ['break-word', 'anywhere', 'normal']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // -------------------\n // --- Backgrounds ---\n // -------------------\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: scaleBgPosition()\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: scaleBgRepeat()\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: scaleBgSize()\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n linear: [{\n to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isInteger, isArbitraryVariable, isArbitraryValue],\n radial: ['', isArbitraryVariable, isArbitraryValue],\n conic: [isInteger, isArbitraryVariable, isArbitraryValue]\n }, isArbitraryVariableImage, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: scaleColor()\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: scaleColor()\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: scaleColor()\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: scaleColor()\n }],\n // ---------------\n // --- Borders ---\n // ---------------\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: scaleRadius()\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': scaleRadius()\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': scaleRadius()\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': scaleRadius()\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': scaleRadius()\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': scaleRadius()\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': scaleRadius()\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': scaleRadius()\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': scaleRadius()\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': scaleRadius()\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': scaleRadius()\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': scaleRadius()\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': scaleRadius()\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': scaleRadius()\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': scaleRadius()\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: scaleBorderWidth()\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': scaleBorderWidth()\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': scaleBorderWidth()\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': scaleBorderWidth()\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': scaleBorderWidth()\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': scaleBorderWidth()\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': scaleBorderWidth()\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': scaleBorderWidth()\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': scaleBorderWidth()\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x': [{\n 'divide-x': scaleBorderWidth()\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y': [{\n 'divide-y': scaleBorderWidth()\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style\n */\n 'divide-style': [{\n divide: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: scaleColor()\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': scaleColor()\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': scaleColor()\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': scaleColor()\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': scaleColor()\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': scaleColor()\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': scaleColor()\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': scaleColor()\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': scaleColor()\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: scaleColor()\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: [...scaleLineStyle(), 'none', 'hidden']\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: scaleColor()\n }],\n // ---------------\n // --- Effects ---\n // ---------------\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color\n */\n 'shadow-color': [{\n shadow: scaleColor()\n }],\n /**\n * Inset Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow\n */\n 'inset-shadow': [{\n 'inset-shadow': ['none', themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Inset Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color\n */\n 'inset-shadow-color': [{\n 'inset-shadow': scaleColor()\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring\n */\n 'ring-w': [{\n ring: scaleBorderWidth()\n }],\n /**\n * Ring Width Inset\n * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color\n */\n 'ring-color': [{\n ring: scaleColor()\n }],\n /**\n * Ring Offset Width\n * @see https://v3.tailwindcss.com/docs/ring-offset-width\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-w': [{\n 'ring-offset': [isNumber, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://v3.tailwindcss.com/docs/ring-offset-color\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-color': [{\n 'ring-offset': scaleColor()\n }],\n /**\n * Inset Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring\n */\n 'inset-ring-w': [{\n 'inset-ring': scaleBorderWidth()\n }],\n /**\n * Inset Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color\n */\n 'inset-ring-color': [{\n 'inset-ring': scaleColor()\n }],\n /**\n * Text Shadow\n * @see https://tailwindcss.com/docs/text-shadow\n */\n 'text-shadow': [{\n 'text-shadow': ['none', themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Text Shadow Color\n * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color\n */\n 'text-shadow-color': [{\n 'text-shadow': scaleColor()\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': scaleBlendMode()\n }],\n /**\n * Mask Clip\n * @see https://tailwindcss.com/docs/mask-clip\n */\n 'mask-clip': [{\n 'mask-clip': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n }, 'mask-no-clip'],\n /**\n * Mask Composite\n * @see https://tailwindcss.com/docs/mask-composite\n */\n 'mask-composite': [{\n mask: ['add', 'subtract', 'intersect', 'exclude']\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image-linear-pos': [{\n 'mask-linear': [isNumber]\n }],\n 'mask-image-linear-from-pos': [{\n 'mask-linear-from': scaleMaskImagePosition()\n }],\n 'mask-image-linear-to-pos': [{\n 'mask-linear-to': scaleMaskImagePosition()\n }],\n 'mask-image-linear-from-color': [{\n 'mask-linear-from': scaleColor()\n }],\n 'mask-image-linear-to-color': [{\n 'mask-linear-to': scaleColor()\n }],\n 'mask-image-t-from-pos': [{\n 'mask-t-from': scaleMaskImagePosition()\n }],\n 'mask-image-t-to-pos': [{\n 'mask-t-to': scaleMaskImagePosition()\n }],\n 'mask-image-t-from-color': [{\n 'mask-t-from': scaleColor()\n }],\n 'mask-image-t-to-color': [{\n 'mask-t-to': scaleColor()\n }],\n 'mask-image-r-from-pos': [{\n 'mask-r-from': scaleMaskImagePosition()\n }],\n 'mask-image-r-to-pos': [{\n 'mask-r-to': scaleMaskImagePosition()\n }],\n 'mask-image-r-from-color': [{\n 'mask-r-from': scaleColor()\n }],\n 'mask-image-r-to-color': [{\n 'mask-r-to': scaleColor()\n }],\n 'mask-image-b-from-pos': [{\n 'mask-b-from': scaleMaskImagePosition()\n }],\n 'mask-image-b-to-pos': [{\n 'mask-b-to': scaleMaskImagePosition()\n }],\n 'mask-image-b-from-color': [{\n 'mask-b-from': scaleColor()\n }],\n 'mask-image-b-to-color': [{\n 'mask-b-to': scaleColor()\n }],\n 'mask-image-l-from-pos': [{\n 'mask-l-from': scaleMaskImagePosition()\n }],\n 'mask-image-l-to-pos': [{\n 'mask-l-to': scaleMaskImagePosition()\n }],\n 'mask-image-l-from-color': [{\n 'mask-l-from': scaleColor()\n }],\n 'mask-image-l-to-color': [{\n 'mask-l-to': scaleColor()\n }],\n 'mask-image-x-from-pos': [{\n 'mask-x-from': scaleMaskImagePosition()\n }],\n 'mask-image-x-to-pos': [{\n 'mask-x-to': scaleMaskImagePosition()\n }],\n 'mask-image-x-from-color': [{\n 'mask-x-from': scaleColor()\n }],\n 'mask-image-x-to-color': [{\n 'mask-x-to': scaleColor()\n }],\n 'mask-image-y-from-pos': [{\n 'mask-y-from': scaleMaskImagePosition()\n }],\n 'mask-image-y-to-pos': [{\n 'mask-y-to': scaleMaskImagePosition()\n }],\n 'mask-image-y-from-color': [{\n 'mask-y-from': scaleColor()\n }],\n 'mask-image-y-to-color': [{\n 'mask-y-to': scaleColor()\n }],\n 'mask-image-radial': [{\n 'mask-radial': [isArbitraryVariable, isArbitraryValue]\n }],\n 'mask-image-radial-from-pos': [{\n 'mask-radial-from': scaleMaskImagePosition()\n }],\n 'mask-image-radial-to-pos': [{\n 'mask-radial-to': scaleMaskImagePosition()\n }],\n 'mask-image-radial-from-color': [{\n 'mask-radial-from': scaleColor()\n }],\n 'mask-image-radial-to-color': [{\n 'mask-radial-to': scaleColor()\n }],\n 'mask-image-radial-shape': [{\n 'mask-radial': ['circle', 'ellipse']\n }],\n 'mask-image-radial-size': [{\n 'mask-radial': [{\n closest: ['side', 'corner'],\n farthest: ['side', 'corner']\n }]\n }],\n 'mask-image-radial-pos': [{\n 'mask-radial-at': scalePosition()\n }],\n 'mask-image-conic-pos': [{\n 'mask-conic': [isNumber]\n }],\n 'mask-image-conic-from-pos': [{\n 'mask-conic-from': scaleMaskImagePosition()\n }],\n 'mask-image-conic-to-pos': [{\n 'mask-conic-to': scaleMaskImagePosition()\n }],\n 'mask-image-conic-from-color': [{\n 'mask-conic-from': scaleColor()\n }],\n 'mask-image-conic-to-color': [{\n 'mask-conic-to': scaleColor()\n }],\n /**\n * Mask Mode\n * @see https://tailwindcss.com/docs/mask-mode\n */\n 'mask-mode': [{\n mask: ['alpha', 'luminance', 'match']\n }],\n /**\n * Mask Origin\n * @see https://tailwindcss.com/docs/mask-origin\n */\n 'mask-origin': [{\n 'mask-origin': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n }],\n /**\n * Mask Position\n * @see https://tailwindcss.com/docs/mask-position\n */\n 'mask-position': [{\n mask: scaleBgPosition()\n }],\n /**\n * Mask Repeat\n * @see https://tailwindcss.com/docs/mask-repeat\n */\n 'mask-repeat': [{\n mask: scaleBgRepeat()\n }],\n /**\n * Mask Size\n * @see https://tailwindcss.com/docs/mask-size\n */\n 'mask-size': [{\n mask: scaleBgSize()\n }],\n /**\n * Mask Type\n * @see https://tailwindcss.com/docs/mask-type\n */\n 'mask-type': [{\n 'mask-type': ['alpha', 'luminance']\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image': [{\n mask: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // ---------------\n // --- Filters ---\n // ---------------\n /**\n * Filter\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: scaleBlur()\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeDropShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Drop Shadow Color\n * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color\n */\n 'drop-shadow-color': [{\n 'drop-shadow': scaleColor()\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Filter\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': scaleBlur()\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n // --------------\n // --- Tables ---\n // --------------\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': scaleUnambiguousSpacing()\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // ---------------------------------\n // --- Transitions and Animation ---\n // ---------------------------------\n /**\n * Transition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['', 'all', 'colors', 'opacity', 'shadow', 'transform', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Behavior\n * @see https://tailwindcss.com/docs/transition-behavior\n */\n 'transition-behavior': [{\n transition: ['normal', 'discrete']\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------\n // --- Transforms ---\n // ------------------\n /**\n * Backface Visibility\n * @see https://tailwindcss.com/docs/backface-visibility\n */\n backface: [{\n backface: ['hidden', 'visible']\n }],\n /**\n * Perspective\n * @see https://tailwindcss.com/docs/perspective\n */\n perspective: [{\n perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Perspective Origin\n * @see https://tailwindcss.com/docs/perspective-origin\n */\n 'perspective-origin': [{\n 'perspective-origin': scalePositionWithArbitrary()\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: scaleRotate()\n }],\n /**\n * Rotate X\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-x': [{\n 'rotate-x': scaleRotate()\n }],\n /**\n * Rotate Y\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-y': [{\n 'rotate-y': scaleRotate()\n }],\n /**\n * Rotate Z\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-z': [{\n 'rotate-z': scaleRotate()\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: scaleScale()\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': scaleScale()\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': scaleScale()\n }],\n /**\n * Scale Z\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-z': [{\n 'scale-z': scaleScale()\n }],\n /**\n * Scale 3D\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-3d': ['scale-3d'],\n /**\n * Skew\n * @see https://tailwindcss.com/docs/skew\n */\n skew: [{\n skew: scaleSkew()\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': scaleSkew()\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': scaleSkew()\n }],\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu']\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: scalePositionWithArbitrary()\n }],\n /**\n * Transform Style\n * @see https://tailwindcss.com/docs/transform-style\n */\n 'transform-style': [{\n transform: ['3d', 'flat']\n }],\n /**\n * Translate\n * @see https://tailwindcss.com/docs/translate\n */\n translate: [{\n translate: scaleTranslate()\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': scaleTranslate()\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': scaleTranslate()\n }],\n /**\n * Translate Z\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-z': [{\n 'translate-z': scaleTranslate()\n }],\n /**\n * Translate None\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-none': ['translate-none'],\n // ---------------------\n // --- Interactivity ---\n // ---------------------\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: scaleColor()\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: scaleColor()\n }],\n /**\n * Color Scheme\n * @see https://tailwindcss.com/docs/color-scheme\n */\n 'color-scheme': [{\n scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Field Sizing\n * @see https://tailwindcss.com/docs/field-sizing\n */\n 'field-sizing': [{\n 'field-sizing': ['fixed', 'content']\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['auto', 'none']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', '', 'y', 'x']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryVariable, isArbitraryValue]\n }],\n // -----------\n // --- SVG ---\n // -----------\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: ['none', ...scaleColor()]\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: ['none', ...scaleColor()]\n }],\n // ---------------------\n // --- Accessibility ---\n // ---------------------\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-x', 'border-w-y', 'border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-x', 'border-color-y', 'border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n translate: ['translate-x', 'translate-y', 'translate-none'],\n 'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n },\n orderSensitiveModifiers: ['*', '**', 'after', 'backdrop', 'before', 'details-content', 'file', 'first-letter', 'first-line', 'marker', 'placeholder', 'selection']\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n overrideConfigProperties(baseConfig.theme, override.theme);\n overrideConfigProperties(baseConfig.classGroups, override.classGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroupModifiers, override.conflictingClassGroupModifiers);\n overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers);\n mergeConfigProperties(baseConfig.theme, extend.theme);\n mergeConfigProperties(baseConfig.classGroups, extend.classGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroupModifiers, extend.conflictingClassGroupModifiers);\n mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers');\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n mergeArrayProperties(baseObject, mergeObject, key);\n }\n }\n};\nconst mergeArrayProperties = (baseObject, mergeObject, key) => {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue;\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { clsx, type ClassValue } from \"clsx\"\r\nimport { twMerge } from \"tailwind-merge\"\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs))\r\n}\r\n","/* eslint-disable import/order */\r\nimport { cn } from \"@/lib/utils\";\r\nimport * as React from \"react\";\r\n\r\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\r\n return (\r\n <div\r\n data-slot='table-container'\r\n className='relative w-full border border-[#dee1e7] rounded-[4px] overflow-hidden bg-[#ffffff]'\r\n >\r\n <table\r\n data-slot='table'\r\n className={cn(\"w-full caption-bottom\", className)}\r\n {...props}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\r\n return (\r\n <thead\r\n data-slot='table-header'\r\n className={cn(\"[&_tr]:border-b\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\r\n return (\r\n <tbody\r\n data-slot='table-body'\r\n className={cn(\"[&_tr:last-child]:border-0\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\r\n return (\r\n <tfoot\r\n data-slot='table-footer'\r\n className={cn(\r\n \"bg-muted/50 border-t font-medium [&>tr]:last:border-b-0\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\r\n return (\r\n <tr\r\n data-slot='table-row'\r\n className={cn(\r\n \"hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\r\n return (\r\n <th\r\n data-slot='table-head'\r\n className={cn(\r\n \"text-left align-middle font-medium whitespace-nowrap\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\r\n return (\r\n <td\r\n className={cn(\"whitespace-nowrap \", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableCaption({\r\n className,\r\n ...props\r\n}: React.ComponentProps<\"caption\">) {\r\n return (\r\n <caption\r\n data-slot='table-caption'\r\n className={cn(\"text-muted-foreground mt-4 text-sm\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport {\r\n Table,\r\n TableHeader,\r\n TableBody,\r\n TableFooter,\r\n TableHead,\r\n TableRow,\r\n TableCell,\r\n TableCaption,\r\n};\r\n","/* eslint-disable react/prop-types */\r\nimport classNames from \"classnames\";\r\nimport { ComponentProps } from \"react\";\r\nimport styles from \"./Table.module.scss\";\r\nimport {\r\n Table as ShadcnTable,\r\n TableBody as ShadcnTableBody,\r\n TableCaption as ShadcnTableCaption,\r\n TableCell as ShadcnTableCell,\r\n TableHead as ShadcnTableHead,\r\n TableHeader as ShadcnTableHeader,\r\n TableRow as ShadcnTableRow,\r\n} from \"@/components/ui/table\";\r\n\r\nexport const Table: React.FC<React.ComponentProps<typeof ShadcnTable>> = (\r\n props,\r\n) => {\r\n return (\r\n <ShadcnTable\r\n {...props}\r\n className={classNames(props.className)}\r\n />\r\n );\r\n};\r\n\r\nexport const TableBody: React.FC<\r\n React.ComponentProps<typeof ShadcnTableBody>\r\n> = (props) => {\r\n return (\r\n <ShadcnTableBody\r\n {...props}\r\n className={classNames(props.className, \"custom-table-body\")}\r\n />\r\n );\r\n};\r\n\r\nexport const TableCaption: React.FC<\r\n React.ComponentProps<typeof ShadcnTableCaption>\r\n> = (props) => {\r\n return (\r\n <ShadcnTableCaption\r\n {...props}\r\n className={classNames(props.className, \"custom-table-caption\")}\r\n />\r\n );\r\n};\r\ntype VerticalAlign = \"top\" | \"middle\" | \"bottom\";\r\n\r\ninterface CustomTableCellProps extends ComponentProps<typeof ShadcnTableCell> {\r\n vAlign?: VerticalAlign;\r\n}\r\n\r\nexport const TableCell: React.FC<CustomTableCellProps> = ({\r\n colSpan,\r\n align,\r\n className,\r\n ...rest\r\n}) => {\r\n const alignClass = align ? `align-${align}` : \"\";\r\n\r\n return (\r\n <ShadcnTableCell\r\n {...rest}\r\n colSpan={colSpan}\r\n className={classNames(className, alignClass)}\r\n />\r\n );\r\n};\r\nTableCell.displayName = \"CustomTableCell\";\r\n\r\nexport const TableHeader: React.FC<\r\n React.ComponentProps<typeof ShadcnTableHeader>\r\n> = (props) => {\r\n return (\r\n <ShadcnTableHeader\r\n {...props}\r\n className={classNames(props.className, \"custom-table-head\")}\r\n />\r\n );\r\n};\r\n\r\ninterface CustomTableHeadProps\r\n extends React.ComponentProps<typeof ShadcnTableHead> {\r\n variant?: \"primary\" | \"secondary\";\r\n}\r\n\r\nexport const TableHead: React.FC<CustomTableHeadProps> = ({\r\n variant = \"primary\",\r\n className,\r\n style,\r\n children,\r\n ...props\r\n}) => {\r\n const headerClass = classNames(\r\n styles.th,\r\n className,\r\n {\r\n [styles.primary]: variant === \"primary\",\r\n [styles.secondary]: variant === \"secondary\",\r\n },\r\n \"custom-table-header\",\r\n );\r\n\r\n return (\r\n <ShadcnTableHead\r\n {...props}\r\n className={headerClass}\r\n style={style}\r\n >\r\n {children}\r\n </ShadcnTableHead>\r\n );\r\n};\r\n\r\nexport const TableRow: React.FC<React.ComponentProps<typeof ShadcnTableRow>> = (\r\n props,\r\n) => {\r\n return (\r\n <ShadcnTableRow\r\n {...props}\r\n className={classNames(\r\n props.className,\r\n \"custom-table-row\",\r\n \"align-top\",\r\n styles.bottomBorder,\r\n )}\r\n />\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport { CSSProperties, ReactNode, useId, useRef, useState } from \"react\";\r\nimport styles from \"./Tooltip.module.scss\";\r\n\r\nexport interface TooltipProps {\r\n active?: boolean;\r\n content: ReactNode;\r\n hoverDelay?: number;\r\n preferredPosition?: \"above\" | \"below\" | \"mostSpace\" | \"cover\";\r\n zIndexOverride?: number;\r\n persistOnClick?: boolean;\r\n trigger?: \"hover\" | \"click\" | \"both\";\r\n children: ReactNode;\r\n className?: string;\r\n tooltipClassName?: string;\r\n}\r\n\r\nexport const Tooltip = ({\r\n active: controlledActive,\r\n content,\r\n hoverDelay = 300,\r\n preferredPosition = \"above\",\r\n zIndexOverride,\r\n trigger = \"hover\",\r\n children,\r\n className,\r\n tooltipClassName,\r\n}: TooltipProps) => {\r\n const [active, setActive] = useState(false);\r\n const [computedPosition, setComputedPosition] = useState(preferredPosition);\r\n const hoverTimeout = useRef<number | null>(null);\r\n const persist = useRef(false);\r\n const triggerRef = useRef<HTMLSpanElement | null>(null);\r\n\r\n const isActive = controlledActive !== undefined ? controlledActive : active;\r\n const canTriggerHover = trigger === \"hover\" || trigger === \"both\";\r\n const canTriggerClick = trigger === \"click\" || trigger === \"both\";\r\n\r\n const tooltipId = useId();\r\n\r\n const positionClass = styles[`tooltip-position-${computedPosition}`] || \"\";\r\n\r\n const wrapperClassName = classNames(styles.tooltipWrapper, className);\r\n const tooltipClass = classNames(\r\n styles.tooltip,\r\n positionClass,\r\n tooltipClassName,\r\n );\r\n\r\n const style: CSSProperties = {\r\n zIndex: zIndexOverride ?? 400,\r\n position: \"absolute\",\r\n };\r\n\r\n const handleMouseEnter = () => {\r\n if (!canTriggerHover || controlledActive !== undefined) return;\r\n\r\n if (hoverTimeout.current) clearTimeout(hoverTimeout.current);\r\n\r\n hoverTimeout.current = window.setTimeout(() => {\r\n if (preferredPosition === \"mostSpace\" && triggerRef.current) {\r\n const rect = triggerRef.current.getBoundingClientRect();\r\n const spaceAbove = rect.top;\r\n const spaceBelow = window.innerHeight - rect.bottom;\r\n\r\n setComputedPosition(spaceBelow >= spaceAbove ? \"below\" : \"above\");\r\n } else {\r\n setComputedPosition(preferredPosition);\r\n }\r\n\r\n setActive(true);\r\n }, hoverDelay);\r\n };\r\n\r\n const handleMouseLeave = () => {\r\n if (!canTriggerHover || controlledActive !== undefined) return;\r\n\r\n if (hoverTimeout.current) clearTimeout(hoverTimeout.current);\r\n\r\n hoverTimeout.current = window.setTimeout(() => {\r\n if (!persist.current) {\r\n setActive(false);\r\n }\r\n }, 50);\r\n };\r\n\r\n const handleClick = () => {\r\n if (!canTriggerClick || controlledActive !== undefined) return;\r\n\r\n persist.current = !persist.current;\r\n\r\n if (preferredPosition === \"mostSpace\" && triggerRef.current) {\r\n const rect = triggerRef.current.getBoundingClientRect();\r\n const spaceAbove = rect.top;\r\n const spaceBelow = window.innerHeight - rect.bottom;\r\n\r\n setComputedPosition(spaceBelow >= spaceAbove ? \"below\" : \"above\");\r\n } else {\r\n setComputedPosition(preferredPosition);\r\n }\r\n\r\n setActive(persist.current);\r\n };\r\n\r\n return (\r\n <span\r\n ref={triggerRef}\r\n className={wrapperClassName}\r\n onMouseEnter={handleMouseEnter}\r\n onMouseLeave={handleMouseLeave}\r\n onClick={handleClick}\r\n aria-describedby={isActive ? tooltipId : undefined}\r\n tabIndex={0}\r\n style={{ display: \"inline-block\", position: \"relative\" }}\r\n >\r\n {children}\r\n\r\n {isActive && (\r\n <div\r\n id={tooltipId}\r\n role='tooltip'\r\n className={tooltipClass}\r\n style={style}\r\n >\r\n {content}\r\n </div>\r\n )}\r\n </span>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport React from \"react\";\r\nimport { Typography } from \"../Typography/Typography\";\r\nimport styles from \"./TopBar.module.scss\";\r\n\r\ninterface Section {\r\n id: number | string;\r\n title: string;\r\n component: React.ReactNode;\r\n}\r\n\r\ninterface TopBarProps {\r\n sections: Section[];\r\n activeTab?: number | string;\r\n onTabSelect: (id: number | string) => void;\r\n isStretched?: boolean;\r\n}\r\n\r\nexport const TopBar = ({\r\n sections,\r\n activeTab,\r\n onTabSelect,\r\n isStretched = true,\r\n}: TopBarProps) => {\r\n return (\r\n <div>\r\n <div className={styles.topBar}>\r\n {sections.map((section) => (\r\n <div\r\n key={section.id}\r\n className={classNames(\r\n styles.section,\r\n isStretched && styles.scretched,\r\n activeTab === section.id && styles.active,\r\n )}\r\n onClick={() => onTabSelect(section.id)}\r\n >\r\n <Typography\r\n variant={\"heading-xs\"}\r\n className={styles.sm}\r\n >\r\n {section.title}\r\n </Typography>\r\n <Typography\r\n variant={\"heading-md\"}\r\n className={styles.md}\r\n >\r\n {section.title}\r\n </Typography>\r\n </div>\r\n ))}\r\n </div>\r\n {sections.find((section) => section.id === activeTab)?.component ?? (\r\n <Typography variant='body-lg'>Not Found</Typography>\r\n )}\r\n </div>\r\n );\r\n};\r\n","// TextArea.tsx\r\nimport classNames from \"classnames\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { BaseInputWrapper } from \"./BaseInputWrapper\";\r\nimport styles from \"./Input.module.scss\";\r\n\r\ninterface TextAreaProps\r\n extends Omit<\r\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\r\n \"prefix\" | \"postfix\"\r\n > {\r\n label?: string;\r\n error?: string;\r\n helperText?: string;\r\n prefix?: React.ReactNode;\r\n postfix?: React.ReactNode;\r\n}\r\n\r\nexport const TextArea = React.forwardRef<HTMLTextAreaElement, TextAreaProps>(\r\n (\r\n {\r\n label,\r\n error,\r\n helperText,\r\n prefix,\r\n postfix,\r\n disabled,\r\n readOnly,\r\n className,\r\n onChange,\r\n value,\r\n defaultValue,\r\n rows = 4,\r\n ...rest\r\n },\r\n ref,\r\n ) => {\r\n const isControlled = value !== undefined;\r\n const [internalValue, setInternalValue] = useState<string>(\r\n defaultValue?.toString() || \"\",\r\n );\r\n\r\n useEffect(() => {\r\n if (!isControlled && defaultValue !== undefined) {\r\n setInternalValue(defaultValue.toString());\r\n }\r\n }, [defaultValue]);\r\n\r\n const currentValue = isControlled ? value : internalValue;\r\n\r\n const handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\r\n const val = e.target.value;\r\n\r\n if (!isControlled) setInternalValue(val);\r\n\r\n onChange?.(e);\r\n };\r\n\r\n return (\r\n <BaseInputWrapper\r\n label={label}\r\n error={error}\r\n helperText={helperText}\r\n prefix={prefix}\r\n postfix={postfix}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n >\r\n <textarea\r\n ref={ref}\r\n className={classNames(styles.input, className)}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n value={currentValue}\r\n rows={rows}\r\n onChange={handleChange}\r\n {...rest}\r\n />\r\n </BaseInputWrapper>\r\n );\r\n },\r\n);\r\n\r\nTextArea.displayName = \"TextArea\";\r\nexport type { TextAreaProps };\r\n"],"names":["hasOwn","classNames","classes","i","arg","appendClass","parseValue","key","value","newClass","module","Typography","variant","className","children","weight","variantClass","styles","weightClass","jsx","t","e","this","n","s","u","a","o","c","f","h","d","l","$","y","M","m","r","v","g","D","p","S","_","w","O","b","k","formatDeadline","date","day","dayjs","dayOfMonth","suffix","Banner","color","title","bgPattern","deadline","bgPatternFinished","buttonColor","onClick","isFinished","setIsFinished","useState","timeLeft","setTimeLeft","useEffect","deadlineDate","calculateTimeUnits","milliseconds","updateCountdown","now","remaining","interval","renderTimerCell","label","jsxs","Button","state","size","selected","disabled","rest","buttonClass","toKebabCase","string","toCamelCase","match","p1","p2","toPascalCase","camelCase","mergeClasses","index","array","hasA11yProp","props","prop","defaultAttributes","Icon","forwardRef","strokeWidth","absoluteStrokeWidth","iconNode","ref","createElement","tag","attrs","createLucideIcon","iconName","Component","__iconNode","CheckCheck","ChevronDown","ChevronUp","CircleAlert","OctagonAlert","TriangleAlert","X","InlineError","Checkbox","error","helperText","indeterminate","onChange","useRef","handleLabelClick","event","NavigationItem","icon","secondaryIcon","collapsed","active","isParentNode","Collapse","activeItemId","item","sideArrowIndex","_a","child","isOpen","setIsOpen","handleToggle","_b","subRoute","CourseCollapse","Dropdown","React","readOnly","placeholder","options","onFocus","onBlur","focusedIndex","setFocusedIndex","dropdownRef","optionsRef","selectedOption","option","handleOptionSelect","handleKeyDown","nextIndex","prevIndex","handleClickOutside","el","EmptyBase","EmptyTitle","Fragment","EmptyContext","EmptyContent","EmptyButtonContent","EmptyPrimaryButton","EmptySecondaryButton","EmptyImage","src","alt","Empty","FormItemContext","createContext","useFormItem","useContext","FormItem","Label","Input","Message","IconButton","BaseInputWrapper","prefix","postfix","maskRegex","textPrefix","handleChange","handleFocus","newVal","__insertCSS","code","head","style","getAsset","type","SuccessIcon","InfoIcon","WarningIcon","ErrorIcon","bars","Loader","visible","CloseIcon","useIsDocumentHidden","isDocumentHidden","setIsDocumentHidden","callback","toastsCounter","Observer","subscriber","data","_data_id","message","id","alreadyExists","toast","dismissible","promise","shouldDismiss","result","originalPromise","response","isHttpResponse","promiseData","description","toastSettings","unwrap","resolve","reject","ToastState","toastFunction","basicToast","getHistory","getToasts","isAction","action","VISIBLE_TOASTS_AMOUNT","VIEWPORT_OFFSET","MOBILE_VIEWPORT_OFFSET","TOAST_LIFETIME","TOAST_WIDTH","GAP","SWIPE_THRESHOLD","TIME_BEFORE_UNMOUNT","cn","getDefaultSwipeDirections","position","x","directions","Toast","_toast_classNames","_toast_classNames1","_toast_classNames2","_toast_classNames3","_toast_classNames4","_toast_classNames5","_toast_classNames6","_toast_classNames7","_toast_classNames8","ToasterInvert","unstyled","interacting","setHeights","visibleToasts","heights","toasts","expanded","removeToast","defaultRichColors","closeButtonFromToaster","cancelButtonStyle","actionButtonStyle","descriptionClassName","durationFromToaster","gap","expandByDefault","icons","closeButtonAriaLabel","swipeDirection","setSwipeDirection","swipeOutDirection","setSwipeOutDirection","mounted","setMounted","removed","setRemoved","swiping","setSwiping","swipeOut","setSwipeOut","isSwiped","setIsSwiped","offsetBeforeRemove","setOffsetBeforeRemove","initialHeight","setInitialHeight","remainingTime","dragStartTime","toastRef","isFront","isVisible","toastType","toastClassname","toastDescriptionClassname","heightIndex","height","closeButton","_toast_closeButton","duration","closeTimerStartTimeRef","offset","lastCloseTimerStartTimeRef","pointerStartRef","toastsHeightBefore","prev","curr","reducerIndex","invert","toastNode","originalHeight","newHeight","deleteToast","timeoutId","elapsedTime","getLoadingIcon","_toast_richColors","_icons_close","_toastRef_current","_toastRef_current1","_dragStartTime_current","swipeAmountX","swipeAmountY","timeTaken","swipeAmount","velocity","_toastRef_current2","_toastRef_current3","_window_getSelection","yDelta","xDelta","_props_swipeDirections","swipeDirections","getDampening","delta","dampenedDelta","getDocumentDirection","dirAttribute","assignOffset","defaultOffset","mobileOffset","isMobile","defaultValue","assignAll","Toaster","hotkey","expand","theme","richColors","toastOptions","dir","containerAriaLabel","setToasts","possiblePositions","setExpanded","setInteracting","actualTheme","setActualTheme","listRef","hotkeyLabel","lastFocusedElementRef","isFocusWithinRef","toastToRemove","_toasts_find","ReactDOM","indexOfExistingToast","darkMediaQuery","matches","_listRef_current","_listRef_current1","_heights_","_toastOptions_duration","_toastOptions_closeButton","CustomToaster","text","ModalBase","open","onClose","primaryButtonProps","secondaryButtonProps","tone","fullHeight","toneClass","createPortal","Section","Modal","showModal","container","root","createRoot","unmount","handleOk","handleCancel","ModalAPI","opts","PageHeader","ProgressLine","percent","RadioButton","name","SectionHeader","extra","Cell","cellType","align","cellClass","clsx","CLASS_PART_SEPARATOR","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","classParts","getGroupRecursive","getGroupIdForArbitraryProperty","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","classGroupFromNextClassPart","classRest","validator","arbitraryPropertyRegex","arbitraryPropertyClassName","property","classGroups","processClassesRecursively","classGroup","classDefinition","classPartObjectToEdit","getPart","isThemeGetter","path","currentClassPartObject","pathPart","func","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","IMPORTANT_MODIFIER","MODIFIER_SEPARATOR","MODIFIER_SEPARATOR_LENGTH","createParseClassName","experimentalParseClassName","parseClassName","modifiers","bracketDepth","parenDepth","modifierStart","postfixModifierPosition","currentCharacter","baseClassNameWithImportantModifier","baseClassName","stripImportantModifier","hasImportantModifier","maybePostfixModifierPosition","fullPrefix","parseClassNameOriginal","createSortModifiers","orderSensitiveModifiers","modifier","sortedModifiers","unsortedModifiers","createConfigUtils","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","getClassGroupId","getConflictingClassGroupIds","sortModifiers","classGroupsInConflict","originalClassName","isExternal","variantModifier","modifierId","classId","conflictGroups","group","twJoin","argument","resolvedValue","toValue","mix","createTailwindMerge","createConfigFirst","createConfigRest","cacheGet","cacheSet","functionToCall","initTailwindMerge","previousConfig","createConfigCurrent","tailwindMerge","cachedResult","fromTheme","themeGetter","arbitraryValueRegex","arbitraryVariableRegex","fractionRegex","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isFraction","isNumber","isInteger","isPercent","isTshirtSize","isAny","isLengthOnly","isNever","isShadow","isImage","isAnyNonArbitrary","isArbitraryValue","isArbitraryVariable","isArbitrarySize","getIsArbitraryValue","isLabelSize","isArbitraryLength","isLabelLength","isArbitraryNumber","isLabelNumber","isArbitraryPosition","isLabelPosition","isArbitraryImage","isLabelImage","isArbitraryShadow","isLabelShadow","isArbitraryVariableLength","getIsArbitraryVariable","isArbitraryVariableFamilyName","isLabelFamilyName","isArbitraryVariablePosition","isArbitraryVariableSize","isArbitraryVariableImage","isArbitraryVariableShadow","testLabel","testValue","shouldMatchNoLabel","getDefaultConfig","themeColor","themeFont","themeText","themeFontWeight","themeTracking","themeLeading","themeBreakpoint","themeContainer","themeSpacing","themeRadius","themeShadow","themeInsetShadow","themeTextShadow","themeDropShadow","themeBlur","themePerspective","themeAspect","themeEase","themeAnimate","scaleBreak","scalePosition","scalePositionWithArbitrary","scaleOverflow","scaleOverscroll","scaleUnambiguousSpacing","scaleInset","scaleGridTemplateColsRows","scaleGridColRowStartAndEnd","scaleGridColRowStartOrEnd","scaleGridAutoColsRows","scaleAlignPrimaryAxis","scaleAlignSecondaryAxis","scaleMargin","scaleSizing","scaleColor","scaleBgPosition","scaleBgRepeat","scaleBgSize","scaleGradientStopPosition","scaleRadius","scaleBorderWidth","scaleLineStyle","scaleBlendMode","scaleMaskImagePosition","scaleBlur","scaleRotate","scaleScale","scaleSkew","scaleTranslate","twMerge","inputs","Table","TableHeader","TableBody","TableRow","TableHead","TableCell","TableCaption","ShadcnTable","ShadcnTableBody","ShadcnTableCaption","colSpan","alignClass","ShadcnTableCell","ShadcnTableHeader","headerClass","ShadcnTableHead","ShadcnTableRow","Tooltip","controlledActive","content","hoverDelay","preferredPosition","zIndexOverride","trigger","tooltipClassName","setActive","computedPosition","setComputedPosition","hoverTimeout","persist","triggerRef","isActive","canTriggerHover","canTriggerClick","tooltipId","useId","positionClass","wrapperClassName","tooltipClass","rect","spaceAbove","spaceBelow","TopBar","sections","activeTab","onTabSelect","isStretched","section","TextArea","rows","isControlled","internalValue","setInternalValue","currentValue","val"],"mappings":"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","x_google_ignoreList":[0,2,6,7,8,9,10,11,12,13,14,15,16,29,39,40]}