stp-ui-kit 0.0.96 → 0.0.98

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/form/InlineError/InlineError.tsx","../src/components/form/Checkbox/Checkbox.tsx","../src/components/form/FormItem/FormItemContext.tsx","../src/components/form/FormItem/FormItem.tsx","../src/components/form/Input/BaseInputWrapper.tsx","../src/components/form/Input/Input.tsx","../src/components/form/Input/TextArea.tsx","../src/components/form/RadioButton/RadioButton.tsx","../src/components/form/Select/Select.tsx","../node_modules/dayjs/dayjs.min.js","../node_modules/dayjs/locale/en.js","../node_modules/dayjs/locale/fr.js","../node_modules/dayjs/locale/kk.js","../node_modules/dayjs/locale/ru.js","../node_modules/dayjs/plugin/isSameOrAfter.js","../node_modules/dayjs/plugin/isSameOrBefore.js","../node_modules/dayjs/plugin/localeData.js","../node_modules/dayjs/plugin/localizedFormat.js","../node_modules/dayjs/plugin/weekday.js","../src/lib/dayjs.ts","../src/components/display/Avatar/fallbackAvatar.svg?react","../src/components/display/Avatar/Avatar.tsx","../src/components/feedback/Message/CustomToaster.tsx","../src/components/feedback/Message/Message.tsx","../src/components/feedback/Modal/Modal.tsx","../src/components/feedback/Modal/ModalApi.tsx","../src/components/feedback/Spinner/Spinner.tsx","../src/components/feedback/Tooltip/Tooltip.tsx","../src/components/feedback/Window/Window.tsx","../src/components/feedback/Window/WindowApi.tsx","../src/components/display/Button/Button.tsx","../src/components/display/Dropdown/Dropdown.tsx","../src/components/display/Empty/Empty.tsx","../src/components/display/IconButton/IconButton.tsx","../src/components/display/Typography/Typography.tsx","../src/components/display/SvgStyleWrapper/SvgStyleWrapper.tsx","../src/components/display/Icon/Icon.tsx","../src/components/display/OptionList/OptionList.tsx","../src/components/display/Illustration/Illustration.tsx","../src/components/display/Chip/Chip.tsx","../src/lib/useIsMobile.ts","../src/components/form/Calendar/CalendarDay/CalendarDay.tsx","../src/components/form/Calendar/CalendarDayHeader/CalendarDayHeader.tsx","../src/components/form/Calendar/dateUtils.ts","../src/components/form/Calendar/CalendarMonth/CalendarMonth.tsx","../src/components/form/Calendar/Calendar.tsx","../src/components/layout/Banner/utils/utils.ts","../src/components/layout/Banner/Banner.tsx","../src/components/layout/Drawer/Drawer.tsx","../src/components/layout/PageHeader/PageHeader.tsx","../src/components/layout/SectionHeader/SectionHeader.tsx","../src/components/layout/TopBar/TopBar.tsx","../src/components/layout/Page/Page.tsx","../src/components/layout/Section/Section.tsx","../src/components/layout/SectionWrapper/SectionWrapper.tsx","../src/components/layout/ButtonGroup/ButtonGroup.tsx","../src/components/navigation/NavigationItem/NavigationItem.tsx","../src/components/navigation/Collapse/Collapse.tsx","../src/components/navigation/CourseCollapse/CourseCollapse.tsx","../src/components/navigation/Link/Link.tsx","../src/components/data/ProgressLine/ProgressLine.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/data/Table/Table.tsx","../src/components/data/Table/Cell.tsx","../src/components/data/ProgressBarAlternative/ProgressBarAlternative.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 { 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, { ReactNode, 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?: ReactNode;\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 { 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 { 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","// 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, styles.textarea)}\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","import classNames from \"classnames\";\r\nimport { ReactNode } from \"react\";\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?: ReactNode;\r\n error?: string;\r\n helperText?: string;\r\n name: string;\r\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\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 classNames from \"classnames\";\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { InlineError } from \"../InlineError/InlineError\";\r\nimport styles from \"./Select.module.scss\";\r\n\r\ninterface SelectOption {\r\n label: string;\r\n value: string | number;\r\n disabled?: boolean;\r\n}\r\n\r\ninterface SelectProps {\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: SelectOption[];\r\n onChange?: (value: string | number) => void;\r\n onFocus?: () => void;\r\n onBlur?: () => void;\r\n}\r\n\r\nexport const Select = React.forwardRef<HTMLDivElement, SelectProps>(\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: SelectOption) => {\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 onClick={handleToggle}\r\n >\r\n <div\r\n ref={ref}\r\n className={classNames(styles.trigger)}\r\n tabIndex={disabled || readOnly ? -1 : 0}\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={classNames(styles.value, {\r\n [styles.placeholder]: !selectedOption\r\n })}>\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='1'\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\nSelect.displayName = \"Dropdown\";\r\nexport type { SelectProps, SelectOption };\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}));","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_en=n()}(this,(function(){\"use strict\";return{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(e){var n=[\"th\",\"st\",\"nd\",\"rd\"],t=e%100;return\"[\"+e+(n[(t-20)%10]||n[t]||n[0])+\"]\"}}}));","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_fr=n(e.dayjs)}(this,(function(e){\"use strict\";function n(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var t=n(e),i={name:\"fr\",weekdays:\"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi\".split(\"_\"),weekdaysShort:\"dim._lun._mar._mer._jeu._ven._sam.\".split(\"_\"),weekdaysMin:\"di_lu_ma_me_je_ve_sa\".split(\"_\"),months:\"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre\".split(\"_\"),monthsShort:\"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.\".split(\"_\"),weekStart:1,yearStart:4,formats:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},relativeTime:{future:\"dans %s\",past:\"il y a %s\",s:\"quelques secondes\",m:\"une minute\",mm:\"%d minutes\",h:\"une heure\",hh:\"%d heures\",d:\"un jour\",dd:\"%d jours\",M:\"un mois\",MM:\"%d mois\",y:\"un an\",yy:\"%d ans\"},ordinal:function(e){return\"\"+e+(1===e?\"er\":\"\")}};return t.default.locale(i,null,!0),i}));","!function(_,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],e):(_=\"undefined\"!=typeof globalThis?globalThis:_||self).dayjs_locale_kk=e(_.dayjs)}(this,(function(_){\"use strict\";function e(_){return _&&\"object\"==typeof _&&\"default\"in _?_:{default:_}}var t=e(_),d={name:\"kk\",weekdays:\"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі\".split(\"_\"),weekdaysShort:\"жек_дүй_сей_сәр_бей_жұм_сен\".split(\"_\"),weekdaysMin:\"жк_дй_сй_ср_бй_жм_сн\".split(\"_\"),months:\"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан\".split(\"_\"),monthsShort:\"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел\".split(\"_\"),weekStart:1,relativeTime:{future:\"%s ішінде\",past:\"%s бұрын\",s:\"бірнеше секунд\",m:\"бір минут\",mm:\"%d минут\",h:\"бір сағат\",hh:\"%d сағат\",d:\"бір күн\",dd:\"%d күн\",M:\"бір ай\",MM:\"%d ай\",y:\"бір жыл\",yy:\"%d жыл\"},ordinal:function(_){return _},formats:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"}};return t.default.locale(d,null,!0),d}));","!function(_,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],t):(_=\"undefined\"!=typeof globalThis?globalThis:_||self).dayjs_locale_ru=t(_.dayjs)}(this,(function(_){\"use strict\";function t(_){return _&&\"object\"==typeof _&&\"default\"in _?_:{default:_}}var e=t(_),n=\"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря\".split(\"_\"),s=\"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь\".split(\"_\"),r=\"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.\".split(\"_\"),o=\"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.\".split(\"_\"),i=/D[oD]?(\\[[^[\\]]*\\]|\\s)+MMMM?/;function d(_,t,e){var n,s;return\"m\"===e?t?\"минута\":\"минуту\":_+\" \"+(n=+_,s={mm:t?\"минута_минуты_минут\":\"минуту_минуты_минут\",hh:\"час_часа_часов\",dd:\"день_дня_дней\",MM:\"месяц_месяца_месяцев\",yy:\"год_года_лет\"}[e].split(\"_\"),n%10==1&&n%100!=11?s[0]:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?s[1]:s[2])}var u=function(_,t){return i.test(t)?n[_.month()]:s[_.month()]};u.s=s,u.f=n;var a=function(_,t){return i.test(t)?r[_.month()]:o[_.month()]};a.s=o,a.f=r;var m={name:\"ru\",weekdays:\"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота\".split(\"_\"),weekdaysShort:\"вск_пнд_втр_срд_чтв_птн_сбт\".split(\"_\"),weekdaysMin:\"вс_пн_вт_ср_чт_пт_сб\".split(\"_\"),months:u,monthsShort:a,weekStart:1,yearStart:4,formats:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY г.\",LLL:\"D MMMM YYYY г., H:mm\",LLLL:\"dddd, D MMMM YYYY г., H:mm\"},relativeTime:{future:\"через %s\",past:\"%s назад\",s:\"несколько секунд\",m:d,mm:d,h:\"час\",hh:d,d:\"день\",dd:d,M:\"месяц\",MM:d,y:\"год\",yy:d},ordinal:function(_){return _},meridiem:function(_){return _<4?\"ночи\":_<12?\"утра\":_<17?\"дня\":\"вечера\"}};return e.default.locale(m,null,!0),m}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrAfter=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)}}}));","!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrBefore=i()}(this,(function(){\"use strict\";return function(e,i){i.prototype.isSameOrBefore=function(e,i){return this.isSame(e,i)||this.isBefore(e,i)}}}));","!function(n,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).dayjs_plugin_localeData=e()}(this,(function(){\"use strict\";return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.slice(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return{months:function(e){return e?e.format(\"MMMM\"):u(n,\"months\")},monthsShort:function(e){return e?e.format(\"MMM\"):u(n,\"monthsShort\",\"months\",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format(\"dddd\"):u(n,\"weekdays\")},weekdaysMin:function(e){return e?e.format(\"dd\"):u(n,\"weekdaysMin\",\"weekdays\",2)},weekdaysShort:function(e){return e?e.format(\"ddd\"):u(n,\"weekdaysShort\",\"weekdays\",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return{firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),\"months\")},t.monthsShort=function(){return u(i(),\"monthsShort\",\"months\",3)},t.weekdays=function(n){return u(i(),\"weekdays\",null,null,n)},t.weekdaysShort=function(n){return u(i(),\"weekdaysShort\",\"weekdays\",3,n)},t.weekdaysMin=function(n){return u(i(),\"weekdaysMin\",\"weekdays\",2,n)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_localizedFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"};return function(t,o,n){var r=o.prototype,i=r.format;n.en.formats=e,r.format=function(t){void 0===t&&(t=\"YYYY-MM-DDTHH:mm:ssZ\");var o=this.$locale().formats,n=function(t,o){return t.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var i=r&&r.toUpperCase();return n||o[r]||e[r]||o[i].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,o){return t||o.slice(1)}))}))}(t,void 0===o?{}:o);return i.call(this,n)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekday=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.weekday=function(e){var t=this.$locale().weekStart||0,i=this.$W,n=(i<t?i+7:i)-t;return this.$utils().u(e)?n:this.subtract(n,\"day\").add(e,\"day\")}}}));","import dayjs from \"dayjs\";\r\nimport \"dayjs/locale/en\";\r\nimport \"dayjs/locale/fr\";\r\nimport \"dayjs/locale/kk\";\r\nimport \"dayjs/locale/ru\";\r\nimport isSameOrAfter from \"dayjs/plugin/isSameOrAfter\";\r\nimport isSameOrBefore from \"dayjs/plugin/isSameOrBefore\";\r\nimport localeData from \"dayjs/plugin/localeData\";\r\nimport localizedFormat from \"dayjs/plugin/localizedFormat\";\r\nimport weekday from \"dayjs/plugin/weekday\";\r\n\r\ndayjs.extend(localizedFormat);\r\ndayjs.extend(localeData);\r\ndayjs.extend(weekday);\r\ndayjs.extend(isSameOrAfter);\r\ndayjs.extend(isSameOrBefore);\r\n\r\nexport default dayjs;\r\nexport type { Dayjs } from \"dayjs\";\r\n","import * as React from \"react\";\nconst SvgFallbackAvatar = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 96 96\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"g\", { clipPath: \"url(#clip0_2167_12338)\" }, /* @__PURE__ */ React.createElement(\"mask\", { id: \"mask0_2167_12338\", style: {\n maskType: \"luminance\"\n}, maskUnits: \"userSpaceOnUse\", x: 0, y: 0, width: 96, height: 96 }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M96 48C96 21.4903 74.5097 0 48 0C21.4903 0 0 21.4903 0 48C0 74.5097 21.4903 96 48 96C74.5097 96 96 74.5097 96 48Z\", fill: \"white\" })), /* @__PURE__ */ React.createElement(\"g\", { mask: \"url(#mask0_2167_12338)\" }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M95.9995 0H-0.000534058V96H95.9995V0Z\", fill: \"#A78BFA\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M58.0874 121.564C84.9299 110.17 97.4534 79.1729 86.0594 52.3304C74.6654 25.4879 43.6687 12.9644 16.8261 24.3583C-10.0164 35.7523 -22.5399 66.7491 -11.1459 93.5916C0.248056 120.434 31.2448 132.958 58.0874 121.564Z\", fill: \"#E879F9\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M26.1158 61.0025C25.7926 63.6349 26.8769 66.3306 29.1302 68.4968C31.3835 70.6629 34.6212 72.1219 38.131 72.5529C41.6409 72.9838 45.1354 72.3514 47.8458 70.7948C50.5562 69.2381 52.2604 66.8847 52.5837 64.2523\", fill: \"black\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M29.0638 47.9304C29.2433 46.4686 28.5001 45.1744 27.4037 45.0398C26.3074 44.9052 25.2731 45.9811 25.0936 47.4429C24.9142 48.9047 25.6574 50.1988 26.7537 50.3334C27.8501 50.468 28.8843 49.3921 29.0638 47.9304Z\", fill: \"black\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M55.5317 51.1805C55.7112 49.7187 54.9679 48.4246 53.8716 48.29C52.7752 48.1553 51.741 49.2312 51.5615 50.693C51.382 52.1548 52.1253 53.4489 53.2216 53.5835C54.3179 53.7182 55.3522 52.6423 55.5317 51.1805Z\", fill: \"black\" }))), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"clipPath\", { id: \"clip0_2167_12338\" }, /* @__PURE__ */ React.createElement(\"rect\", { width: 96, height: 96, fill: \"white\" }))));\nexport default SvgFallbackAvatar;\n","import React from \"react\";\r\nimport { default as AvatarFallback } from \"./fallbackAvatar.svg?react\";\r\n\r\nexport interface AvatarProps extends React.ImgHTMLAttributes<HTMLImageElement> {\r\n size?: number;\r\n image?: string | null;\r\n}\r\n\r\nexport const Avatar = ({ image, size = 36, style, ...rest }: AvatarProps) => {\r\n if (!image) {\r\n return (\r\n <AvatarFallback\r\n style={{\r\n width: size,\r\n height: size,\r\n borderRadius: \"50%\",\r\n cursor: \"pointer\",\r\n ...style,\r\n }}\r\n />\r\n );\r\n }\r\n return (\r\n <img\r\n src={image}\r\n alt='user_avatar'\r\n width={size}\r\n height={size}\r\n style={{\r\n borderRadius: \"50%\",\r\n objectFit: \"cover\",\r\n cursor: \"pointer\",\r\n ...style,\r\n }}\r\n {...rest}\r\n />\r\n );\r\n};\r\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 { CircleCheck, OctagonAlert, TriangleAlert, X } from \"lucide-react\";\r\nimport { toast } from \"sonner\";\r\nimport { IconButton } from \"@/components/display\";\r\nimport styles from \"./Message.module.scss\";\r\n\r\ntype MessageType = \"default\" | \"warning\" | \"error\" | \"success\";\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 success(text: string) {\r\n toast.custom((t) => (\r\n <div className={`${styles.customToast} ${styles.success}`}>\r\n <div className={styles.content}>\r\n <CircleCheck className={styles.successIcon} />\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 } from \"lucide-react\";\r\nimport React, { HTMLAttributes, PropsWithChildren, ReactNode } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport { Button, ButtonProps, Typography } from \"@/components\";\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 size?: \"sm\" | \"lg\" | \"md\";\r\n}\r\n\r\nconst ModalBase = ({\r\n open,\r\n title,\r\n primaryButtonProps,\r\n secondaryButtonProps = [],\r\n tone = \"default\",\r\n fullHeight = false,\r\n children,\r\n size = \"md\",\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 <Typography>\r\n <div className={styles.modalLayout}>\r\n <div\r\n className={`${styles.modalContainer} ${toneClass} ${styles[size]} ${fullHeight && styles.fullHeight}`}\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\" && (\r\n <TriangleAlert className={styles.warning} />\r\n )}\r\n <Typography variant='heading-sm'>{title}</Typography>\r\n </div>\r\n </div>\r\n\r\n <div className={classNames(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 </Typography>,\r\n document.body,\r\n );\r\n};\r\n\r\nconst Section = ({\r\n children,\r\n className,\r\n ...rest\r\n}: PropsWithChildren<HTMLAttributes<HTMLDivElement>>) => (\r\n <section\r\n className={classNames(styles.section, className)}\r\n {...rest}\r\n >\r\n {children}\r\n </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 \"./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 styles from \"./Spinner.module.scss\";\r\n\r\ninterface SpinnerProps {\r\n size?: number;\r\n}\r\n\r\nexport const Spinner = ({ size = 20 }: SpinnerProps) => {\r\n return (\r\n <svg\r\n className={styles.spin}\r\n width={size}\r\n height={size}\r\n viewBox='0 0 50 50'\r\n >\r\n <circle\r\n cx='25'\r\n cy='25'\r\n r='20'\r\n strokeWidth='6'\r\n fill='none'\r\n strokeLinecap='round'\r\n strokeDasharray='100'\r\n strokeDashoffset='60'\r\n />\r\n </svg>\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 { OctagonAlert, TriangleAlert, X } from \"lucide-react\";\r\nimport React, { HTMLAttributes, PropsWithChildren, ReactNode } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport { Button, ButtonProps, IconButton, Typography } from \"@/components\";\r\nimport styles from \"./Window.module.scss\";\r\n\r\nexport interface WindowProps {\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 size?: \"sm\" | \"lg\" | \"md\";\r\n}\r\n\r\nconst WindowBase = ({\r\n open,\r\n onClose,\r\n title,\r\n primaryButtonProps,\r\n secondaryButtonProps,\r\n tone = \"default\",\r\n fullHeight = false,\r\n children,\r\n size = \"md\",\r\n}: WindowProps) => {\r\n if (!open) return null;\r\n\r\n const toneClass = styles[`tone-${tone}`] || \"\";\r\n\r\n return createPortal(\r\n <Typography>\r\n <div className={styles.WindowLayout}>\r\n <div\r\n className={`${styles.WindowContainer} ${toneClass} ${styles[size]} ${fullHeight && styles.fullHeight}`}\r\n onClick={(e) => e.stopPropagation()}\r\n role='dialog'\r\n aria-labelledby='Window-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\" && (\r\n <TriangleAlert className={styles.warning} />\r\n )}\r\n <Typography variant='heading-sm'>{title}</Typography>\r\n </div>\r\n {onClose && (\r\n <IconButton\r\n size='small'\r\n state='default'\r\n onClick={onClose}\r\n aria-label='Close Window'\r\n >\r\n <X />\r\n </IconButton>\r\n )}\r\n </div>\r\n\r\n <div className={classNames(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 </Typography>,\r\n document.body,\r\n );\r\n};\r\n\r\nconst Section = ({\r\n children,\r\n className,\r\n ...rest\r\n}: PropsWithChildren<HTMLAttributes<HTMLDivElement>>) => (\r\n <section\r\n className={classNames(styles.section, className)}\r\n {...rest}\r\n >\r\n {children}\r\n </section>\r\n);\r\n\r\ninterface WindowComponent extends React.FC<WindowProps> {\r\n Section: typeof Section;\r\n}\r\n\r\nconst Window = WindowBase as WindowComponent;\r\nWindow.Section = Section;\r\n\r\nexport { Window };\r\n","import { createRoot } from \"react-dom/client\";\r\nimport { Window, WindowProps } from \"./Window\";\r\n\r\nexport function showWindow(options: WindowProps) {\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 primaryButtonProps = options.primaryButtonProps\r\n ? {\r\n ...options.primaryButtonProps,\r\n onClick: () => {\r\n options.primaryButtonProps?.onClick?.();\r\n unmount();\r\n },\r\n }\r\n : undefined;\r\n\r\n const secondaryButtonProps = options.secondaryButtonProps?.map((btn) => ({\r\n ...btn,\r\n onClick: () => {\r\n btn.onClick?.();\r\n unmount();\r\n },\r\n }));\r\n\r\n root.render(\r\n <Window\r\n {...options}\r\n open={true}\r\n onClose={() => {\r\n options.onClose?.();\r\n unmount();\r\n }}\r\n primaryButtonProps={primaryButtonProps}\r\n secondaryButtonProps={secondaryButtonProps}\r\n >\r\n <Window.Section>{options.children}</Window.Section>\r\n </Window>,\r\n );\r\n}\r\n\r\nexport const WindowAPI = {\r\n error: (opts: Omit<WindowProps, \"tone\" | \"open\">) =>\r\n showWindow({ ...opts, tone: \"critical\", open: true }),\r\n\r\n warning: (opts: Omit<WindowProps, \"tone\" | \"open\">) =>\r\n showWindow({ ...opts, tone: \"warning\", open: true }),\r\n\r\n info: (opts: Omit<WindowProps, \"tone\" | \"open\">) =>\r\n showWindow({ ...opts, tone: \"default\", open: true }),\r\n};\r\n","import classNames from \"classnames\";\r\nimport { ButtonHTMLAttributes, ReactNode } from \"react\";\r\nimport { Spinner } from \"@/components/feedback\";\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 loading?: boolean;\r\n tone?: \"default\" | \"critical\" | \"warning\";\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 loading,\r\n type = \"button\",\r\n tone,\r\n ...rest\r\n}: ButtonProps) => {\r\n const buttonClass = classNames(\r\n styles.btn,\r\n tone ? styles[tone] : styles[state],\r\n styles[size],\r\n\r\n {\r\n [styles[`${state}-selected`]]: selected,\r\n },\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 type={type}\r\n >\r\n {loading ? <Spinner /> : children}\r\n </button>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport React, { ReactNode, useEffect, useRef, useState } from \"react\";\r\nimport styles from \"./Dropdown.module.scss\";\r\n\r\ninterface DropdownProps {\r\n children: ReactNode;\r\n trigger: ReactNode;\r\n className?: string;\r\n align?: \"left\" | \"right\";\r\n}\r\n\r\nexport const Dropdown: React.FC<DropdownProps> = ({\r\n children,\r\n trigger,\r\n className,\r\n align = \"left\",\r\n}) => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const dropdownRef = useRef<HTMLDivElement>(null);\r\n\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 }\r\n };\r\n\r\n if (isOpen) {\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n }\r\n\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [isOpen]);\r\n\r\n return (\r\n <div\r\n className={classNames(className)}\r\n ref={dropdownRef}\r\n style={{ position: \"relative\" }}\r\n >\r\n <div\r\n className={styles.trigger}\r\n onClick={() => setIsOpen((prev) => !prev)}\r\n >\r\n {trigger}\r\n </div>\r\n\r\n {isOpen && (\r\n <div\r\n className={classNames(styles.container, {\r\n [styles.alignRight]: align === \"right\",\r\n [styles.alignLeft]: align === \"left\",\r\n })}\r\n >\r\n {children}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport { ReactNode } from \"react\";\r\nimport { Button, Typography } from \"@/components\";\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-lg\"}\r\n weight='bold'\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 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 { 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 | \"display\";\r\n className?: string;\r\n children: ReactNode;\r\n weight?: \"regular\" | \"semibold\" | \"bold\" | \"medium\";\r\n underline?: boolean;\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","import React from \"react\";\r\nimport styles from \"./SvgStyleWrapper.module.scss\";\r\n\r\ninterface SvgStyleWrapperProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport const SvgStyleWrapper = ({\r\n children,\r\n className = \"\",\r\n}: SvgStyleWrapperProps) => {\r\n return <div className={`${styles.svgWrapper} ${className}`}>{children}</div>;\r\n};\r\n","import classNames from \"classnames\";\r\nimport React from \"react\";\r\nimport styles from \"./Icon.module.scss\";\r\n\r\nexport type IconDecorativeColors =\r\n | \"neutral\"\r\n | \"blue\"\r\n | \"violet\"\r\n | \"green\"\r\n | \"indigo\"\r\n | \"fuchsia\"\r\n | \"red\"\r\n | \"amber\"\r\n | \"lime\"\r\n | \"teal\";\r\n\r\nexport type IconType =\r\n | React.FC<React.SVGProps<SVGSVGElement>>\r\n | React.ReactElement<React.SVGProps<SVGSVGElement>>;\r\n\r\ninterface IconProps extends React.SVGAttributes<SVGElement> {\r\n icon: IconType;\r\n size?: number | string;\r\n strokeWidth?: number;\r\n className?: string;\r\n color?: IconDecorativeColors;\r\n}\r\n\r\nexport const Icon = ({\r\n icon,\r\n size,\r\n strokeWidth = 1.25,\r\n className,\r\n color,\r\n ...rest\r\n}: IconProps) => {\r\n const style = size ? { width: size, height: size } : undefined;\r\n\r\n if (color) {\r\n return (\r\n <div\r\n className={classNames(styles[color], styles.color, className)}\r\n style={style}\r\n >\r\n {typeof icon === \"function\"\r\n ? React.createElement(icon, { strokeWidth, ...rest })\r\n : React.isValidElement<React.SVGProps<SVGSVGElement>>(icon)\r\n ? React.cloneElement(icon, { strokeWidth, ...rest })\r\n : null}\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <span\r\n className={classNames(styles.icon, className)}\r\n style={style}\r\n >\r\n {typeof icon === \"function\"\r\n ? React.createElement(icon, { strokeWidth, ...rest })\r\n : React.isValidElement<React.SVGProps<SVGSVGElement>>(icon)\r\n ? React.cloneElement(icon, { strokeWidth, ...rest })\r\n : null}\r\n </span>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport styles from \"./OptionList.module.scss\";\r\n\r\nexport type ShadowLevel = \"lower\" | \"higher\";\r\n\r\nexport interface OptionListItem {\r\n label: string;\r\n icon?: React.ReactNode;\r\n onClick?: () => void;\r\n disabled?: boolean;\r\n}\r\n\r\nexport interface OptionListProps {\r\n items: OptionListItem[];\r\n onSelect?: (item: OptionListItem, index: number) => void;\r\n className?: string;\r\n shadow?: ShadowLevel;\r\n}\r\n\r\nexport const OptionList = ({\r\n items,\r\n onSelect,\r\n className,\r\n shadow = \"lower\",\r\n}: OptionListProps) => {\r\n return (\r\n <div\r\n className={classNames(\r\n styles.options,\r\n {\r\n [styles.shadowLower]: shadow === \"lower\",\r\n [styles.shadowHigher]: shadow === \"higher\",\r\n },\r\n className,\r\n )}\r\n role='menu'\r\n >\r\n <div className={styles.container}>\r\n {items.map((item, index) => (\r\n <div\r\n key={index}\r\n role='menuitem'\r\n className={classNames(styles.option, {\r\n [styles.disabled]: item.disabled,\r\n })}\r\n onClick={() => !item.disabled && onSelect?.(item, index)}\r\n aria-disabled={item.disabled || undefined}\r\n >\r\n {item.icon}\r\n <span>{item.label}</span>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport { ReactNode } from \"react\";\r\nimport { Button, Typography } from \"@/components\";\r\nimport styles from \"./Illustrations.module.scss\";\r\n\r\nexport interface IllustrationProps {\r\n children: ReactNode;\r\n className?: string;\r\n}\r\n\r\nconst IllustrationBase = ({ children, className = \"\" }: IllustrationProps) => (\r\n <div className={`${styles.IllustrationContainer} ${className}`}>\r\n {children}\r\n </div>\r\n);\r\n\r\nexport interface IllustrationTextProps {\r\n children: ReactNode;\r\n className?: string;\r\n}\r\n\r\nconst IllustrationTitle = ({\r\n children,\r\n className = \"\",\r\n}: IllustrationTextProps) => (\r\n <>\r\n <Typography\r\n className={classNames(className)}\r\n variant={\"heading-lg\"}\r\n weight='bold'\r\n >\r\n {children}\r\n </Typography>\r\n </>\r\n);\r\n\r\nconst IllustrationContext = ({\r\n children,\r\n className = \"\",\r\n}: IllustrationTextProps) => (\r\n <div className={classNames(className)}>{children}</div>\r\n);\r\n\r\nconst IllustrationContent = ({\r\n children,\r\n className = \"\",\r\n}: IllustrationTextProps) => (\r\n <div className={`${styles.content} ${className}`}>{children}</div>\r\n);\r\n\r\nconst IllustrationButtonContent = ({\r\n children,\r\n className = \"\",\r\n}: IllustrationTextProps) => (\r\n <div className={`${styles.buttonContent} ${className}`}>{children}</div>\r\n);\r\n\r\nexport interface IllustrationButtonProps {\r\n children: ReactNode;\r\n onClick?: () => void;\r\n className?: string;\r\n}\r\n\r\nconst IllustrationPrimaryButton = ({\r\n children,\r\n onClick,\r\n className = \"\",\r\n}: IllustrationButtonProps) => (\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 IllustrationSecondaryButton = ({\r\n children,\r\n onClick,\r\n className = \"\",\r\n}: IllustrationButtonProps) => (\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 IllustrationImageProps {\r\n src: string;\r\n className?: string;\r\n alt?: string;\r\n size?: \"small\" | \"large\";\r\n}\r\n\r\nconst IllustrationImage = ({\r\n src,\r\n className = \"\",\r\n alt = \"Illustration state image\",\r\n size = \"large\",\r\n}: IllustrationImageProps) => {\r\n return (\r\n <img\r\n className={classNames(\r\n styles.imageContent,\r\n size === \"small\" ? styles.imageSmall : styles.imageLarge,\r\n className,\r\n )}\r\n src={src}\r\n alt={alt}\r\n />\r\n );\r\n};\r\ninterface IllustrationType extends React.FC<IllustrationProps> {\r\n Title: typeof IllustrationTitle;\r\n Context: typeof IllustrationContext;\r\n Content: typeof IllustrationContent;\r\n ButtonContent: typeof IllustrationButtonContent;\r\n PrimaryButton: typeof IllustrationPrimaryButton;\r\n SecondaryButton: typeof IllustrationSecondaryButton;\r\n Image: typeof IllustrationImage;\r\n}\r\n\r\nconst Illustration = IllustrationBase as IllustrationType;\r\n\r\nIllustration.Title = IllustrationTitle;\r\nIllustration.Context = IllustrationContext;\r\nIllustration.Content = IllustrationContent;\r\nIllustration.ButtonContent = IllustrationButtonContent;\r\nIllustration.PrimaryButton = IllustrationPrimaryButton;\r\nIllustration.SecondaryButton = IllustrationSecondaryButton;\r\nIllustration.Image = IllustrationImage;\r\n\r\nexport { Illustration };\r\n","import classNames from \"classnames\";\r\nimport React, { ReactNode } from \"react\";\r\nimport { Typography } from \"../Typography/Typography\";\r\nimport styles from \"./Chip.module.scss\";\r\n\r\nexport type ChipColor =\r\n | \"blue\"\r\n | \"violet\"\r\n | \"fuchsia\"\r\n | \"lime\"\r\n | \"teal\"\r\n | \"indigo\"\r\n | \"red\"\r\n | \"amber\"\r\n | \"green\";\r\n\r\nexport interface ChipProps {\r\n label: string;\r\n icon?: ReactNode;\r\n color?: ChipColor;\r\n className?: string;\r\n size?: \"small\" | \"medium\";\r\n}\r\n\r\nexport const Chip: React.FC<ChipProps> = ({\r\n label,\r\n icon,\r\n color = \"blue\",\r\n className,\r\n size = \"medium\",\r\n}) => {\r\n return (\r\n <div\r\n className={classNames(styles.chip, styles[`chip--${color}`], className)}\r\n >\r\n {icon}\r\n <Typography\r\n weight='medium'\r\n variant={size === \"medium\" ? \"body-md\" : \"body-sm\"}\r\n >\r\n {label}\r\n </Typography>\r\n </div>\r\n );\r\n};\r\n","import { useEffect, useState } from \"react\";\r\n\r\nexport const useIsMobile = () => {\r\n const [isMobile, setIsMobile] = useState<boolean>(() => {\r\n if (typeof window !== \"undefined\") {\r\n return window.innerWidth < 481;\r\n }\r\n return false; // default for SSR\r\n });\r\n\r\n useEffect(() => {\r\n const handleResize = () => {\r\n setIsMobile(window.innerWidth < 481);\r\n };\r\n\r\n // run once on mount in case width changed before effect\r\n handleResize();\r\n\r\n window.addEventListener(\"resize\", handleResize);\r\n return () => window.removeEventListener(\"resize\", handleResize);\r\n }, []);\r\n\r\n return isMobile;\r\n};\r\n","import React, { forwardRef, memo, MouseEventHandler, useCallback } from \"react\";\r\nimport { Typography } from \"@/components/display\";\r\nimport styles from \"./CalendarDay.module.scss\";\r\n\r\nexport type CornerType = \"start\" | \"end\" | \"both\" | null;\r\n\r\nexport interface CalendarDayProps\r\n extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"onClick\"> {\r\n number: number;\r\n isActive?: boolean;\r\n isCorner?: boolean;\r\n isInRange?: boolean;\r\n cornerType?: CornerType;\r\n onClick?: (dayNumber: number) => void;\r\n disabled?: boolean;\r\n className?: string;\r\n}\r\n\r\nconst CalendarDayBase = forwardRef<HTMLButtonElement, CalendarDayProps>(\r\n (\r\n {\r\n number,\r\n isActive = false,\r\n isCorner = false,\r\n cornerType = null,\r\n onClick,\r\n disabled = false,\r\n isInRange = false,\r\n className = \"\",\r\n ...props\r\n },\r\n ref,\r\n ) => {\r\n const handleClick: MouseEventHandler<HTMLButtonElement> =\r\n useCallback(() => {\r\n if (!disabled && onClick) onClick(number);\r\n }, [disabled, onClick, number]);\r\n\r\n const dayClasses = [styles.calendarDay];\r\n\r\n if (isActive) dayClasses.push(styles.calendarDayActive);\r\n\r\n if (isCorner) {\r\n dayClasses.push(styles.calendarDayCorner);\r\n if (cornerType === \"start\")\r\n dayClasses.push(styles.calendarDayCornerStart);\r\n if (cornerType === \"end\") dayClasses.push(styles.calendarDayCornerEnd);\r\n }\r\n\r\n if (isInRange) dayClasses.push(styles.calendarDayInRange);\r\n if (className) dayClasses.push(className);\r\n\r\n return (\r\n <button\r\n ref={ref}\r\n type='button'\r\n className={dayClasses.join(\" \")}\r\n onClick={handleClick}\r\n disabled={disabled}\r\n aria-label={`Day ${number}`}\r\n {...props}\r\n >\r\n <Typography\r\n className={styles.calendarDayNumber}\r\n variant='body-md'\r\n >\r\n {number}\r\n </Typography>\r\n </button>\r\n );\r\n },\r\n);\r\n\r\nCalendarDayBase.displayName = \"CalendarDay\";\r\n\r\nconst areEqual = (\r\n prev: Readonly<CalendarDayProps>,\r\n next: Readonly<CalendarDayProps>,\r\n) =>\r\n prev.number === next.number &&\r\n prev.isActive === next.isActive &&\r\n prev.isCorner === next.isCorner &&\r\n prev.isInRange === next.isInRange &&\r\n prev.cornerType === next.cornerType &&\r\n prev.disabled === next.disabled &&\r\n prev.className === next.className &&\r\n prev.onClick === next.onClick;\r\n\r\nexport const CalendarDay = memo(CalendarDayBase, areEqual);\r\n","import dayjs from \"dayjs\";\r\nimport { Typography } from \"@/components/display\";\r\nimport styles from \"./CalendarDayHeaders.module.scss\";\r\n\r\ninterface CalendarDayHeaderProps {\r\n locale?: string;\r\n weekStartsOn?: 0 | 1;\r\n}\r\n\r\nconst CalendarDayHeader = ({\r\n locale,\r\n weekStartsOn = 1,\r\n}: CalendarDayHeaderProps) => {\r\n const start = dayjs()\r\n .locale(locale ?? dayjs.locale())\r\n .day(weekStartsOn);\r\n const days = Array.from({ length: 7 }).map((_, i) =>\r\n start.add(i, \"day\").locale(locale ?? dayjs.locale()),\r\n );\r\n\r\n return (\r\n <Typography>\r\n <div className={styles.headerRow}>\r\n {days.map((d, idx) => (\r\n <div\r\n key={idx}\r\n className={styles.headerCell}\r\n >\r\n {d.format(\"dd\")}\r\n </div>\r\n ))}\r\n </div>\r\n </Typography>\r\n );\r\n};\r\n\r\nexport default CalendarDayHeader;\r\n","import { Dayjs } from \"@/lib/dayjs\";\r\n\r\nexport const startOfDay = (d: Dayjs) => d.startOf(\"day\");\r\nexport const endOfDay = (d: Dayjs) => d.endOf(\"day\");\r\n\r\nexport const isSameDay = (a?: Dayjs | null, b?: Dayjs | null) =>\r\n !!a && !!b && a.isSame(b, \"day\");\r\n\r\nexport const isBefore = (a: Dayjs, b: Dayjs) => a.isBefore(b, \"day\");\r\nexport const isAfter = (a: Dayjs, b: Dayjs) => a.isAfter(b, \"day\");\r\n\r\nexport const clampDate = (d: Dayjs, min?: Dayjs, max?: Dayjs) => {\r\n if (min && d.isBefore(min, \"day\")) return min;\r\n if (max && d.isAfter(max, \"day\")) return max;\r\n return d;\r\n};\r\n\r\nexport const addMonths = (d: Dayjs, n: number) => d.add(n, \"month\");\r\nexport const addDays = (d: Dayjs, n: number) => d.add(n, \"day\");\r\n\r\n/** 6×7 grid for a month view */\r\nexport const daysInMonthGrid = (month: Dayjs, weekStartsOn: 0 | 1) => {\r\n const firstOfMonth = month.startOf(\"month\");\r\n const firstDow = firstOfMonth.day();\r\n const offset = (firstDow - weekStartsOn + 7) % 7;\r\n const gridStart = firstOfMonth.subtract(offset, \"day\");\r\n\r\n return Array.from({ length: 42 }).map((_, i) => {\r\n const date = gridStart.add(i, \"day\");\r\n return {\r\n date,\r\n inCurrentMonth: date.month() === month.month(),\r\n };\r\n });\r\n};\r\n\r\nexport const isDisabled = (d: Dayjs, min?: Dayjs, max?: Dayjs) =>\r\n (min && d.isBefore(min, \"day\")) || (max && d.isAfter(max, \"day\"));\r\n","import { ArrowLeft, ArrowRight } from \"lucide-react\";\r\nimport { memo, useCallback, useMemo } from \"react\";\r\nimport { IconButton, Typography } from \"@/components/display\";\r\nimport dayjs, { Dayjs } from \"@/lib/dayjs\";\r\nimport { useIsMobile } from \"@/lib/useIsMobile\";\r\nimport { CalendarDay, CornerType } from \"../CalendarDay/CalendarDay\";\r\nimport CalendarDayHeader from \"../CalendarDayHeader/CalendarDayHeader\";\r\nimport { daysInMonthGrid, isDisabled } from \"./../dateUtils\";\r\nimport styles from \"./CalendarMonth.module.scss\";\r\n\r\nexport interface CalendarMonthProps {\r\n monthDate: Dayjs;\r\n weekStartsOn: 0 | 1;\r\n locale?: string;\r\n minDate?: Dayjs;\r\n maxDate?: Dayjs;\r\n onSelectDay: (d: Dayjs) => void;\r\n isInRange?: (d: Dayjs) => boolean;\r\n isSelected?: (d: Dayjs) => boolean;\r\n cornerType?: (d: Dayjs) => CornerType;\r\n allowRange?: boolean;\r\n\r\n showPrev?: boolean;\r\n showNext?: boolean;\r\n onPrev?: () => void;\r\n onNext?: () => void;\r\n prevDisabled?: boolean;\r\n nextDisabled?: boolean;\r\n}\r\n\r\nconst CalendarMonthBase = ({\r\n monthDate,\r\n weekStartsOn,\r\n locale,\r\n minDate,\r\n maxDate,\r\n onSelectDay,\r\n isInRange = () => false,\r\n isSelected = () => false,\r\n cornerType = () => null,\r\n allowRange = false,\r\n showPrev = false,\r\n showNext = false,\r\n onPrev,\r\n onNext,\r\n prevDisabled = false,\r\n nextDisabled = false,\r\n}: CalendarMonthProps) => {\r\n const grid = useMemo(\r\n () => daysInMonthGrid(monthDate, weekStartsOn),\r\n [monthDate, weekStartsOn],\r\n );\r\n\r\n const monthLabel = useMemo(() => {\r\n const loc = locale ?? dayjs.locale();\r\n const formatted = monthDate.locale(loc).format(\"MMMM YYYY\");\r\n return formatted.charAt(0).toUpperCase() + formatted.slice(1);\r\n }, [monthDate, locale]);\r\n\r\n const onSelectMemo = useCallback(\r\n (d: Dayjs) => () => onSelectDay(d),\r\n [onSelectDay],\r\n );\r\n const isMobile = useIsMobile();\r\n\r\n return (\r\n <div className={styles.month}>\r\n <div className={styles.header}>\r\n {showPrev ? (\r\n <IconButton\r\n type='button'\r\n size={isMobile ? \"large\" : \"small\"}\r\n state={isMobile ? \"default\" : \"tertiary\"}\r\n aria-label='Previous month'\r\n onClick={onPrev}\r\n disabled={prevDisabled}\r\n >\r\n <ArrowLeft />\r\n </IconButton>\r\n ) : (\r\n <span className={styles.navSpacer} />\r\n )}\r\n\r\n <Typography\r\n variant={isMobile ? \"heading-md\" : \"body-md\"}\r\n weight={isMobile ? \"semibold\" : \"medium\"}\r\n >\r\n {monthLabel}\r\n </Typography>\r\n\r\n {showNext ? (\r\n <IconButton\r\n size={isMobile ? \"large\" : \"small\"}\r\n state={isMobile ? \"default\" : \"tertiary\"}\r\n type='button'\r\n aria-label='Next month'\r\n onClick={onNext}\r\n disabled={nextDisabled}\r\n >\r\n <ArrowRight />\r\n </IconButton>\r\n ) : (\r\n <span className={styles.navSpacer} />\r\n )}\r\n </div>\r\n\r\n <CalendarDayHeader\r\n locale={locale}\r\n weekStartsOn={weekStartsOn}\r\n />\r\n\r\n <div className={styles.grid}>\r\n {grid.map((cell) => {\r\n const inCurrentMonth = cell.inCurrentMonth;\r\n const outOfRange = isDisabled(cell.date, minDate, maxDate);\r\n const available = inCurrentMonth;\r\n\r\n if (!available) {\r\n return (\r\n <div\r\n key={cell.date.valueOf()}\r\n className={styles.emptyCell}\r\n aria-hidden='true'\r\n />\r\n );\r\n }\r\n\r\n const active = isSelected(cell.date);\r\n const corner = allowRange\r\n ? cornerType(cell.date)\r\n : active\r\n ? \"both\"\r\n : null;\r\n const inRange = allowRange && isInRange(cell.date) && !active;\r\n\r\n return (\r\n <CalendarDay\r\n key={cell.date.valueOf()}\r\n number={cell.date.date()}\r\n disabled={outOfRange}\r\n isActive={active}\r\n isCorner={!!corner}\r\n isInRange={inRange}\r\n cornerType={corner}\r\n onClick={onSelectMemo(cell.date)}\r\n aria-label={cell.date.format(\"YYYY-MM-DD\")}\r\n />\r\n );\r\n })}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nconst djEq = (a?: Dayjs, b?: Dayjs) =>\r\n (a ? a.valueOf() : undefined) === (b ? b.valueOf() : undefined);\r\n\r\nconst areEqual = (prev: CalendarMonthProps, next: CalendarMonthProps) =>\r\n djEq(prev.monthDate, next.monthDate) &&\r\n prev.weekStartsOn === next.weekStartsOn &&\r\n djEq(prev.minDate, next.minDate) &&\r\n djEq(prev.maxDate, next.maxDate) &&\r\n prev.allowRange === next.allowRange &&\r\n prev.isInRange === next.isInRange &&\r\n prev.isSelected === next.isSelected &&\r\n prev.cornerType === next.cornerType &&\r\n prev.onSelectDay === next.onSelectDay &&\r\n prev.showPrev === next.showPrev &&\r\n prev.showNext === next.showNext &&\r\n prev.onPrev === next.onPrev &&\r\n prev.onNext === next.onNext &&\r\n prev.prevDisabled === next.prevDisabled &&\r\n prev.nextDisabled === next.nextDisabled;\r\n\r\nexport const CalendarMonth = memo(CalendarMonthBase, areEqual);\r\n","import classNames from \"classnames\";\r\nimport { useMemo, useState } from \"react\";\r\nimport dayjs, { Dayjs } from \"@/lib/dayjs\";\r\nimport { CalendarMonth } from \"./CalendarMonth/CalendarMonth\";\r\nimport styles from \"./Calendars.module.scss\";\r\nimport {\r\n addMonths,\r\n clampDate,\r\n endOfDay,\r\n isAfter,\r\n isBefore,\r\n isSameDay,\r\n startOfDay,\r\n} from \"./dateUtils\";\r\n\r\n/** Public value types */\r\nexport type SingleValue = Dayjs | null;\r\nexport type RangeTuple = [Dayjs | null, Dayjs | null];\r\nexport type RangeValue = RangeTuple | null;\r\n\r\n/** Shared props */\r\nexport type BaseProps = {\r\n multiMonth?: boolean;\r\n onCard?: boolean;\r\n locale?: string;\r\n initialMonth?: Dayjs;\r\n minDate?: Dayjs;\r\n maxDate?: Dayjs;\r\n weekStartsOn?: 0 | 1;\r\n className?: string;\r\n};\r\n\r\n/** Single-date props (default mode) */\r\nexport type CalendarPropsSingle = BaseProps & {\r\n allowRange?: false;\r\n value?: SingleValue;\r\n defaultValue?: SingleValue;\r\n onChange?: (value: SingleValue) => void;\r\n};\r\n\r\n/** Range props (when allowRange is true) */\r\nexport type CalendarPropsRange = BaseProps & {\r\n allowRange: true;\r\n value?: RangeValue;\r\n defaultValue?: RangeValue;\r\n onChange?: (value: RangeValue) => void;\r\n};\r\n\r\n/** Discriminated union of prop shapes */\r\nexport type CalendarProps = CalendarPropsSingle | CalendarPropsRange;\r\n\r\n/** Narrowing helpers */\r\nexport const asDay = (d: Dayjs | Date | null | undefined) =>\r\n d ? dayjs(d) : null;\r\n\r\n/** Overloads for better DX */\r\nexport function Calendar(props: CalendarPropsSingle): JSX.Element;\r\nexport function Calendar(props: CalendarPropsRange): JSX.Element;\r\n\r\n/** Implementation */\r\nexport function Calendar({\r\n value,\r\n defaultValue = null,\r\n onChange,\r\n allowRange = false,\r\n multiMonth = false,\r\n onCard = false,\r\n initialMonth,\r\n minDate,\r\n maxDate,\r\n locale,\r\n weekStartsOn = 1,\r\n className = \"\",\r\n}: CalendarProps) {\r\n /** Uncontrolled if value is undefined; otherwise controlled */\r\n const uncontrolled = value === undefined;\r\n\r\n /** Internal state mirrors the correct shape based on allowRange */\r\n const [internal, setInternal] = useState<SingleValue | RangeValue>(\r\n defaultValue,\r\n );\r\n\r\n /** Current value respecting controlled/uncontrolled usage */\r\n const controlledValue = uncontrolled ? internal : value;\r\n\r\n /** Derive start/end depending on mode */\r\n const [start, end] = useMemo<[Dayjs | null, Dayjs | null]>(() => {\r\n if (!allowRange) return [asDay(controlledValue as SingleValue), null];\r\n const v = controlledValue as RangeValue;\r\n return v ? [asDay(v[0]), asDay(v[1])] : [null, null];\r\n }, [allowRange, controlledValue]);\r\n\r\n /** Determine initial visible month */\r\n const firstVisible = useMemo(() => {\r\n if (initialMonth) return initialMonth.startOf(\"month\");\r\n if (start) return start.startOf(\"month\");\r\n return dayjs().startOf(\"month\");\r\n }, [initialMonth, start]);\r\n\r\n /** Anchor for left/only month */\r\n const [monthAnchor, setMonthAnchor] = useState<Dayjs>(firstVisible);\r\n const monthsToShow = multiMonth ? 2 : 1;\r\n\r\n /** Day click handling with strict typing */\r\n const handleDayClick = (day: Dayjs) => {\r\n const dayClamped = clampDate(day, minDate, maxDate);\r\n\r\n if (!allowRange) {\r\n // SINGLE MODE\r\n const nextVal: SingleValue = dayClamped;\r\n if (uncontrolled) setInternal(nextVal);\r\n (onChange as CalendarPropsSingle[\"onChange\"] | undefined)?.(nextVal);\r\n return;\r\n }\r\n\r\n // RANGE MODE\r\n if (!start || (start && end)) {\r\n const next: RangeValue = [dayClamped, null];\r\n if (uncontrolled) setInternal(next);\r\n (onChange as CalendarPropsRange[\"onChange\"] | undefined)?.(next);\r\n } else if (start && !end) {\r\n const s = startOfDay(start);\r\n const e = endOfDay(dayClamped);\r\n const next: RangeValue = isBefore(e, s) ? [dayClamped, s] : [s, e];\r\n if (uncontrolled) setInternal(next);\r\n (onChange as CalendarPropsRange[\"onChange\"] | undefined)?.(next);\r\n }\r\n };\r\n\r\n /** Optional nav constraints */\r\n const canGoPrev = useMemo(() => {\r\n if (!minDate) return true;\r\n const prevMonthEnd = monthAnchor.startOf(\"month\").subtract(1, \"day\");\r\n return prevMonthEnd.isSame(minDate, \"day\") || prevMonthEnd.isAfter(minDate);\r\n }, [monthAnchor, minDate]);\r\n\r\n const canGoNext = useMemo(() => {\r\n if (!maxDate) return true;\r\n const nextMonthStart = monthAnchor.add(1, \"month\").startOf(\"month\");\r\n return (\r\n nextMonthStart.isSame(maxDate, \"day\") || nextMonthStart.isBefore(maxDate)\r\n );\r\n }, [monthAnchor, maxDate]);\r\n\r\n const goPrev = () => {\r\n if (!canGoPrev) return;\r\n setMonthAnchor((m) => m.add(-1, \"month\").startOf(\"month\"));\r\n };\r\n\r\n const goNext = () => {\r\n if (!canGoNext) return;\r\n setMonthAnchor((m) => m.add(1, \"month\").startOf(\"month\"));\r\n };\r\n\r\n return (\r\n <div\r\n className={classNames(\r\n styles.calendarRoot,\r\n onCard ? styles.onCard : \"\",\r\n multiMonth && styles.multiMonth,\r\n className,\r\n )}\r\n >\r\n <div\r\n className={styles.months}\r\n data-columns={monthsToShow}\r\n >\r\n {/* LEFT / ONLY month */}\r\n <CalendarMonth\r\n monthDate={monthAnchor}\r\n weekStartsOn={weekStartsOn}\r\n minDate={minDate}\r\n maxDate={maxDate}\r\n locale={locale}\r\n onSelectDay={handleDayClick}\r\n isInRange={(d) =>\r\n !!start && !!end && !isBefore(d, start) && !isAfter(d, end)\r\n }\r\n isSelected={(d) =>\r\n isSameDay(d, start) || (!!end && isSameDay(d, end))\r\n }\r\n cornerType={(d) => {\r\n const isStart = !!start && isSameDay(d, start);\r\n const isEnd = !!end && isSameDay(d, end);\r\n if (isStart && isEnd) return \"both\";\r\n if (isStart) return \"start\";\r\n if (isEnd) return \"end\";\r\n return null;\r\n }}\r\n allowRange={allowRange}\r\n // nav\r\n showPrev\r\n showNext={!multiMonth}\r\n onPrev={goPrev}\r\n onNext={!multiMonth ? goNext : undefined}\r\n prevDisabled={!canGoPrev}\r\n nextDisabled={!canGoNext && !multiMonth}\r\n />\r\n\r\n {/* RIGHT month (only when multiMonth) */}\r\n {monthsToShow === 2 && (\r\n <CalendarMonth\r\n monthDate={addMonths(monthAnchor, 1)}\r\n locale={locale}\r\n weekStartsOn={weekStartsOn}\r\n minDate={minDate}\r\n maxDate={maxDate}\r\n onSelectDay={handleDayClick}\r\n isInRange={(d) =>\r\n !!start && !!end && !isBefore(d, start) && !isAfter(d, end)\r\n }\r\n isSelected={(d) =>\r\n isSameDay(d, start) || (!!end && isSameDay(d, end))\r\n }\r\n cornerType={(d) => {\r\n const isStart = !!start && isSameDay(d, start);\r\n const isEnd = !!end && isSameDay(d, end);\r\n if (isStart && isEnd) return \"both\";\r\n if (isStart) return \"start\";\r\n if (isEnd) return \"end\";\r\n return null;\r\n }}\r\n allowRange={allowRange}\r\n // nav\r\n showPrev={false}\r\n showNext\r\n onNext={goNext}\r\n nextDisabled={\r\n !!maxDate &&\r\n addMonths(monthAnchor, 2)\r\n .startOf(\"month\")\r\n .isAfter(maxDate.startOf(\"month\"))\r\n }\r\n />\r\n )}\r\n </div>\r\n </div>\r\n );\r\n}\r\n","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(\r\n dayOfMonth.toString(),\r\n `${dayOfMonth}${suffix}`,\r\n );\r\n\r\n return `${formattedDeadline} (UTC +5)`;\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Typography } from \"@/components/display\";\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 { X } from \"lucide-react\";\r\nimport { ReactNode } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport { IconButton, Typography } from \"@/components\";\r\nimport styles from \"./Drawer.module.scss\";\r\n\r\nexport type DrawerPosition = \"left\" | \"right\" | \"bottom\";\r\nexport type DrawerSize = \"sm\" | \"md\" | \"lg\";\r\n\r\nexport interface DrawerProps {\r\n open: boolean;\r\n onClose: () => void;\r\n title?: string;\r\n children: ReactNode;\r\n position?: DrawerPosition;\r\n size?: DrawerSize;\r\n}\r\n\r\nexport const Drawer = ({\r\n open,\r\n onClose,\r\n title,\r\n children,\r\n position = \"right\",\r\n size = \"md\",\r\n}: DrawerProps) => {\r\n if (!open) return null;\r\n\r\n return createPortal(\r\n <div\r\n className={styles.drawerLayout}\r\n onClick={onClose}\r\n >\r\n <aside\r\n className={classNames(\r\n styles.drawerContainer,\r\n styles[position],\r\n styles[size],\r\n )}\r\n onClick={(e) => e.stopPropagation()}\r\n role='dialog'\r\n aria-modal='true'\r\n aria-labelledby='drawer-title'\r\n >\r\n <div className={styles.header}>\r\n {title && <Typography variant='heading-sm'>{title}</Typography>}\r\n <IconButton\r\n size='small'\r\n state='default'\r\n onClick={onClose}\r\n aria-label='Close drawer'\r\n >\r\n <X />\r\n </IconButton>\r\n </div>\r\n <div className={styles.content}>{children}</div>\r\n </aside>\r\n </div>,\r\n document.body,\r\n );\r\n};\r\n","import { ArrowLeft } from \"lucide-react\";\r\nimport { ReactNode } from \"react\";\r\nimport { IconButton, TopBar, TopBarProps, Typography } from \"@/components\";\r\nimport styles from \"./PageHeader.module.scss\";\r\n\r\nexport interface PageHeaderProps {\r\n title: string | ReactNode;\r\n sections?: TopBarProps[\"sections\"];\r\n activeTab?: TopBarProps[\"activeTab\"];\r\n onTabSelect?: TopBarProps[\"onTabSelect\"];\r\n isStretched?: TopBarProps[\"isStretched\"];\r\n extra?: ReactNode;\r\n message?: string;\r\n type?: \"primary\" | \"secondary\";\r\n onBack?: () => void;\r\n}\r\n\r\nexport const PageHeader = ({\r\n title,\r\n sections,\r\n activeTab,\r\n onTabSelect,\r\n isStretched,\r\n extra,\r\n message,\r\n type = \"primary\",\r\n onBack,\r\n}: PageHeaderProps) => {\r\n if (type == \"primary\") {\r\n return (\r\n <div className={styles.container}>\r\n <div className={styles.title}>\r\n <header className={styles.pageHeader}>\r\n <Typography variant='heading-xl'>{title}</Typography>\r\n {extra}\r\n </header>\r\n {message && (\r\n <Typography className={styles.secondary}>{message}</Typography>\r\n )}\r\n </div>\r\n {sections && onTabSelect && (\r\n <TopBar\r\n sections={sections}\r\n activeTab={activeTab}\r\n onTabSelect={onTabSelect}\r\n isStretched={isStretched}\r\n />\r\n )}\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className={styles.secondaryContainer}>\r\n <IconButton\r\n size='medium'\r\n state='tertiary'\r\n onClick={onBack}\r\n className={styles.icon}\r\n >\r\n <ArrowLeft />\r\n </IconButton>\r\n <div className={styles.centerContent}>\r\n <Typography variant='heading-sm'>{title}</Typography>\r\n {message && (\r\n <Typography\r\n variant='body-sm'\r\n weight='semibold'\r\n className={styles.subtitle}\r\n >\r\n {message}\r\n </Typography>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import { ReactNode } from \"react\";\r\nimport { Typography } from \"@/components/display\";\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 variant='heading-md'>{title}</Typography>\r\n {extra}\r\n </div>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport React from \"react\";\r\nimport { Page, Typography } from \"@/components\";\r\nimport styles from \"./TopBar.module.scss\";\r\n\r\nexport interface TopbarSection {\r\n id: number | string;\r\n title: string;\r\n component: React.ReactNode;\r\n}\r\n\r\nexport interface TopBarProps {\r\n sections: TopbarSection[];\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 <Page>\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 variant={\"heading-md\"}>{section.title}</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 </Page>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport { HTMLAttributes, PropsWithChildren } from \"react\";\r\nimport styles from \"./Page.module.scss\";\r\n\r\nexport const Page = ({\r\n children,\r\n className,\r\n ...rest\r\n}: PropsWithChildren<HTMLAttributes<HTMLDivElement>>) => {\r\n return (\r\n <div\r\n className={classNames(styles.page, className)}\r\n {...rest}\r\n >\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport { HTMLAttributes, PropsWithChildren } from \"react\";\r\nimport styles from \"./Section.module.scss\";\r\n\r\nexport const Section = ({\r\n children,\r\n className,\r\n ...rest\r\n}: PropsWithChildren<HTMLAttributes<HTMLDivElement>>) => {\r\n return (\r\n <div\r\n className={classNames(styles.section, className)}\r\n {...rest}\r\n >\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport { HTMLAttributes, PropsWithChildren } from \"react\";\r\nimport styles from \"./SectionWrapper.module.scss\";\r\n\r\nexport const SectionWrapper = ({\r\n children,\r\n className,\r\n ...rest\r\n}: PropsWithChildren<HTMLAttributes<HTMLDivElement>>) => {\r\n return (\r\n <div\r\n className={classNames(styles.sectionWrapper, className)}\r\n {...rest}\r\n >\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import { HTMLAttributes, PropsWithChildren } from \"react\";\r\nimport styles from \"./ButtonGroup.module.scss\";\r\n\r\ntype ButtonGroupProps = PropsWithChildren<HTMLAttributes<HTMLDivElement>>;\r\n\r\nexport const ButtonGroup = ({ children, ...rest }: ButtonGroupProps) => {\r\n return (\r\n <div\r\n className={styles.container}\r\n {...rest}\r\n >\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport React from \"react\";\r\nimport { Typography } from \"@/components/display\";\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 {label && (\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 )}\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 { AnchorHTMLAttributes, ReactNode } from \"react\";\r\nimport styles from \"./Link.module.scss\";\r\n\r\ninterface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\r\n children: ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport const Link = ({ children, className = \"\", ...rest }: LinkProps) => {\r\n return (\r\n <a\r\n className={classNames(styles.link, className)}\r\n {...rest}\r\n >\r\n {children}\r\n </a>\r\n );\r\n};\r\n","import { ReactNode } from \"react\";\r\nimport styles from \"./ProgressLine.module.scss\";\r\n\r\nexport interface ProgressLineProps {\r\n percent: number;\r\n extra?: ReactNode;\r\n}\r\nexport const ProgressLine = ({ percent, extra }: 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 {extra}\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 { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import * as React from \"react\";\r\nimport { cn } from \"@/lib/utils\";\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 {\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\nimport styles from \"./Table.module.scss\";\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, styles.table)}\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 { 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","import classNames from \"classnames\";\r\nimport React, { ReactNode } from \"react\";\r\nimport styles from \"./ProgressBarAlternative.module.scss\";\r\n\r\nexport type ProgressColor =\r\n | \"blue\"\r\n | \"violet\"\r\n | \"fuchsia\"\r\n | \"lime\"\r\n | \"teal\"\r\n | \"indigo\"\r\n | \"red\"\r\n | \"amber\"\r\n | \"green\";\r\n\r\nexport interface ProgressBarAlternativeProps {\r\n percent: number;\r\n extra?: ReactNode;\r\n color?: ProgressColor;\r\n className?: string;\r\n}\r\n\r\nexport const ProgressBarAlternative: React.FC<ProgressBarAlternativeProps> = ({\r\n percent,\r\n color = \"blue\",\r\n className,\r\n extra,\r\n}) => {\r\n return (\r\n <div\r\n className={classNames(\r\n styles.progressContainer,\r\n styles[`container--${color}`],\r\n className,\r\n )}\r\n >\r\n <div\r\n className={classNames(styles.progressFill, styles[`fill--${color}`])}\r\n style={{ width: `${percent}%` }}\r\n />\r\n <span className={classNames(styles.label, styles[`text--${color}`])}>\r\n {extra}\r\n </span>\r\n </div>\r\n );\r\n};\r\n"],"names":["hasOwn","classNames","classes","arg","appendClass","parseValue","key","value","newClass","module","InlineError","children","styles","jsx","CircleAlert","Checkbox","label","error","helperText","disabled","className","indeterminate","onChange","rest","ref","useRef","useEffect","handleLabelClick","event","jsxs","FormItemContext","createContext","useFormItem","useContext","FormItem","readOnly","state","Label","Input","React","Component","props","Message","BaseInputWrapper","prefix","postfix","maskRegex","textPrefix","onFocus","handleChange","e","handleFocus","newVal","TextArea","defaultValue","rows","isControlled","internalValue","setInternalValue","useState","currentValue","val","RadioButton","name","Select","placeholder","options","onBlur","isOpen","setIsOpen","focusedIndex","setFocusedIndex","dropdownRef","optionsRef","selectedOption","option","handleToggle","handleOptionSelect","handleKeyDown","nextIndex","prevIndex","handleClickOutside","index","el","t","this","n","r","s","u","a","o","c","f","h","d","l","$","y","M","m","v","i","g","D","p","S","_","w","O","k","require$$0","dayjs","localizedFormat","localeData","weekday","isSameOrAfter","isSameOrBefore","SvgFallbackAvatar","Avatar","image","size","style","AvatarFallback","CustomToaster","Toaster","message","text","toast","IconButton","X","TriangleAlert","OctagonAlert","CircleCheck","type","ModalBase","open","title","primaryButtonProps","secondaryButtonProps","tone","fullHeight","toneClass","createPortal","Typography","Button","Section","Modal","showModal","container","root","createRoot","unmount","handleOk","_a","handleCancel","ModalAPI","opts","Spinner","Tooltip","controlledActive","content","hoverDelay","preferredPosition","zIndexOverride","trigger","tooltipClassName","active","setActive","computedPosition","setComputedPosition","hoverTimeout","persist","triggerRef","isActive","canTriggerHover","canTriggerClick","tooltipId","useId","positionClass","wrapperClassName","tooltipClass","rect","spaceAbove","spaceBelow","WindowBase","onClose","Window","showWindow","_b","btn","WindowAPI","selected","onClick","loading","buttonClass","Dropdown","align","prev","EmptyBase","EmptyTitle","Fragment","EmptyContext","EmptyContent","EmptyButtonContent","EmptyPrimaryButton","EmptySecondaryButton","EmptyImage","src","alt","Empty","variant","weight","variantClass","weightClass","SvgStyleWrapper","Icon","icon","strokeWidth","color","OptionList","items","onSelect","shadow","item","IllustrationBase","IllustrationTitle","IllustrationContext","IllustrationContent","IllustrationButtonContent","IllustrationPrimaryButton","IllustrationSecondaryButton","IllustrationImage","Illustration","Chip","useIsMobile","isMobile","setIsMobile","handleResize","CalendarDayBase","forwardRef","number","isCorner","cornerType","isInRange","handleClick","useCallback","dayClasses","areEqual","next","CalendarDay","memo","CalendarDayHeader","locale","weekStartsOn","start","days","idx","startOfDay","endOfDay","isSameDay","b","isBefore","isAfter","clampDate","min","max","addMonths","addDays","daysInMonthGrid","month","firstOfMonth","offset","gridStart","date","isDisabled","CalendarMonthBase","monthDate","minDate","maxDate","onSelectDay","isSelected","allowRange","showPrev","showNext","onPrev","onNext","prevDisabled","nextDisabled","grid","useMemo","monthLabel","loc","formatted","onSelectMemo","ArrowLeft","ArrowRight","cell","inCurrentMonth","outOfRange","corner","inRange","djEq","CalendarMonth","asDay","Calendar","multiMonth","onCard","initialMonth","uncontrolled","internal","setInternal","controlledValue","end","firstVisible","monthAnchor","setMonthAnchor","monthsToShow","handleDayClick","day","dayClamped","nextVal","canGoPrev","prevMonthEnd","canGoNext","nextMonthStart","goPrev","goNext","isStart","isEnd","formatDeadline","dayOfMonth","suffix","Banner","bgPattern","deadline","bgPatternFinished","buttonColor","isFinished","setIsFinished","timeLeft","setTimeLeft","deadlineDate","calculateTimeUnits","milliseconds","updateCountdown","now","remaining","interval","renderTimerCell","Drawer","position","PageHeader","sections","activeTab","onTabSelect","isStretched","extra","onBack","TopBar","SectionHeader","Page","section","SectionWrapper","ButtonGroup","NavigationItem","secondaryIcon","collapsed","isParentNode","Collapse","activeItemId","sideArrowIndex","child","ChevronUp","ChevronDown","subRoute","CourseCollapse","CheckCheck","Link","ProgressLine","percent","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","theme","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","result","originalClassName","isExternal","variantModifier","modifierId","classId","conflictGroups","group","twJoin","argument","resolvedValue","string","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","cn","inputs","Table","TableHeader","TableBody","TableRow","TableHead","TableCell","TableCaption","ShadcnTable","ShadcnTableBody","ShadcnTableCaption","colSpan","alignClass","ShadcnTableCell","ShadcnTableHeader","headerClass","ShadcnTableHead","ShadcnTableRow","Cell","cellType","cellClass","ProgressBarAlternative"],"mappings":"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","x_google_ignoreList":[0,10,11,12,13,14,15,16,17,18,19,62,63]}
1
+ {"version":3,"file":"stp-ui-kit.es.js","sources":["../node_modules/classnames/index.js","../src/components/form/InlineError/InlineError.tsx","../src/components/form/Checkbox/Checkbox.tsx","../src/components/form/FormItem/FormItemContext.tsx","../src/components/form/FormItem/FormItem.tsx","../src/components/form/Input/BaseInputWrapper.tsx","../src/components/form/Input/Input.tsx","../src/components/form/Input/TextArea.tsx","../src/components/form/RadioButton/RadioButton.tsx","../src/components/form/Select/Select.tsx","../node_modules/dayjs/dayjs.min.js","../node_modules/dayjs/locale/en.js","../node_modules/dayjs/locale/fr.js","../node_modules/dayjs/locale/kk.js","../node_modules/dayjs/locale/ru.js","../node_modules/dayjs/plugin/isSameOrAfter.js","../node_modules/dayjs/plugin/isSameOrBefore.js","../node_modules/dayjs/plugin/localeData.js","../node_modules/dayjs/plugin/localizedFormat.js","../node_modules/dayjs/plugin/weekday.js","../src/lib/dayjs.ts","../src/components/display/Avatar/fallbackAvatar.svg?react","../src/components/display/Avatar/Avatar.tsx","../src/components/feedback/Message/CustomToaster.tsx","../src/components/feedback/Message/Message.tsx","../src/components/feedback/Modal/Modal.tsx","../src/components/feedback/Modal/ModalApi.tsx","../src/components/feedback/Spinner/Spinner.tsx","../src/components/feedback/Tooltip/Tooltip.tsx","../src/components/feedback/Window/Window.tsx","../src/components/feedback/Window/WindowApi.tsx","../src/components/display/Button/Button.tsx","../src/components/display/Dropdown/Dropdown.tsx","../src/components/display/Empty/Empty.tsx","../src/components/display/IconButton/IconButton.tsx","../src/components/display/Typography/Typography.tsx","../src/components/display/SvgStyleWrapper/SvgStyleWrapper.tsx","../src/components/display/Icon/Icon.tsx","../src/components/display/OptionList/OptionList.tsx","../src/components/display/Illustration/Illustration.tsx","../src/components/display/Chip/Chip.tsx","../src/lib/useIsMobile.ts","../src/components/form/Calendar/CalendarDay/CalendarDay.tsx","../src/components/form/Calendar/CalendarDayHeader/CalendarDayHeader.tsx","../src/components/form/Calendar/dateUtils.ts","../src/components/form/Calendar/CalendarMonth/CalendarMonth.tsx","../src/components/form/Calendar/Calendar.tsx","../src/components/layout/Banner/utils/utils.ts","../src/components/layout/Banner/Banner.tsx","../src/components/layout/Drawer/Drawer.tsx","../src/components/layout/PageHeader/PageHeader.tsx","../src/components/layout/SectionHeader/SectionHeader.tsx","../src/components/layout/TopBar/TopBar.tsx","../src/components/layout/Page/Page.tsx","../src/components/layout/Section/Section.tsx","../src/components/layout/SectionWrapper/SectionWrapper.tsx","../src/components/layout/ButtonGroup/ButtonGroup.tsx","../src/components/navigation/NavigationItem/NavigationItem.tsx","../src/components/navigation/Collapse/Collapse.tsx","../src/components/navigation/CourseCollapse/CourseCollapse.tsx","../src/components/navigation/Link/Link.tsx","../src/components/data/ProgressLine/ProgressLine.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/data/Table/Table.tsx","../src/components/data/Table/Cell.tsx","../src/components/data/ProgressBarAlternative/ProgressBarAlternative.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 { 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, { ReactNode, 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?: ReactNode;\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 { 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 { 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","// 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, styles.textarea)}\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","import classNames from \"classnames\";\r\nimport { ReactNode } from \"react\";\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?: ReactNode;\r\n error?: string;\r\n helperText?: string;\r\n name: string;\r\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\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 classNames from \"classnames\";\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { InlineError } from \"../InlineError/InlineError\";\r\nimport styles from \"./Select.module.scss\";\r\n\r\ninterface SelectOption {\r\n label: string;\r\n value: string | number;\r\n disabled?: boolean;\r\n}\r\n\r\ninterface SelectProps {\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: SelectOption[];\r\n onChange?: (value: string | number) => void;\r\n onFocus?: () => void;\r\n onBlur?: () => void;\r\n}\r\n\r\nexport const Select = React.forwardRef<HTMLDivElement, SelectProps>(\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: SelectOption) => {\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 onClick={handleToggle}\r\n >\r\n <div\r\n ref={ref}\r\n className={classNames(styles.trigger)}\r\n tabIndex={disabled || readOnly ? -1 : 0}\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={classNames(styles.value, {\r\n [styles.placeholder]: !selectedOption\r\n })}>\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='1'\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\nSelect.displayName = \"Dropdown\";\r\nexport type { SelectProps, SelectOption };\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}));","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_en=n()}(this,(function(){\"use strict\";return{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(e){var n=[\"th\",\"st\",\"nd\",\"rd\"],t=e%100;return\"[\"+e+(n[(t-20)%10]||n[t]||n[0])+\"]\"}}}));","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_fr=n(e.dayjs)}(this,(function(e){\"use strict\";function n(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var t=n(e),i={name:\"fr\",weekdays:\"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi\".split(\"_\"),weekdaysShort:\"dim._lun._mar._mer._jeu._ven._sam.\".split(\"_\"),weekdaysMin:\"di_lu_ma_me_je_ve_sa\".split(\"_\"),months:\"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre\".split(\"_\"),monthsShort:\"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.\".split(\"_\"),weekStart:1,yearStart:4,formats:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},relativeTime:{future:\"dans %s\",past:\"il y a %s\",s:\"quelques secondes\",m:\"une minute\",mm:\"%d minutes\",h:\"une heure\",hh:\"%d heures\",d:\"un jour\",dd:\"%d jours\",M:\"un mois\",MM:\"%d mois\",y:\"un an\",yy:\"%d ans\"},ordinal:function(e){return\"\"+e+(1===e?\"er\":\"\")}};return t.default.locale(i,null,!0),i}));","!function(_,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],e):(_=\"undefined\"!=typeof globalThis?globalThis:_||self).dayjs_locale_kk=e(_.dayjs)}(this,(function(_){\"use strict\";function e(_){return _&&\"object\"==typeof _&&\"default\"in _?_:{default:_}}var t=e(_),d={name:\"kk\",weekdays:\"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі\".split(\"_\"),weekdaysShort:\"жек_дүй_сей_сәр_бей_жұм_сен\".split(\"_\"),weekdaysMin:\"жк_дй_сй_ср_бй_жм_сн\".split(\"_\"),months:\"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан\".split(\"_\"),monthsShort:\"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел\".split(\"_\"),weekStart:1,relativeTime:{future:\"%s ішінде\",past:\"%s бұрын\",s:\"бірнеше секунд\",m:\"бір минут\",mm:\"%d минут\",h:\"бір сағат\",hh:\"%d сағат\",d:\"бір күн\",dd:\"%d күн\",M:\"бір ай\",MM:\"%d ай\",y:\"бір жыл\",yy:\"%d жыл\"},ordinal:function(_){return _},formats:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"}};return t.default.locale(d,null,!0),d}));","!function(_,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],t):(_=\"undefined\"!=typeof globalThis?globalThis:_||self).dayjs_locale_ru=t(_.dayjs)}(this,(function(_){\"use strict\";function t(_){return _&&\"object\"==typeof _&&\"default\"in _?_:{default:_}}var e=t(_),n=\"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря\".split(\"_\"),s=\"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь\".split(\"_\"),r=\"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.\".split(\"_\"),o=\"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.\".split(\"_\"),i=/D[oD]?(\\[[^[\\]]*\\]|\\s)+MMMM?/;function d(_,t,e){var n,s;return\"m\"===e?t?\"минута\":\"минуту\":_+\" \"+(n=+_,s={mm:t?\"минута_минуты_минут\":\"минуту_минуты_минут\",hh:\"час_часа_часов\",dd:\"день_дня_дней\",MM:\"месяц_месяца_месяцев\",yy:\"год_года_лет\"}[e].split(\"_\"),n%10==1&&n%100!=11?s[0]:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?s[1]:s[2])}var u=function(_,t){return i.test(t)?n[_.month()]:s[_.month()]};u.s=s,u.f=n;var a=function(_,t){return i.test(t)?r[_.month()]:o[_.month()]};a.s=o,a.f=r;var m={name:\"ru\",weekdays:\"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота\".split(\"_\"),weekdaysShort:\"вск_пнд_втр_срд_чтв_птн_сбт\".split(\"_\"),weekdaysMin:\"вс_пн_вт_ср_чт_пт_сб\".split(\"_\"),months:u,monthsShort:a,weekStart:1,yearStart:4,formats:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY г.\",LLL:\"D MMMM YYYY г., H:mm\",LLLL:\"dddd, D MMMM YYYY г., H:mm\"},relativeTime:{future:\"через %s\",past:\"%s назад\",s:\"несколько секунд\",m:d,mm:d,h:\"час\",hh:d,d:\"день\",dd:d,M:\"месяц\",MM:d,y:\"год\",yy:d},ordinal:function(_){return _},meridiem:function(_){return _<4?\"ночи\":_<12?\"утра\":_<17?\"дня\":\"вечера\"}};return e.default.locale(m,null,!0),m}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrAfter=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)}}}));","!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrBefore=i()}(this,(function(){\"use strict\";return function(e,i){i.prototype.isSameOrBefore=function(e,i){return this.isSame(e,i)||this.isBefore(e,i)}}}));","!function(n,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).dayjs_plugin_localeData=e()}(this,(function(){\"use strict\";return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.slice(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return{months:function(e){return e?e.format(\"MMMM\"):u(n,\"months\")},monthsShort:function(e){return e?e.format(\"MMM\"):u(n,\"monthsShort\",\"months\",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format(\"dddd\"):u(n,\"weekdays\")},weekdaysMin:function(e){return e?e.format(\"dd\"):u(n,\"weekdaysMin\",\"weekdays\",2)},weekdaysShort:function(e){return e?e.format(\"ddd\"):u(n,\"weekdaysShort\",\"weekdays\",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return{firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),\"months\")},t.monthsShort=function(){return u(i(),\"monthsShort\",\"months\",3)},t.weekdays=function(n){return u(i(),\"weekdays\",null,null,n)},t.weekdaysShort=function(n){return u(i(),\"weekdaysShort\",\"weekdays\",3,n)},t.weekdaysMin=function(n){return u(i(),\"weekdaysMin\",\"weekdays\",2,n)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_localizedFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"};return function(t,o,n){var r=o.prototype,i=r.format;n.en.formats=e,r.format=function(t){void 0===t&&(t=\"YYYY-MM-DDTHH:mm:ssZ\");var o=this.$locale().formats,n=function(t,o){return t.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var i=r&&r.toUpperCase();return n||o[r]||e[r]||o[i].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,o){return t||o.slice(1)}))}))}(t,void 0===o?{}:o);return i.call(this,n)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekday=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.weekday=function(e){var t=this.$locale().weekStart||0,i=this.$W,n=(i<t?i+7:i)-t;return this.$utils().u(e)?n:this.subtract(n,\"day\").add(e,\"day\")}}}));","import dayjs from \"dayjs\";\r\nimport \"dayjs/locale/en\";\r\nimport \"dayjs/locale/fr\";\r\nimport \"dayjs/locale/kk\";\r\nimport \"dayjs/locale/ru\";\r\nimport isSameOrAfter from \"dayjs/plugin/isSameOrAfter\";\r\nimport isSameOrBefore from \"dayjs/plugin/isSameOrBefore\";\r\nimport localeData from \"dayjs/plugin/localeData\";\r\nimport localizedFormat from \"dayjs/plugin/localizedFormat\";\r\nimport weekday from \"dayjs/plugin/weekday\";\r\n\r\ndayjs.extend(localizedFormat);\r\ndayjs.extend(localeData);\r\ndayjs.extend(weekday);\r\ndayjs.extend(isSameOrAfter);\r\ndayjs.extend(isSameOrBefore);\r\n\r\nexport default dayjs;\r\nexport type { Dayjs } from \"dayjs\";\r\n","import * as React from \"react\";\nconst SvgFallbackAvatar = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 96 96\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"g\", { clipPath: \"url(#clip0_2167_12338)\" }, /* @__PURE__ */ React.createElement(\"mask\", { id: \"mask0_2167_12338\", style: {\n maskType: \"luminance\"\n}, maskUnits: \"userSpaceOnUse\", x: 0, y: 0, width: 96, height: 96 }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M96 48C96 21.4903 74.5097 0 48 0C21.4903 0 0 21.4903 0 48C0 74.5097 21.4903 96 48 96C74.5097 96 96 74.5097 96 48Z\", fill: \"white\" })), /* @__PURE__ */ React.createElement(\"g\", { mask: \"url(#mask0_2167_12338)\" }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M95.9995 0H-0.000534058V96H95.9995V0Z\", fill: \"#A78BFA\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M58.0874 121.564C84.9299 110.17 97.4534 79.1729 86.0594 52.3304C74.6654 25.4879 43.6687 12.9644 16.8261 24.3583C-10.0164 35.7523 -22.5399 66.7491 -11.1459 93.5916C0.248056 120.434 31.2448 132.958 58.0874 121.564Z\", fill: \"#E879F9\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M26.1158 61.0025C25.7926 63.6349 26.8769 66.3306 29.1302 68.4968C31.3835 70.6629 34.6212 72.1219 38.131 72.5529C41.6409 72.9838 45.1354 72.3514 47.8458 70.7948C50.5562 69.2381 52.2604 66.8847 52.5837 64.2523\", fill: \"black\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M29.0638 47.9304C29.2433 46.4686 28.5001 45.1744 27.4037 45.0398C26.3074 44.9052 25.2731 45.9811 25.0936 47.4429C24.9142 48.9047 25.6574 50.1988 26.7537 50.3334C27.8501 50.468 28.8843 49.3921 29.0638 47.9304Z\", fill: \"black\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M55.5317 51.1805C55.7112 49.7187 54.9679 48.4246 53.8716 48.29C52.7752 48.1553 51.741 49.2312 51.5615 50.693C51.382 52.1548 52.1253 53.4489 53.2216 53.5835C54.3179 53.7182 55.3522 52.6423 55.5317 51.1805Z\", fill: \"black\" }))), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"clipPath\", { id: \"clip0_2167_12338\" }, /* @__PURE__ */ React.createElement(\"rect\", { width: 96, height: 96, fill: \"white\" }))));\nexport default SvgFallbackAvatar;\n","import React from \"react\";\r\nimport { default as AvatarFallback } from \"./fallbackAvatar.svg?react\";\r\n\r\nexport interface AvatarProps extends React.ImgHTMLAttributes<HTMLImageElement> {\r\n size?: number;\r\n image?: string | null;\r\n}\r\n\r\nexport const Avatar = ({ image, size = 36, style, ...rest }: AvatarProps) => {\r\n if (!image) {\r\n return (\r\n <AvatarFallback\r\n style={{\r\n width: size,\r\n height: size,\r\n borderRadius: \"50%\",\r\n cursor: \"pointer\",\r\n ...style,\r\n }}\r\n />\r\n );\r\n }\r\n return (\r\n <img\r\n src={image}\r\n alt='user_avatar'\r\n width={size}\r\n height={size}\r\n style={{\r\n borderRadius: \"50%\",\r\n objectFit: \"cover\",\r\n cursor: \"pointer\",\r\n ...style,\r\n }}\r\n {...rest}\r\n />\r\n );\r\n};\r\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 { CircleCheck, OctagonAlert, TriangleAlert, X } from \"lucide-react\";\r\nimport { toast } from \"sonner\";\r\nimport { IconButton } from \"@/components/display\";\r\nimport styles from \"./Message.module.scss\";\r\n\r\ntype MessageType = \"default\" | \"warning\" | \"error\" | \"success\";\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 success(text: string) {\r\n toast.custom((t) => (\r\n <div className={`${styles.customToast} ${styles.success}`}>\r\n <div className={styles.content}>\r\n <CircleCheck className={styles.successIcon} />\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 } from \"lucide-react\";\r\nimport React, { HTMLAttributes, PropsWithChildren, ReactNode } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport { Button, ButtonProps, Typography } from \"@/components\";\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 size?: \"sm\" | \"lg\" | \"md\";\r\n}\r\n\r\nconst ModalBase = ({\r\n open,\r\n title,\r\n primaryButtonProps,\r\n secondaryButtonProps = [],\r\n tone = \"default\",\r\n fullHeight = false,\r\n children,\r\n size = \"md\",\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 <Typography>\r\n <div className={styles.modalLayout}>\r\n <div\r\n className={`${styles.modalContainer} ${toneClass} ${styles[size]} ${fullHeight && styles.fullHeight}`}\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\" && (\r\n <TriangleAlert className={styles.warning} />\r\n )}\r\n <Typography variant='heading-sm'>{title}</Typography>\r\n </div>\r\n </div>\r\n\r\n <div className={classNames(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 </Typography>,\r\n document.body,\r\n );\r\n};\r\n\r\nconst Section = ({\r\n children,\r\n className,\r\n ...rest\r\n}: PropsWithChildren<HTMLAttributes<HTMLDivElement>>) => (\r\n <section\r\n className={classNames(styles.section, className)}\r\n {...rest}\r\n >\r\n {children}\r\n </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 \"./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 styles from \"./Spinner.module.scss\";\r\n\r\ninterface SpinnerProps {\r\n size?: number;\r\n}\r\n\r\nexport const Spinner = ({ size = 20 }: SpinnerProps) => {\r\n return (\r\n <svg\r\n className={styles.spin}\r\n width={size}\r\n height={size}\r\n viewBox='0 0 50 50'\r\n >\r\n <circle\r\n cx='25'\r\n cy='25'\r\n r='20'\r\n strokeWidth='6'\r\n fill='none'\r\n strokeLinecap='round'\r\n strokeDasharray='100'\r\n strokeDashoffset='60'\r\n />\r\n </svg>\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 { OctagonAlert, TriangleAlert, X } from \"lucide-react\";\r\nimport React, { HTMLAttributes, PropsWithChildren, ReactNode } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport { Button, ButtonProps, IconButton, Typography } from \"@/components\";\r\nimport styles from \"./Window.module.scss\";\r\n\r\nexport interface WindowProps {\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 size?: \"sm\" | \"lg\" | \"md\";\r\n}\r\n\r\nconst WindowBase = ({\r\n open,\r\n onClose,\r\n title,\r\n primaryButtonProps,\r\n secondaryButtonProps,\r\n tone = \"default\",\r\n fullHeight = false,\r\n children,\r\n size = \"md\",\r\n}: WindowProps) => {\r\n if (!open) return null;\r\n\r\n const toneClass = styles[`tone-${tone}`] || \"\";\r\n\r\n return createPortal(\r\n <Typography>\r\n <div className={styles.WindowLayout}>\r\n <div\r\n className={`${styles.WindowContainer} ${toneClass} ${styles[size]} ${fullHeight && styles.fullHeight}`}\r\n onClick={(e) => e.stopPropagation()}\r\n role='dialog'\r\n aria-labelledby='Window-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\" && (\r\n <TriangleAlert className={styles.warning} />\r\n )}\r\n <Typography variant='heading-sm'>{title}</Typography>\r\n </div>\r\n {onClose && (\r\n <IconButton\r\n size='small'\r\n state='default'\r\n onClick={onClose}\r\n aria-label='Close Window'\r\n >\r\n <X />\r\n </IconButton>\r\n )}\r\n </div>\r\n\r\n <div className={classNames(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 </Typography>,\r\n document.body,\r\n );\r\n};\r\n\r\nconst Section = ({\r\n children,\r\n className,\r\n ...rest\r\n}: PropsWithChildren<HTMLAttributes<HTMLDivElement>>) => (\r\n <section\r\n className={classNames(styles.section, className)}\r\n {...rest}\r\n >\r\n {children}\r\n </section>\r\n);\r\n\r\ninterface WindowComponent extends React.FC<WindowProps> {\r\n Section: typeof Section;\r\n}\r\n\r\nconst Window = WindowBase as WindowComponent;\r\nWindow.Section = Section;\r\n\r\nexport { Window };\r\n","import { createRoot } from \"react-dom/client\";\r\nimport { Window, WindowProps } from \"./Window\";\r\n\r\nexport function showWindow(options: WindowProps) {\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 primaryButtonProps = options.primaryButtonProps\r\n ? {\r\n ...options.primaryButtonProps,\r\n onClick: () => {\r\n options.primaryButtonProps?.onClick?.();\r\n unmount();\r\n },\r\n }\r\n : undefined;\r\n\r\n const secondaryButtonProps = options.secondaryButtonProps?.map((btn) => ({\r\n ...btn,\r\n onClick: () => {\r\n btn.onClick?.();\r\n unmount();\r\n },\r\n }));\r\n\r\n root.render(\r\n <Window\r\n {...options}\r\n open={true}\r\n onClose={() => {\r\n options.onClose?.();\r\n unmount();\r\n }}\r\n primaryButtonProps={primaryButtonProps}\r\n secondaryButtonProps={secondaryButtonProps}\r\n >\r\n <Window.Section>{options.children}</Window.Section>\r\n </Window>,\r\n );\r\n}\r\n\r\nexport const WindowAPI = {\r\n error: (opts: Omit<WindowProps, \"tone\" | \"open\">) =>\r\n showWindow({ ...opts, tone: \"critical\", open: true }),\r\n\r\n warning: (opts: Omit<WindowProps, \"tone\" | \"open\">) =>\r\n showWindow({ ...opts, tone: \"warning\", open: true }),\r\n\r\n info: (opts: Omit<WindowProps, \"tone\" | \"open\">) =>\r\n showWindow({ ...opts, tone: \"default\", open: true }),\r\n};\r\n","import classNames from \"classnames\";\r\nimport { ButtonHTMLAttributes, ReactNode } from \"react\";\r\nimport { Spinner } from \"@/components/feedback\";\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 loading?: boolean;\r\n tone?: \"default\" | \"critical\" | \"warning\";\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 loading,\r\n type = \"button\",\r\n tone,\r\n ...rest\r\n}: ButtonProps) => {\r\n const buttonClass = classNames(\r\n styles.btn,\r\n tone ? styles[tone] : styles[state],\r\n styles[size],\r\n\r\n {\r\n [styles[`${state}-selected`]]: selected,\r\n },\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 type={type}\r\n >\r\n {loading ? <Spinner /> : children}\r\n </button>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport React, { ReactNode, useEffect, useRef, useState } from \"react\";\r\nimport styles from \"./Dropdown.module.scss\";\r\n\r\ninterface DropdownProps {\r\n children: ReactNode;\r\n trigger: ReactNode;\r\n className?: string;\r\n align?: \"left\" | \"right\";\r\n}\r\n\r\nexport const Dropdown: React.FC<DropdownProps> = ({\r\n children,\r\n trigger,\r\n className,\r\n align = \"left\",\r\n}) => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const dropdownRef = useRef<HTMLDivElement>(null);\r\n\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 }\r\n };\r\n\r\n if (isOpen) {\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n }\r\n\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [isOpen]);\r\n\r\n return (\r\n <div\r\n className={classNames(className)}\r\n ref={dropdownRef}\r\n style={{ position: \"relative\" }}\r\n >\r\n <div\r\n className={styles.trigger}\r\n onClick={() => setIsOpen((prev) => !prev)}\r\n >\r\n {trigger}\r\n </div>\r\n\r\n {isOpen && (\r\n <div\r\n className={classNames(styles.container, {\r\n [styles.alignRight]: align === \"right\",\r\n [styles.alignLeft]: align === \"left\",\r\n })}\r\n >\r\n {children}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport { ReactNode } from \"react\";\r\nimport { Button, Typography } from \"@/components\";\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-lg\"}\r\n weight='bold'\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 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 { 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 | \"display\";\r\n className?: string;\r\n children: ReactNode;\r\n weight?: \"regular\" | \"semibold\" | \"bold\" | \"medium\";\r\n underline?: boolean;\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","import React from \"react\";\r\nimport styles from \"./SvgStyleWrapper.module.scss\";\r\n\r\ninterface SvgStyleWrapperProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport const SvgStyleWrapper = ({\r\n children,\r\n className = \"\",\r\n}: SvgStyleWrapperProps) => {\r\n return <div className={`${styles.svgWrapper} ${className}`}>{children}</div>;\r\n};\r\n","import classNames from \"classnames\";\r\nimport React from \"react\";\r\nimport styles from \"./Icon.module.scss\";\r\n\r\nexport type IconDecorativeColors =\r\n | \"neutral\"\r\n | \"blue\"\r\n | \"violet\"\r\n | \"green\"\r\n | \"indigo\"\r\n | \"fuchsia\"\r\n | \"red\"\r\n | \"amber\"\r\n | \"lime\"\r\n | \"teal\";\r\n\r\nexport type IconType =\r\n | React.FC<React.SVGProps<SVGSVGElement>>\r\n | React.ReactElement<React.SVGProps<SVGSVGElement>>;\r\n\r\ninterface IconProps extends React.SVGAttributes<SVGElement> {\r\n icon: IconType;\r\n size?: number | string;\r\n strokeWidth?: number;\r\n className?: string;\r\n color?: IconDecorativeColors;\r\n}\r\n\r\nexport const Icon = ({\r\n icon,\r\n size,\r\n strokeWidth = 1.25,\r\n className,\r\n color,\r\n ...rest\r\n}: IconProps) => {\r\n const style = size ? { width: size, height: size } : undefined;\r\n\r\n if (color) {\r\n return (\r\n <div\r\n className={classNames(styles[color], styles.color, className)}\r\n style={style}\r\n >\r\n {typeof icon === \"function\"\r\n ? React.createElement(icon, {\r\n strokeWidth,\r\n className: \"stpIcon\",\r\n ...rest,\r\n })\r\n : React.isValidElement<React.SVGProps<SVGSVGElement>>(icon)\r\n ? React.cloneElement(icon, {\r\n strokeWidth,\r\n className: \"stpIcon\",\r\n ...rest,\r\n })\r\n : null}\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <span\r\n className={classNames(styles.icon, className)}\r\n style={style}\r\n >\r\n {typeof icon === \"function\"\r\n ? React.createElement(icon, {\r\n strokeWidth,\r\n className: \"stpIcon\",\r\n ...rest,\r\n })\r\n : React.isValidElement<React.SVGProps<SVGSVGElement>>(icon)\r\n ? React.cloneElement(icon, {\r\n strokeWidth,\r\n className: \"stpIcon\",\r\n ...rest,\r\n })\r\n : null}\r\n </span>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport styles from \"./OptionList.module.scss\";\r\n\r\nexport type ShadowLevel = \"lower\" | \"higher\";\r\n\r\nexport interface OptionListItem {\r\n label: string;\r\n icon?: React.ReactNode;\r\n onClick?: () => void;\r\n disabled?: boolean;\r\n}\r\n\r\nexport interface OptionListProps {\r\n items: OptionListItem[];\r\n onSelect?: (item: OptionListItem, index: number) => void;\r\n className?: string;\r\n shadow?: ShadowLevel;\r\n}\r\n\r\nexport const OptionList = ({\r\n items,\r\n onSelect,\r\n className,\r\n shadow = \"lower\",\r\n}: OptionListProps) => {\r\n return (\r\n <div\r\n className={classNames(\r\n styles.options,\r\n {\r\n [styles.shadowLower]: shadow === \"lower\",\r\n [styles.shadowHigher]: shadow === \"higher\",\r\n },\r\n className,\r\n )}\r\n role='menu'\r\n >\r\n <div className={styles.container}>\r\n {items.map((item, index) => (\r\n <div\r\n key={index}\r\n role='menuitem'\r\n className={classNames(styles.option, {\r\n [styles.disabled]: item.disabled,\r\n })}\r\n onClick={() => !item.disabled && onSelect?.(item, index)}\r\n aria-disabled={item.disabled || undefined}\r\n >\r\n {item.icon}\r\n <span>{item.label}</span>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport { ReactNode } from \"react\";\r\nimport { Button, Typography } from \"@/components\";\r\nimport styles from \"./Illustrations.module.scss\";\r\n\r\nexport interface IllustrationProps {\r\n children: ReactNode;\r\n className?: string;\r\n}\r\n\r\nconst IllustrationBase = ({ children, className = \"\" }: IllustrationProps) => (\r\n <div className={`${styles.IllustrationContainer} ${className}`}>\r\n {children}\r\n </div>\r\n);\r\n\r\nexport interface IllustrationTextProps {\r\n children: ReactNode;\r\n className?: string;\r\n}\r\n\r\nconst IllustrationTitle = ({\r\n children,\r\n className = \"\",\r\n}: IllustrationTextProps) => (\r\n <>\r\n <Typography\r\n className={classNames(className)}\r\n variant={\"heading-lg\"}\r\n weight='bold'\r\n >\r\n {children}\r\n </Typography>\r\n </>\r\n);\r\n\r\nconst IllustrationContext = ({\r\n children,\r\n className = \"\",\r\n}: IllustrationTextProps) => (\r\n <div className={classNames(className)}>{children}</div>\r\n);\r\n\r\nconst IllustrationContent = ({\r\n children,\r\n className = \"\",\r\n}: IllustrationTextProps) => (\r\n <div className={`${styles.content} ${className}`}>{children}</div>\r\n);\r\n\r\nconst IllustrationButtonContent = ({\r\n children,\r\n className = \"\",\r\n}: IllustrationTextProps) => (\r\n <div className={`${styles.buttonContent} ${className}`}>{children}</div>\r\n);\r\n\r\nexport interface IllustrationButtonProps {\r\n children: ReactNode;\r\n onClick?: () => void;\r\n className?: string;\r\n}\r\n\r\nconst IllustrationPrimaryButton = ({\r\n children,\r\n onClick,\r\n className = \"\",\r\n}: IllustrationButtonProps) => (\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 IllustrationSecondaryButton = ({\r\n children,\r\n onClick,\r\n className = \"\",\r\n}: IllustrationButtonProps) => (\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 IllustrationImageProps {\r\n src: string;\r\n className?: string;\r\n alt?: string;\r\n size?: \"small\" | \"large\";\r\n}\r\n\r\nconst IllustrationImage = ({\r\n src,\r\n className = \"\",\r\n alt = \"Illustration state image\",\r\n size = \"large\",\r\n}: IllustrationImageProps) => {\r\n return (\r\n <img\r\n className={classNames(\r\n styles.imageContent,\r\n size === \"small\" ? styles.imageSmall : styles.imageLarge,\r\n className,\r\n )}\r\n src={src}\r\n alt={alt}\r\n />\r\n );\r\n};\r\ninterface IllustrationType extends React.FC<IllustrationProps> {\r\n Title: typeof IllustrationTitle;\r\n Context: typeof IllustrationContext;\r\n Content: typeof IllustrationContent;\r\n ButtonContent: typeof IllustrationButtonContent;\r\n PrimaryButton: typeof IllustrationPrimaryButton;\r\n SecondaryButton: typeof IllustrationSecondaryButton;\r\n Image: typeof IllustrationImage;\r\n}\r\n\r\nconst Illustration = IllustrationBase as IllustrationType;\r\n\r\nIllustration.Title = IllustrationTitle;\r\nIllustration.Context = IllustrationContext;\r\nIllustration.Content = IllustrationContent;\r\nIllustration.ButtonContent = IllustrationButtonContent;\r\nIllustration.PrimaryButton = IllustrationPrimaryButton;\r\nIllustration.SecondaryButton = IllustrationSecondaryButton;\r\nIllustration.Image = IllustrationImage;\r\n\r\nexport { Illustration };\r\n","import classNames from \"classnames\";\r\nimport React, { ReactNode } from \"react\";\r\nimport { Typography } from \"../Typography/Typography\";\r\nimport styles from \"./Chip.module.scss\";\r\n\r\nexport type ChipColor =\r\n | \"blue\"\r\n | \"violet\"\r\n | \"fuchsia\"\r\n | \"lime\"\r\n | \"teal\"\r\n | \"indigo\"\r\n | \"red\"\r\n | \"amber\"\r\n | \"green\";\r\n\r\nexport interface ChipProps {\r\n label: string;\r\n icon?: ReactNode;\r\n color?: ChipColor;\r\n className?: string;\r\n size?: \"small\" | \"medium\";\r\n}\r\n\r\nexport const Chip: React.FC<ChipProps> = ({\r\n label,\r\n icon,\r\n color = \"blue\",\r\n className,\r\n size = \"medium\",\r\n}) => {\r\n return (\r\n <div\r\n className={classNames(styles.chip, styles[`chip--${color}`], className)}\r\n >\r\n {icon}\r\n <Typography\r\n weight='medium'\r\n variant={size === \"medium\" ? \"body-md\" : \"body-sm\"}\r\n >\r\n {label}\r\n </Typography>\r\n </div>\r\n );\r\n};\r\n","import { useEffect, useState } from \"react\";\r\n\r\nexport const useIsMobile = () => {\r\n const [isMobile, setIsMobile] = useState<boolean>(() => {\r\n if (typeof window !== \"undefined\") {\r\n return window.innerWidth < 481;\r\n }\r\n return false; // default for SSR\r\n });\r\n\r\n useEffect(() => {\r\n const handleResize = () => {\r\n setIsMobile(window.innerWidth < 481);\r\n };\r\n\r\n // run once on mount in case width changed before effect\r\n handleResize();\r\n\r\n window.addEventListener(\"resize\", handleResize);\r\n return () => window.removeEventListener(\"resize\", handleResize);\r\n }, []);\r\n\r\n return isMobile;\r\n};\r\n","import React, { forwardRef, memo, MouseEventHandler, useCallback } from \"react\";\r\nimport { Typography } from \"@/components/display\";\r\nimport styles from \"./CalendarDay.module.scss\";\r\n\r\nexport type CornerType = \"start\" | \"end\" | \"both\" | null;\r\n\r\nexport interface CalendarDayProps\r\n extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"onClick\"> {\r\n number: number;\r\n isActive?: boolean;\r\n isCorner?: boolean;\r\n isInRange?: boolean;\r\n cornerType?: CornerType;\r\n onClick?: (dayNumber: number) => void;\r\n disabled?: boolean;\r\n className?: string;\r\n}\r\n\r\nconst CalendarDayBase = forwardRef<HTMLButtonElement, CalendarDayProps>(\r\n (\r\n {\r\n number,\r\n isActive = false,\r\n isCorner = false,\r\n cornerType = null,\r\n onClick,\r\n disabled = false,\r\n isInRange = false,\r\n className = \"\",\r\n ...props\r\n },\r\n ref,\r\n ) => {\r\n const handleClick: MouseEventHandler<HTMLButtonElement> =\r\n useCallback(() => {\r\n if (!disabled && onClick) onClick(number);\r\n }, [disabled, onClick, number]);\r\n\r\n const dayClasses = [styles.calendarDay];\r\n\r\n if (isActive) dayClasses.push(styles.calendarDayActive);\r\n\r\n if (isCorner) {\r\n dayClasses.push(styles.calendarDayCorner);\r\n if (cornerType === \"start\")\r\n dayClasses.push(styles.calendarDayCornerStart);\r\n if (cornerType === \"end\") dayClasses.push(styles.calendarDayCornerEnd);\r\n }\r\n\r\n if (isInRange) dayClasses.push(styles.calendarDayInRange);\r\n if (className) dayClasses.push(className);\r\n\r\n return (\r\n <button\r\n ref={ref}\r\n type='button'\r\n className={dayClasses.join(\" \")}\r\n onClick={handleClick}\r\n disabled={disabled}\r\n aria-label={`Day ${number}`}\r\n {...props}\r\n >\r\n <Typography\r\n className={styles.calendarDayNumber}\r\n variant='body-md'\r\n >\r\n {number}\r\n </Typography>\r\n </button>\r\n );\r\n },\r\n);\r\n\r\nCalendarDayBase.displayName = \"CalendarDay\";\r\n\r\nconst areEqual = (\r\n prev: Readonly<CalendarDayProps>,\r\n next: Readonly<CalendarDayProps>,\r\n) =>\r\n prev.number === next.number &&\r\n prev.isActive === next.isActive &&\r\n prev.isCorner === next.isCorner &&\r\n prev.isInRange === next.isInRange &&\r\n prev.cornerType === next.cornerType &&\r\n prev.disabled === next.disabled &&\r\n prev.className === next.className &&\r\n prev.onClick === next.onClick;\r\n\r\nexport const CalendarDay = memo(CalendarDayBase, areEqual);\r\n","import dayjs from \"dayjs\";\r\nimport { Typography } from \"@/components/display\";\r\nimport styles from \"./CalendarDayHeaders.module.scss\";\r\n\r\ninterface CalendarDayHeaderProps {\r\n locale?: string;\r\n weekStartsOn?: 0 | 1;\r\n}\r\n\r\nconst CalendarDayHeader = ({\r\n locale,\r\n weekStartsOn = 1,\r\n}: CalendarDayHeaderProps) => {\r\n const start = dayjs()\r\n .locale(locale ?? dayjs.locale())\r\n .day(weekStartsOn);\r\n const days = Array.from({ length: 7 }).map((_, i) =>\r\n start.add(i, \"day\").locale(locale ?? dayjs.locale()),\r\n );\r\n\r\n return (\r\n <Typography>\r\n <div className={styles.headerRow}>\r\n {days.map((d, idx) => (\r\n <div\r\n key={idx}\r\n className={styles.headerCell}\r\n >\r\n {d.format(\"dd\")}\r\n </div>\r\n ))}\r\n </div>\r\n </Typography>\r\n );\r\n};\r\n\r\nexport default CalendarDayHeader;\r\n","import { Dayjs } from \"@/lib/dayjs\";\r\n\r\nexport const startOfDay = (d: Dayjs) => d.startOf(\"day\");\r\nexport const endOfDay = (d: Dayjs) => d.endOf(\"day\");\r\n\r\nexport const isSameDay = (a?: Dayjs | null, b?: Dayjs | null) =>\r\n !!a && !!b && a.isSame(b, \"day\");\r\n\r\nexport const isBefore = (a: Dayjs, b: Dayjs) => a.isBefore(b, \"day\");\r\nexport const isAfter = (a: Dayjs, b: Dayjs) => a.isAfter(b, \"day\");\r\n\r\nexport const clampDate = (d: Dayjs, min?: Dayjs, max?: Dayjs) => {\r\n if (min && d.isBefore(min, \"day\")) return min;\r\n if (max && d.isAfter(max, \"day\")) return max;\r\n return d;\r\n};\r\n\r\nexport const addMonths = (d: Dayjs, n: number) => d.add(n, \"month\");\r\nexport const addDays = (d: Dayjs, n: number) => d.add(n, \"day\");\r\n\r\n/** 6×7 grid for a month view */\r\nexport const daysInMonthGrid = (month: Dayjs, weekStartsOn: 0 | 1) => {\r\n const firstOfMonth = month.startOf(\"month\");\r\n const firstDow = firstOfMonth.day();\r\n const offset = (firstDow - weekStartsOn + 7) % 7;\r\n const gridStart = firstOfMonth.subtract(offset, \"day\");\r\n\r\n return Array.from({ length: 42 }).map((_, i) => {\r\n const date = gridStart.add(i, \"day\");\r\n return {\r\n date,\r\n inCurrentMonth: date.month() === month.month(),\r\n };\r\n });\r\n};\r\n\r\nexport const isDisabled = (d: Dayjs, min?: Dayjs, max?: Dayjs) =>\r\n (min && d.isBefore(min, \"day\")) || (max && d.isAfter(max, \"day\"));\r\n","import { ArrowLeft, ArrowRight } from \"lucide-react\";\r\nimport { memo, useCallback, useMemo } from \"react\";\r\nimport { IconButton, Typography } from \"@/components/display\";\r\nimport dayjs, { Dayjs } from \"@/lib/dayjs\";\r\nimport { useIsMobile } from \"@/lib/useIsMobile\";\r\nimport { CalendarDay, CornerType } from \"../CalendarDay/CalendarDay\";\r\nimport CalendarDayHeader from \"../CalendarDayHeader/CalendarDayHeader\";\r\nimport { daysInMonthGrid, isDisabled } from \"./../dateUtils\";\r\nimport styles from \"./CalendarMonth.module.scss\";\r\n\r\nexport interface CalendarMonthProps {\r\n monthDate: Dayjs;\r\n weekStartsOn: 0 | 1;\r\n locale?: string;\r\n minDate?: Dayjs;\r\n maxDate?: Dayjs;\r\n onSelectDay: (d: Dayjs) => void;\r\n isInRange?: (d: Dayjs) => boolean;\r\n isSelected?: (d: Dayjs) => boolean;\r\n cornerType?: (d: Dayjs) => CornerType;\r\n allowRange?: boolean;\r\n\r\n showPrev?: boolean;\r\n showNext?: boolean;\r\n onPrev?: () => void;\r\n onNext?: () => void;\r\n prevDisabled?: boolean;\r\n nextDisabled?: boolean;\r\n}\r\n\r\nconst CalendarMonthBase = ({\r\n monthDate,\r\n weekStartsOn,\r\n locale,\r\n minDate,\r\n maxDate,\r\n onSelectDay,\r\n isInRange = () => false,\r\n isSelected = () => false,\r\n cornerType = () => null,\r\n allowRange = false,\r\n showPrev = false,\r\n showNext = false,\r\n onPrev,\r\n onNext,\r\n prevDisabled = false,\r\n nextDisabled = false,\r\n}: CalendarMonthProps) => {\r\n const grid = useMemo(\r\n () => daysInMonthGrid(monthDate, weekStartsOn),\r\n [monthDate, weekStartsOn],\r\n );\r\n\r\n const monthLabel = useMemo(() => {\r\n const loc = locale ?? dayjs.locale();\r\n const formatted = monthDate.locale(loc).format(\"MMMM YYYY\");\r\n return formatted.charAt(0).toUpperCase() + formatted.slice(1);\r\n }, [monthDate, locale]);\r\n\r\n const onSelectMemo = useCallback(\r\n (d: Dayjs) => () => onSelectDay(d),\r\n [onSelectDay],\r\n );\r\n const isMobile = useIsMobile();\r\n\r\n return (\r\n <div className={styles.month}>\r\n <div className={styles.header}>\r\n {showPrev ? (\r\n <IconButton\r\n type='button'\r\n size={isMobile ? \"large\" : \"small\"}\r\n state={isMobile ? \"default\" : \"tertiary\"}\r\n aria-label='Previous month'\r\n onClick={onPrev}\r\n disabled={prevDisabled}\r\n >\r\n <ArrowLeft />\r\n </IconButton>\r\n ) : (\r\n <span className={styles.navSpacer} />\r\n )}\r\n\r\n <Typography\r\n variant={isMobile ? \"heading-md\" : \"body-md\"}\r\n weight={isMobile ? \"semibold\" : \"medium\"}\r\n >\r\n {monthLabel}\r\n </Typography>\r\n\r\n {showNext ? (\r\n <IconButton\r\n size={isMobile ? \"large\" : \"small\"}\r\n state={isMobile ? \"default\" : \"tertiary\"}\r\n type='button'\r\n aria-label='Next month'\r\n onClick={onNext}\r\n disabled={nextDisabled}\r\n >\r\n <ArrowRight />\r\n </IconButton>\r\n ) : (\r\n <span className={styles.navSpacer} />\r\n )}\r\n </div>\r\n\r\n <CalendarDayHeader\r\n locale={locale}\r\n weekStartsOn={weekStartsOn}\r\n />\r\n\r\n <div className={styles.grid}>\r\n {grid.map((cell) => {\r\n const inCurrentMonth = cell.inCurrentMonth;\r\n const outOfRange = isDisabled(cell.date, minDate, maxDate);\r\n const available = inCurrentMonth;\r\n\r\n if (!available) {\r\n return (\r\n <div\r\n key={cell.date.valueOf()}\r\n className={styles.emptyCell}\r\n aria-hidden='true'\r\n />\r\n );\r\n }\r\n\r\n const active = isSelected(cell.date);\r\n const corner = allowRange\r\n ? cornerType(cell.date)\r\n : active\r\n ? \"both\"\r\n : null;\r\n const inRange = allowRange && isInRange(cell.date) && !active;\r\n\r\n return (\r\n <CalendarDay\r\n key={cell.date.valueOf()}\r\n number={cell.date.date()}\r\n disabled={outOfRange}\r\n isActive={active}\r\n isCorner={!!corner}\r\n isInRange={inRange}\r\n cornerType={corner}\r\n onClick={onSelectMemo(cell.date)}\r\n aria-label={cell.date.format(\"YYYY-MM-DD\")}\r\n />\r\n );\r\n })}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nconst djEq = (a?: Dayjs, b?: Dayjs) =>\r\n (a ? a.valueOf() : undefined) === (b ? b.valueOf() : undefined);\r\n\r\nconst areEqual = (prev: CalendarMonthProps, next: CalendarMonthProps) =>\r\n djEq(prev.monthDate, next.monthDate) &&\r\n prev.weekStartsOn === next.weekStartsOn &&\r\n djEq(prev.minDate, next.minDate) &&\r\n djEq(prev.maxDate, next.maxDate) &&\r\n prev.allowRange === next.allowRange &&\r\n prev.isInRange === next.isInRange &&\r\n prev.isSelected === next.isSelected &&\r\n prev.cornerType === next.cornerType &&\r\n prev.onSelectDay === next.onSelectDay &&\r\n prev.showPrev === next.showPrev &&\r\n prev.showNext === next.showNext &&\r\n prev.onPrev === next.onPrev &&\r\n prev.onNext === next.onNext &&\r\n prev.prevDisabled === next.prevDisabled &&\r\n prev.nextDisabled === next.nextDisabled;\r\n\r\nexport const CalendarMonth = memo(CalendarMonthBase, areEqual);\r\n","import classNames from \"classnames\";\r\nimport { useMemo, useState } from \"react\";\r\nimport dayjs, { Dayjs } from \"@/lib/dayjs\";\r\nimport { CalendarMonth } from \"./CalendarMonth/CalendarMonth\";\r\nimport styles from \"./Calendars.module.scss\";\r\nimport {\r\n addMonths,\r\n clampDate,\r\n endOfDay,\r\n isAfter,\r\n isBefore,\r\n isSameDay,\r\n startOfDay,\r\n} from \"./dateUtils\";\r\n\r\n/** Public value types */\r\nexport type SingleValue = Dayjs | null;\r\nexport type RangeTuple = [Dayjs | null, Dayjs | null];\r\nexport type RangeValue = RangeTuple | null;\r\n\r\n/** Shared props */\r\nexport type BaseProps = {\r\n multiMonth?: boolean;\r\n onCard?: boolean;\r\n locale?: string;\r\n initialMonth?: Dayjs;\r\n minDate?: Dayjs;\r\n maxDate?: Dayjs;\r\n weekStartsOn?: 0 | 1;\r\n className?: string;\r\n};\r\n\r\n/** Single-date props (default mode) */\r\nexport type CalendarPropsSingle = BaseProps & {\r\n allowRange?: false;\r\n value?: SingleValue;\r\n defaultValue?: SingleValue;\r\n onChange?: (value: SingleValue) => void;\r\n};\r\n\r\n/** Range props (when allowRange is true) */\r\nexport type CalendarPropsRange = BaseProps & {\r\n allowRange: true;\r\n value?: RangeValue;\r\n defaultValue?: RangeValue;\r\n onChange?: (value: RangeValue) => void;\r\n};\r\n\r\n/** Discriminated union of prop shapes */\r\nexport type CalendarProps = CalendarPropsSingle | CalendarPropsRange;\r\n\r\n/** Narrowing helpers */\r\nexport const asDay = (d: Dayjs | Date | null | undefined) =>\r\n d ? dayjs(d) : null;\r\n\r\n/** Overloads for better DX */\r\nexport function Calendar(props: CalendarPropsSingle): JSX.Element;\r\nexport function Calendar(props: CalendarPropsRange): JSX.Element;\r\n\r\n/** Implementation */\r\nexport function Calendar({\r\n value,\r\n defaultValue = null,\r\n onChange,\r\n allowRange = false,\r\n multiMonth = false,\r\n onCard = false,\r\n initialMonth,\r\n minDate,\r\n maxDate,\r\n locale,\r\n weekStartsOn = 1,\r\n className = \"\",\r\n}: CalendarProps) {\r\n /** Uncontrolled if value is undefined; otherwise controlled */\r\n const uncontrolled = value === undefined;\r\n\r\n /** Internal state mirrors the correct shape based on allowRange */\r\n const [internal, setInternal] = useState<SingleValue | RangeValue>(\r\n defaultValue,\r\n );\r\n\r\n /** Current value respecting controlled/uncontrolled usage */\r\n const controlledValue = uncontrolled ? internal : value;\r\n\r\n /** Derive start/end depending on mode */\r\n const [start, end] = useMemo<[Dayjs | null, Dayjs | null]>(() => {\r\n if (!allowRange) return [asDay(controlledValue as SingleValue), null];\r\n const v = controlledValue as RangeValue;\r\n return v ? [asDay(v[0]), asDay(v[1])] : [null, null];\r\n }, [allowRange, controlledValue]);\r\n\r\n /** Determine initial visible month */\r\n const firstVisible = useMemo(() => {\r\n if (initialMonth) return initialMonth.startOf(\"month\");\r\n if (start) return start.startOf(\"month\");\r\n return dayjs().startOf(\"month\");\r\n }, [initialMonth, start]);\r\n\r\n /** Anchor for left/only month */\r\n const [monthAnchor, setMonthAnchor] = useState<Dayjs>(firstVisible);\r\n const monthsToShow = multiMonth ? 2 : 1;\r\n\r\n /** Day click handling with strict typing */\r\n const handleDayClick = (day: Dayjs) => {\r\n const dayClamped = clampDate(day, minDate, maxDate);\r\n\r\n if (!allowRange) {\r\n // SINGLE MODE\r\n const nextVal: SingleValue = dayClamped;\r\n if (uncontrolled) setInternal(nextVal);\r\n (onChange as CalendarPropsSingle[\"onChange\"] | undefined)?.(nextVal);\r\n return;\r\n }\r\n\r\n // RANGE MODE\r\n if (!start || (start && end)) {\r\n const next: RangeValue = [dayClamped, null];\r\n if (uncontrolled) setInternal(next);\r\n (onChange as CalendarPropsRange[\"onChange\"] | undefined)?.(next);\r\n } else if (start && !end) {\r\n const s = startOfDay(start);\r\n const e = endOfDay(dayClamped);\r\n const next: RangeValue = isBefore(e, s) ? [dayClamped, s] : [s, e];\r\n if (uncontrolled) setInternal(next);\r\n (onChange as CalendarPropsRange[\"onChange\"] | undefined)?.(next);\r\n }\r\n };\r\n\r\n /** Optional nav constraints */\r\n const canGoPrev = useMemo(() => {\r\n if (!minDate) return true;\r\n const prevMonthEnd = monthAnchor.startOf(\"month\").subtract(1, \"day\");\r\n return prevMonthEnd.isSame(minDate, \"day\") || prevMonthEnd.isAfter(minDate);\r\n }, [monthAnchor, minDate]);\r\n\r\n const canGoNext = useMemo(() => {\r\n if (!maxDate) return true;\r\n const nextMonthStart = monthAnchor.add(1, \"month\").startOf(\"month\");\r\n return (\r\n nextMonthStart.isSame(maxDate, \"day\") || nextMonthStart.isBefore(maxDate)\r\n );\r\n }, [monthAnchor, maxDate]);\r\n\r\n const goPrev = () => {\r\n if (!canGoPrev) return;\r\n setMonthAnchor((m) => m.add(-1, \"month\").startOf(\"month\"));\r\n };\r\n\r\n const goNext = () => {\r\n if (!canGoNext) return;\r\n setMonthAnchor((m) => m.add(1, \"month\").startOf(\"month\"));\r\n };\r\n\r\n return (\r\n <div\r\n className={classNames(\r\n styles.calendarRoot,\r\n onCard ? styles.onCard : \"\",\r\n multiMonth && styles.multiMonth,\r\n className,\r\n )}\r\n >\r\n <div\r\n className={styles.months}\r\n data-columns={monthsToShow}\r\n >\r\n {/* LEFT / ONLY month */}\r\n <CalendarMonth\r\n monthDate={monthAnchor}\r\n weekStartsOn={weekStartsOn}\r\n minDate={minDate}\r\n maxDate={maxDate}\r\n locale={locale}\r\n onSelectDay={handleDayClick}\r\n isInRange={(d) =>\r\n !!start && !!end && !isBefore(d, start) && !isAfter(d, end)\r\n }\r\n isSelected={(d) =>\r\n isSameDay(d, start) || (!!end && isSameDay(d, end))\r\n }\r\n cornerType={(d) => {\r\n const isStart = !!start && isSameDay(d, start);\r\n const isEnd = !!end && isSameDay(d, end);\r\n if (isStart && isEnd) return \"both\";\r\n if (isStart) return \"start\";\r\n if (isEnd) return \"end\";\r\n return null;\r\n }}\r\n allowRange={allowRange}\r\n // nav\r\n showPrev\r\n showNext={!multiMonth}\r\n onPrev={goPrev}\r\n onNext={!multiMonth ? goNext : undefined}\r\n prevDisabled={!canGoPrev}\r\n nextDisabled={!canGoNext && !multiMonth}\r\n />\r\n\r\n {/* RIGHT month (only when multiMonth) */}\r\n {monthsToShow === 2 && (\r\n <CalendarMonth\r\n monthDate={addMonths(monthAnchor, 1)}\r\n locale={locale}\r\n weekStartsOn={weekStartsOn}\r\n minDate={minDate}\r\n maxDate={maxDate}\r\n onSelectDay={handleDayClick}\r\n isInRange={(d) =>\r\n !!start && !!end && !isBefore(d, start) && !isAfter(d, end)\r\n }\r\n isSelected={(d) =>\r\n isSameDay(d, start) || (!!end && isSameDay(d, end))\r\n }\r\n cornerType={(d) => {\r\n const isStart = !!start && isSameDay(d, start);\r\n const isEnd = !!end && isSameDay(d, end);\r\n if (isStart && isEnd) return \"both\";\r\n if (isStart) return \"start\";\r\n if (isEnd) return \"end\";\r\n return null;\r\n }}\r\n allowRange={allowRange}\r\n // nav\r\n showPrev={false}\r\n showNext\r\n onNext={goNext}\r\n nextDisabled={\r\n !!maxDate &&\r\n addMonths(monthAnchor, 2)\r\n .startOf(\"month\")\r\n .isAfter(maxDate.startOf(\"month\"))\r\n }\r\n />\r\n )}\r\n </div>\r\n </div>\r\n );\r\n}\r\n","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(\r\n dayOfMonth.toString(),\r\n `${dayOfMonth}${suffix}`,\r\n );\r\n\r\n return `${formattedDeadline} (UTC +5)`;\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Typography } from \"@/components/display\";\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 { X } from \"lucide-react\";\r\nimport { ReactNode } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport { IconButton, Typography } from \"@/components\";\r\nimport styles from \"./Drawer.module.scss\";\r\n\r\nexport type DrawerPosition = \"left\" | \"right\" | \"bottom\";\r\nexport type DrawerSize = \"sm\" | \"md\" | \"lg\";\r\n\r\nexport interface DrawerProps {\r\n open: boolean;\r\n onClose: () => void;\r\n title?: string;\r\n children: ReactNode;\r\n position?: DrawerPosition;\r\n size?: DrawerSize;\r\n}\r\n\r\nexport const Drawer = ({\r\n open,\r\n onClose,\r\n title,\r\n children,\r\n position = \"right\",\r\n size = \"md\",\r\n}: DrawerProps) => {\r\n if (!open) return null;\r\n\r\n return createPortal(\r\n <div\r\n className={styles.drawerLayout}\r\n onClick={onClose}\r\n >\r\n <aside\r\n className={classNames(\r\n styles.drawerContainer,\r\n styles[position],\r\n styles[size],\r\n )}\r\n onClick={(e) => e.stopPropagation()}\r\n role='dialog'\r\n aria-modal='true'\r\n aria-labelledby='drawer-title'\r\n >\r\n <div className={styles.header}>\r\n {title && <Typography variant='heading-sm'>{title}</Typography>}\r\n <IconButton\r\n size='small'\r\n state='default'\r\n onClick={onClose}\r\n aria-label='Close drawer'\r\n >\r\n <X />\r\n </IconButton>\r\n </div>\r\n <div className={styles.content}>{children}</div>\r\n </aside>\r\n </div>,\r\n document.body,\r\n );\r\n};\r\n","import { ArrowLeft } from \"lucide-react\";\r\nimport { ReactNode } from \"react\";\r\nimport { IconButton, TopBar, TopBarProps, Typography } from \"@/components\";\r\nimport styles from \"./PageHeader.module.scss\";\r\n\r\nexport interface PageHeaderProps {\r\n title: string | ReactNode;\r\n sections?: TopBarProps[\"sections\"];\r\n activeTab?: TopBarProps[\"activeTab\"];\r\n onTabSelect?: TopBarProps[\"onTabSelect\"];\r\n isStretched?: TopBarProps[\"isStretched\"];\r\n extra?: ReactNode;\r\n message?: string;\r\n type?: \"primary\" | \"secondary\";\r\n onBack?: () => void;\r\n}\r\n\r\nexport const PageHeader = ({\r\n title,\r\n sections,\r\n activeTab,\r\n onTabSelect,\r\n isStretched,\r\n extra,\r\n message,\r\n type = \"primary\",\r\n onBack,\r\n}: PageHeaderProps) => {\r\n if (type == \"primary\") {\r\n return (\r\n <div className={styles.container}>\r\n <div className={styles.title}>\r\n <header className={styles.pageHeader}>\r\n <Typography variant='heading-xl'>{title}</Typography>\r\n {extra}\r\n </header>\r\n {message && (\r\n <Typography className={styles.secondary}>{message}</Typography>\r\n )}\r\n </div>\r\n {sections && onTabSelect && (\r\n <TopBar\r\n sections={sections}\r\n activeTab={activeTab}\r\n onTabSelect={onTabSelect}\r\n isStretched={isStretched}\r\n />\r\n )}\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className={styles.secondaryContainer}>\r\n <IconButton\r\n size='medium'\r\n state='tertiary'\r\n onClick={onBack}\r\n className={styles.icon}\r\n >\r\n <ArrowLeft />\r\n </IconButton>\r\n <div className={styles.centerContent}>\r\n <Typography variant='heading-sm'>{title}</Typography>\r\n {message && (\r\n <Typography\r\n variant='body-sm'\r\n weight='semibold'\r\n className={styles.subtitle}\r\n >\r\n {message}\r\n </Typography>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import { ReactNode } from \"react\";\r\nimport { Typography } from \"@/components/display\";\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 variant='heading-md'>{title}</Typography>\r\n {extra}\r\n </div>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport React from \"react\";\r\nimport { Page, Typography } from \"@/components\";\r\nimport { useIsMobile } from \"@/lib/useIsMobile\";\r\nimport styles from \"./TopBar.module.scss\";\r\n\r\nexport interface TopbarSection {\r\n id: number | string;\r\n title: string;\r\n component: React.ReactNode;\r\n}\r\n\r\nexport interface TopBarProps {\r\n sections: TopbarSection[];\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 const isMobile = useIsMobile();\r\n return (\r\n <Page>\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={isMobile ? \"body-md\" : \"heading-md\"}\r\n weight={isMobile ? \"medium\" : \"semibold\"}\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 </Page>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport { HTMLAttributes, PropsWithChildren } from \"react\";\r\nimport styles from \"./Page.module.scss\";\r\n\r\nexport const Page = ({\r\n children,\r\n className,\r\n ...rest\r\n}: PropsWithChildren<HTMLAttributes<HTMLDivElement>>) => {\r\n return (\r\n <div\r\n className={classNames(styles.page, className)}\r\n {...rest}\r\n >\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport { HTMLAttributes, PropsWithChildren } from \"react\";\r\nimport styles from \"./Section.module.scss\";\r\n\r\nexport const Section = ({\r\n children,\r\n className,\r\n ...rest\r\n}: PropsWithChildren<HTMLAttributes<HTMLDivElement>>) => {\r\n return (\r\n <div\r\n className={classNames(styles.section, className)}\r\n {...rest}\r\n >\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport { HTMLAttributes, PropsWithChildren } from \"react\";\r\nimport styles from \"./SectionWrapper.module.scss\";\r\n\r\nexport const SectionWrapper = ({\r\n children,\r\n className,\r\n ...rest\r\n}: PropsWithChildren<HTMLAttributes<HTMLDivElement>>) => {\r\n return (\r\n <div\r\n className={classNames(styles.sectionWrapper, className)}\r\n {...rest}\r\n >\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import { HTMLAttributes, PropsWithChildren } from \"react\";\r\nimport styles from \"./ButtonGroup.module.scss\";\r\n\r\ntype ButtonGroupProps = PropsWithChildren<HTMLAttributes<HTMLDivElement>>;\r\n\r\nexport const ButtonGroup = ({ children, ...rest }: ButtonGroupProps) => {\r\n return (\r\n <div\r\n className={styles.container}\r\n {...rest}\r\n >\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import classNames from \"classnames\";\r\nimport React from \"react\";\r\nimport { Typography } from \"@/components/display\";\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 {label && (\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 )}\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 {\r\n CheckCheck,\r\n ChevronDown,\r\n ChevronUp,\r\n LockKeyhole,\r\n LockKeyholeOpen,\r\n} 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 disabled?: boolean;\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.disabled ? (\r\n <LockKeyhole size={20} />\r\n ) : subRoute.completed ? (\r\n <CheckCheck\r\n size={20}\r\n className={styles.iconCheck}\r\n />\r\n ) : (\r\n <LockKeyholeOpen size={20} />\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 { AnchorHTMLAttributes, ReactNode } from \"react\";\r\nimport styles from \"./Link.module.scss\";\r\n\r\ninterface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\r\n children: ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport const Link = ({ children, className = \"\", ...rest }: LinkProps) => {\r\n return (\r\n <a\r\n className={classNames(styles.link, className)}\r\n {...rest}\r\n >\r\n {children}\r\n </a>\r\n );\r\n};\r\n","import { ReactNode } from \"react\";\r\nimport styles from \"./ProgressLine.module.scss\";\r\n\r\nexport interface ProgressLineProps {\r\n percent: number;\r\n extra?: ReactNode;\r\n}\r\nexport const ProgressLine = ({ percent, extra }: 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 {extra}\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 { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import * as React from \"react\";\r\nimport { cn } from \"@/lib/utils\";\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 {\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\nimport styles from \"./Table.module.scss\";\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, styles.table)}\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 { 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","import classNames from \"classnames\";\r\nimport React, { ReactNode } from \"react\";\r\nimport styles from \"./ProgressBarAlternative.module.scss\";\r\n\r\nexport type ProgressColor =\r\n | \"blue\"\r\n | \"violet\"\r\n | \"fuchsia\"\r\n | \"lime\"\r\n | \"teal\"\r\n | \"indigo\"\r\n | \"red\"\r\n | \"amber\"\r\n | \"green\";\r\n\r\nexport interface ProgressBarAlternativeProps {\r\n percent: number;\r\n extra?: ReactNode;\r\n color?: ProgressColor;\r\n className?: string;\r\n}\r\n\r\nexport const ProgressBarAlternative: React.FC<ProgressBarAlternativeProps> = ({\r\n percent,\r\n color = \"blue\",\r\n className,\r\n extra,\r\n}) => {\r\n return (\r\n <div\r\n className={classNames(\r\n styles.progressContainer,\r\n styles[`container--${color}`],\r\n className,\r\n )}\r\n >\r\n <div\r\n className={classNames(styles.progressFill, styles[`fill--${color}`])}\r\n style={{ width: `${percent}%` }}\r\n />\r\n <span className={classNames(styles.label, styles[`text--${color}`])}>\r\n {extra}\r\n </span>\r\n </div>\r\n );\r\n};\r\n"],"names":["hasOwn","classNames","classes","i","arg","appendClass","parseValue","key","value","newClass","module","InlineError","children","styles","jsx","CircleAlert","Checkbox","label","error","helperText","disabled","className","indeterminate","onChange","rest","ref","useRef","useEffect","handleLabelClick","event","jsxs","FormItemContext","createContext","useFormItem","useContext","FormItem","readOnly","state","Label","Input","React","Component","props","Message","BaseInputWrapper","prefix","postfix","maskRegex","textPrefix","onFocus","handleChange","e","handleFocus","newVal","TextArea","defaultValue","rows","isControlled","internalValue","setInternalValue","useState","currentValue","val","RadioButton","name","Select","placeholder","options","onBlur","isOpen","setIsOpen","focusedIndex","setFocusedIndex","dropdownRef","optionsRef","selectedOption","option","handleToggle","handleOptionSelect","handleKeyDown","nextIndex","prevIndex","handleClickOutside","index","el","t","this","n","r","s","u","a","o","c","f","h","d","l","$","y","M","m","v","g","D","p","S","_","w","O","k","require$$0","dayjs","localizedFormat","localeData","weekday","isSameOrAfter","isSameOrBefore","SvgFallbackAvatar","Avatar","image","size","style","AvatarFallback","CustomToaster","Toaster","message","text","toast","IconButton","X","TriangleAlert","OctagonAlert","CircleCheck","type","ModalBase","open","title","primaryButtonProps","secondaryButtonProps","tone","fullHeight","toneClass","createPortal","Typography","Button","Section","Modal","showModal","container","root","createRoot","unmount","handleOk","_a","handleCancel","ModalAPI","opts","Spinner","Tooltip","controlledActive","content","hoverDelay","preferredPosition","zIndexOverride","trigger","tooltipClassName","active","setActive","computedPosition","setComputedPosition","hoverTimeout","persist","triggerRef","isActive","canTriggerHover","canTriggerClick","tooltipId","useId","positionClass","wrapperClassName","tooltipClass","rect","spaceAbove","spaceBelow","WindowBase","onClose","Window","showWindow","_b","btn","WindowAPI","selected","onClick","loading","buttonClass","Dropdown","align","prev","EmptyBase","EmptyTitle","Fragment","EmptyContext","EmptyContent","EmptyButtonContent","EmptyPrimaryButton","EmptySecondaryButton","EmptyImage","src","alt","Empty","variant","weight","variantClass","weightClass","SvgStyleWrapper","Icon","icon","strokeWidth","color","OptionList","items","onSelect","shadow","item","IllustrationBase","IllustrationTitle","IllustrationContext","IllustrationContent","IllustrationButtonContent","IllustrationPrimaryButton","IllustrationSecondaryButton","IllustrationImage","Illustration","Chip","useIsMobile","isMobile","setIsMobile","handleResize","CalendarDayBase","forwardRef","number","isCorner","cornerType","isInRange","handleClick","useCallback","dayClasses","areEqual","next","CalendarDay","memo","CalendarDayHeader","locale","weekStartsOn","start","days","idx","startOfDay","endOfDay","isSameDay","b","isBefore","isAfter","clampDate","min","max","addMonths","addDays","daysInMonthGrid","month","firstOfMonth","offset","gridStart","date","isDisabled","CalendarMonthBase","monthDate","minDate","maxDate","onSelectDay","isSelected","allowRange","showPrev","showNext","onPrev","onNext","prevDisabled","nextDisabled","grid","useMemo","monthLabel","loc","formatted","onSelectMemo","ArrowLeft","ArrowRight","cell","inCurrentMonth","outOfRange","corner","inRange","djEq","CalendarMonth","asDay","Calendar","multiMonth","onCard","initialMonth","uncontrolled","internal","setInternal","controlledValue","end","firstVisible","monthAnchor","setMonthAnchor","monthsToShow","handleDayClick","day","dayClamped","nextVal","canGoPrev","prevMonthEnd","canGoNext","nextMonthStart","goPrev","goNext","isStart","isEnd","formatDeadline","dayOfMonth","suffix","Banner","bgPattern","deadline","bgPatternFinished","buttonColor","isFinished","setIsFinished","timeLeft","setTimeLeft","deadlineDate","calculateTimeUnits","milliseconds","updateCountdown","now","remaining","interval","renderTimerCell","Drawer","position","PageHeader","sections","activeTab","onTabSelect","isStretched","extra","onBack","TopBar","SectionHeader","Page","section","SectionWrapper","ButtonGroup","NavigationItem","secondaryIcon","collapsed","isParentNode","Collapse","activeItemId","sideArrowIndex","child","ChevronUp","ChevronDown","subRoute","CourseCollapse","LockKeyhole","CheckCheck","LockKeyholeOpen","Link","ProgressLine","percent","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","theme","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","result","originalClassName","isExternal","variantModifier","modifierId","classId","conflictGroups","group","twJoin","argument","resolvedValue","string","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","cn","inputs","Table","TableHeader","TableBody","TableRow","TableHead","TableCell","TableCaption","ShadcnTable","ShadcnTableBody","ShadcnTableCaption","colSpan","alignClass","ShadcnTableCell","ShadcnTableHeader","headerClass","ShadcnTableHead","ShadcnTableRow","Cell","cellType","cellClass","ProgressBarAlternative"],"mappings":"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","x_google_ignoreList":[0,10,11,12,13,14,15,16,17,18,19,62,63]}