{"version":3,"file":"index.cjs","sources":["../src/components/overlay/constaints.ts","../src/components/overlay/context.tsx","../src/components/icon/index.tsx","../src/components/spinner/index.tsx","../src/components/button/index.tsx","../src/components/overlay/index.tsx","../src/components/backdrop/index.tsx","../src/components/window/index.tsx","../src/icons/exclamation-icon.tsx","../src/icons/check-icon.tsx","../src/icons/close-icon.tsx","../src/icons/info-icon.tsx","../src/components/popup/index.tsx","../src/components/popup/context.tsx","../src/utils/colors.ts","../src/theme/theme-utils.ts","../src/theme/theme.tsx","../src/theme/themes.ts","../src/components/icon-button/index.tsx","../src/icons/eye-icon.tsx","../src/icons/eye-slash-icon.tsx","../src/hooks/combinedrefs.ts","../src/components/input/index.tsx","../src/components/slider/index.tsx","../src/components/radio/index.tsx","../src/components/checkbox/index.tsx","../src/hooks/outside.ts","../src/components/popover/index.tsx","../src/components/dropdown/index.tsx","../src/components/select/index.tsx","../src/components/tab/index.tsx","../src/components/tabs/index.tsx","../src/components/textarea/index.tsx","../src/components/hover-popover/index.tsx","../src/components/popup/popup-default-button.tsx","../src/components/popup/confirm.tsx","../src/components/modal/index.tsx","../src/components/action-dropdown/index.tsx","../src/components/color-picker/components/color-preview.tsx","../src/components/color-picker/components/hex-input.tsx","../src/components/color-picker/components/alpha-input.tsx","../src/components/color-picker/components/palette.tsx","../src/components/color-picker/components/palette-form.tsx","../src/hooks/modal.ts","../src/components/color-picker/index.tsx","../src/components/input-color-picker/index.tsx","../src/components/alert/index.tsx","../src/components/divider/index.tsx","../src/components/empty-placeholder/index.tsx","../src/components/helper/index.tsx","../src/components/wrapper/index.tsx","../src/components/label/index.tsx","../src/components/shimmer/index.tsx","../src/components/switch/index.tsx","../src/tailwind/tailwind-preset.cjs","../src/components/tooltip/index.tsx","../src/components/popup/message.tsx"],"sourcesContent":["export const OVERLAY_CONTAINER_ID = 'overlay';","import React, {\n\tcreateContext,\n\tuseContext,\n\tuseEffect,\n\tuseMemo,\n\tuseState,\n} from \"react\";\nimport { OVERLAY_CONTAINER_ID } from \"./constaints\";\n\nexport const OverlayContainer = () => {\n\treturn <div id={OVERLAY_CONTAINER_ID}></div>;\n};\n\ninterface OverlayContextProps {\n\tcount: number;\n\tshow: (id: string) => void;\n\tclose: (id: string) => void;\n}\n\nconst OverlayContext = createContext<OverlayContextProps>({\n\tcount: 0,\n\tshow: (id: string) => {},\n\tclose: (id: string) => {},\n});\n\nexport const useOverlayContext = () => useContext(OverlayContext);\n\nexport const OverlayProvider = ({\n\tchildren,\n}: {\n\tchildren: React.ReactElement | React.ReactElement[];\n}) => {\n\tconst [overlayIds, setOverlayIds] = useState<string[]>([]);\n\tconst count = useMemo(() => overlayIds.length, [overlayIds]);\n\n\tconst show = (id: string) => {\n\t\tsetOverlayIds((value) => {\n\t\t\tif (value.includes(id)) {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\treturn [...value, id];\n\t\t});\n\t};\n\n\tconst close = (id: string) => {\n\t\t// console.log(\"-------------------\");\n\t\t// console.log(\"close\");\n\t\t// console.log(\"-------------------\");\n\n\t\tsetOverlayIds((value) => {\n\t\t\treturn value.filter((item) => item !== id);\n\t\t});\n\t};\n\n\tconst hideScrollBar = () => {\n\t\tconst currentWidth = document.body.offsetWidth;\n\n\t\tconst html = document.getElementsByTagName(\"html\")[0];\n\t\tconst body = document.body;\n\n\t\thtml.classList.add(\"kl-overflow-hidden\");\n\t\tbody.classList.add(\"kl-overflow-hidden\");\n\n\t\tconst afterWidth = body.offsetWidth;\n\n\t\tbody.setAttribute(\"style\", `padding-right: ${afterWidth - currentWidth}px`);\n\t};\n\n\tconst getBackScrollBar = () => {\n\t\tconst html = document.getElementsByTagName(\"html\")[0];\n\t\tconst body = document.body;\n\n\t\thtml.classList.remove(\"kl-overflow-hidden\");\n\t\tbody.classList.remove(\"kl-overflow-hidden\");\n\n\t\tbody.removeAttribute(\"style\");\n\t};\n\n\tuseEffect(() => {\n\t\tif (count == 0) {\n\t\t\tgetBackScrollBar();\n\t\t} else {\n\t\t\thideScrollBar();\n\t\t}\n\n\t\treturn () => {\n\t\t\tgetBackScrollBar();\n\t\t};\n\t}, [count]);\n\n\treturn (\n\t\t<OverlayContext.Provider value={{ count, show, close }}>\n\t\t\t{children}\n\t\t\t<OverlayContainer></OverlayContainer>\n\t\t</OverlayContext.Provider>\n\t);\n};\n","import React from \"react\";\nimport { ControlSize } from \"../../common/controls.type\";\nimport classnames from \"classnames\";\n\nexport type IconProp = string | JSX.Element | React.ReactNode | React.ReactElement;\n\ninterface Props {\n\n    icon?: IconProp;\n    color?: string;\n    size?: ControlSize | \"huge\";\n\n}\n\nconst Icon = ({ icon, size = \"default\", color }: Props) => {\n\n    if(!icon){\n        return null;\n    }\n\n    let el: JSX.Element | React.ReactNode | React.ReactElement;\n\n    if(typeof icon === 'string'){\n        el = (<i className={classnames(icon)}></i>);\n    } else {\n        el = icon;\n    }\n\n    \n    return (\n        <div className={\n\n            classnames('icon kl-flex kl-items-center kl-justify-center kl-leading-none', {\n                'kl-fill-current kl-text-current': !color,\n                'kl-w-14 kl-h-14 kl-text-5xl': size == 'huge',\n                'kl-w-6 kl-h-6 kl-text-2xl': size == 'large',\n                'kl-w-5 kl-h-5 kl-text-xl': size == 'medium' || size == 'default' || size == 'small',\n                'kl-w-4 kl-h-4 kl-text-base': size == 'mini',\n        \n            })\n        } \n            style={\n                {\n                    color: color,\n                    fill: color\n                }\n            }\n        >\n            {el}\n        </div>\n    );\n\n}\nexport default Icon;","import React from 'react';\nimport { ControlSize } from '../../common/controls.type';\nimport classnames from 'classnames';\nimport Icon from '../icon';\n\ninterface Props {\n\n    size?: ControlSize;\n    icon?: string | JSX.Element | React.ReactElement;\n}\n\nconst Spinner = ({ size = \"default\", icon }: Props) => {\n\n    const isSmall = [\"small\", \"mini\"].includes(size);\n\n    const width = isSmall ? 20 : 24;\n\n    const DefaultSpinner = (\n        <svg  width={width} height={width} viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n            <g opacity=\"0.1\">\n                <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\"/>\n            </g>\n            <path d=\"M18.3809 18.3811C18.762 18.7622 19.384 18.7649 19.7261 18.3486C20.7386 17.1164 21.4448 15.656 21.7796 14.0871C22.1825 12.1992 22.0303 10.235 21.3415 8.43158C20.6526 6.62821 19.4565 5.06278 17.8975 3.92426C16.602 2.97818 15.1019 2.3605 13.5259 2.11714C12.9933 2.0349 12.5315 2.45166 12.5015 2.98972C12.4716 3.52777 12.8854 3.98224 13.4159 4.07705C14.6156 4.29148 15.7555 4.77645 16.7465 5.50024C18.0013 6.41657 18.964 7.67651 19.5185 9.12796C20.0729 10.5794 20.1954 12.1603 19.8711 13.6798C19.6149 14.88 19.0887 16.0014 18.3375 16.9611C18.0053 17.3855 17.9999 18.0001 18.3809 18.3811Z\"/>\n        </svg>\n    )\n\n    return (\n\n        <div className={classnames('kl-flex kl-items-center kl-justify-center kl-animate-spin')}>\n            <Icon size={size} icon={ icon ? icon : DefaultSpinner } />\n        </div>\n    );\n\n}\n\nexport default Spinner;","import React from \"react\";\nimport { ControlsProps } from \"../../common/controls.type\";\nimport classnames from \"classnames\";\nimport Spinner from \"../spinner\";\nimport Icon, { IconProp } from \"../icon\";\n\ntype ButtonType =\n\t| \"default\"\n\t| \"primary\"\n\t| \"outline\"\n\t| \"plain\"\n\t| \"borderless\"\n\t| \"text\";\n\nexport interface ButtonProps\n\textends ControlsProps,\n\t\tOmit<React.HTMLProps<HTMLButtonElement>, \"size\"> {\n\ttype?: ButtonType;\n\thtmlType?: \"button\" | \"submit\" | \"reset\";\n\n\tloading?: boolean;\n\n\tchildren?: string | string[] | React.ReactElement;\n\n\ticon?: IconProp;\n\tsuffixIcon?: IconProp;\n}\n\nconst Button = ({\n\ttype = \"default\",\n\tsize = \"default\",\n\tloading,\n\tdisabled,\n\tsuccess,\n\terror,\n\twarning,\n\tchildren,\n\ticon,\n\tsuffixIcon,\n\thtmlType = \"button\",\n\t...restProps\n}: ButtonProps) => {\n\tconst status = error\n\t\t? \"error\"\n\t\t: success\n\t\t? \"success\"\n\t\t: warning\n\t\t? \"warning\"\n\t\t: \"default\";\n\n\treturn (\n\t\t<button\n\t\t\ttype={htmlType}\n\t\t\tdisabled={disabled || loading}\n\t\t\t{...restProps}\n\t\t\tclassName={classnames(\n\t\t\t\trestProps.className,\n\t\t\t\t\"kl-rounded-control kl-flex kl-flex-row kl-items-center kl-justify-center kl-gap-2 kl-transition-all kl-duration-200 kl-text-ellipsis kl-whitespace-nowrap kl-select-none\",\n\t\t\t\t{\n\t\t\t\t\t// Not text\n\t\t\t\t\t\"kl-px-4\": type != \"text\",\n\n\t\t\t\t\t// Type\n\t\t\t\t\t\"kl-bg-background kl-border\": type == \"default\" || type == \"outline\",\n\n\t\t\t\t\t// Default state\n\t\t\t\t\t\"kl-text-front kl-fill-front kl-border-stroke hover:kl-bg-background-hover active:kl-bg-background-active\":\n\t\t\t\t\t\tstatus == \"default\" && type == \"default\",\n\t\t\t\t\t\"kl-text-primary-front kl-fill-primary-front kl-bg-primary hover:kl-bg-primary-accent-hover active:kl-bg-primary-accent-active\":\n\t\t\t\t\t\tstatus == \"default\" && type == \"primary\",\n\t\t\t\t\t\"kl-text-primary kl-fill-primary kl-border-primary hover:kl-bg-primary-hover active:kl-bg-primary-active\":\n\t\t\t\t\t\tstatus == \"default\" && type == \"outline\",\n\t\t\t\t\t\"kl-text-primary kl-fill-primary kl-bg-primary-plain  hover:kl-bg-primary-plain-hover active:kl-bg-primary-plain-active\":\n\t\t\t\t\t\tstatus == \"default\" && type == \"plain\",\n\t\t\t\t\t\"kl-text-primary kl-fill-primary hover:kl-text-primary-accent-hover hover:kl-fill-primary-accent-hover active:kl-text-primary-accent-active active:kl-fill-primary-accent-active\":\n\t\t\t\t\t\tstatus == \"default\" && (type == \"text\" || type == \"borderless\"),\n\n\t\t\t\t\t// Error state\n\t\t\t\t\t\"kl-text-error kl-fill-error kl-border-error-light hover:kl-bg-error-hover active:kl-bg-error-active\":\n\t\t\t\t\t\tstatus == \"error\" && type == \"default\",\n\t\t\t\t\t\"kl-text-error kl-fill-error kl-border-error hover:kl-bg-error-hover active:kl-bg-error-active\":\n\t\t\t\t\t\tstatus == \"error\" && type == \"outline\",\n\t\t\t\t\t\"kl-text-error-front kl-fill-error-front kl-bg-error hover:kl-bg-error-accent-hover active:kl-bg-error-accent-active\":\n\t\t\t\t\t\tstatus == \"error\" && type == \"primary\",\n\t\t\t\t\t\"kl-text-error kl-fill-error kl-bg-error-plain  hover:kl-bg-error-plain-hover active:kl-bg-error-plain-active\":\n\t\t\t\t\t\tstatus == \"error\" && type == \"plain\",\n\t\t\t\t\t\"kl-text-error kl-fill-error hover:kl-text-error-accent-hover hover:kl-fill-error-accent-hover active:kl-text-error-accent-active active:kl-fill-error-active\":\n\t\t\t\t\t\tstatus == \"error\" && (type == \"text\" || type == \"borderless\"),\n\n\t\t\t\t\t// Warning state\n\t\t\t\t\t\"kl-text-warning kl-fill-warning kl-border-warning-light hover:kl-bg-warning-hover active:kl-bg-warning-active\":\n\t\t\t\t\t\tstatus == \"warning\" && type == \"default\",\n\t\t\t\t\t\"kl-text-warning kl-fill-warning kl-border-warning hover:kl-bg-warning-hover active:kl-bg-warning-active\":\n\t\t\t\t\t\tstatus == \"warning\" && type == \"outline\",\n\t\t\t\t\t\"kl-text-warning-front kl-fill-warning-front kl-bg-warning hover:kl-bg-warning-accent-hover active:kl-bg-warning-accent-active\":\n\t\t\t\t\t\tstatus == \"warning\" && type == \"primary\",\n\t\t\t\t\t\"kl-text-warning kl-fill-warning kl-bg-warning-plain  hover:kl-bg-warning-plain-hover active:kl-bg-warning-plain-active\":\n\t\t\t\t\t\tstatus == \"warning\" && type == \"plain\",\n\t\t\t\t\t\"kl-text-warning kl-fill-warning hover:kl-text-warning-accent-hover hover:kl-fill-warning-accent-hover active:kl-text-warning-accent-active active:kl-fill-warning-active\":\n\t\t\t\t\t\tstatus == \"warning\" && (type == \"text\" || type == \"borderless\"),\n\n\t\t\t\t\t// Success state\n\t\t\t\t\t\"kl-text-success kl-fill-success kl-border-success-light hover:kl-bg-success-hover active:kl-bg-success-active\":\n\t\t\t\t\t\tstatus == \"success\" && type == \"default\",\n\t\t\t\t\t\"kl-text-success kl-fill-success kl-border-success hover:kl-bg-success-hover active:kl-bg-success-active\":\n\t\t\t\t\t\tstatus == \"success\" && type == \"outline\",\n\t\t\t\t\t\"kl-text-success-front kl-fill-success-front kl-bg-success hover:kl-bg-success-accent-hover active:kl-bg-success-accent-active\":\n\t\t\t\t\t\tstatus == \"success\" && type == \"primary\",\n\t\t\t\t\t\"kl-text-success kl-fill-success kl-bg-success-plain  hover:kl-bg-success-plain-hover active:kl-bg-success-plain-active\":\n\t\t\t\t\t\tstatus == \"success\" && type == \"plain\",\n\t\t\t\t\t\"kl-text-success kl-fill-success hover:kl-text-success-accent-hover hover:kl-fill-success-accent-hover active:kl-text-success-accent-active active:kl-fill-success-active\":\n\t\t\t\t\t\tstatus == \"success\" && (type == \"text\" || type == \"borderless\"),\n\n\t\t\t\t\t// Size\n\t\t\t\t\t\"control-height-large\": type != \"text\" && size == \"large\",\n\t\t\t\t\t\"control-height-medium\": type != \"text\" && size == \"medium\",\n\t\t\t\t\t\"control-height-default\": type != \"text\" && size == \"default\",\n\t\t\t\t\t\"control-height-small\": type != \"text\" && size == \"small\",\n\t\t\t\t\t\"control-height-mini\": type != \"text\" && size == \"mini\",\n\n\t\t\t\t\t// Loading | Disabled\n\t\t\t\t\t\"kl-opacity-50\": loading || disabled,\n\n\t\t\t\t\t// Loading\n\t\t\t\t\t\"kl-cursor-wait\": loading,\n\n\t\t\t\t\t// Disabled\n\t\t\t\t\t\"kl-cursor-not-allowed\": disabled,\n\t\t\t\t}\n\t\t\t)}\n\t\t>\n\t\t\t{loading && <Icon icon={<Spinner size=\"small\"></Spinner>} />}\n\n\t\t\t{!loading && <Icon icon={icon} />}\n\n\t\t\t{children}\n\n\t\t\t<Icon icon={suffixIcon} />\n\t\t</button>\n\t);\n};\n\nexport default Button;\n","import React, { useEffect } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport classnames from \"classnames\";\nimport { useOverlayContext } from \"./context\";\nimport { OVERLAY_CONTAINER_ID } from \"./constaints\";\n\ntype VisibleChangeFunction = (visible: boolean) => void;\nexport type CloseFunction = <T>(result?: T) => void;\n\nexport interface OverlayChildrenProps {\n\tclose: CloseFunction;\n}\n\ninterface Props {\n\tchildren:\n\t\t| React.ReactElement\n\t\t| ((props: OverlayChildrenProps) => React.ReactElement);\n\tvisible?: boolean;\n\n\tonVisibleChange?: VisibleChangeFunction;\n}\n\nconst OverlayChildren = (props: Props) => {\n\tconst { children, onVisibleChange } = props;\n\n\tconst close = () => {\n\t\tif (!onVisibleChange) {\n\t\t\treturn;\n\t\t}\n\n\t\tonVisibleChange(false);\n\t};\n\n\tconst el = () => {\n\t\tif (typeof children === \"function\") {\n\t\t\treturn children({ close });\n\t\t}\n\n\t\treturn children as React.ReactElement;\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classnames(\n\t\t\t\t\"kl-flex kl-flex-col kl-fixed kl-top-0 kl-left-0 kl-bottom-0 kl-right-0\"\n\t\t\t)}\n\t\t>\n\t\t\t{el()}\n\t\t</div>\n\t);\n};\n\nconst Overlay = (props: Props): React.ReactElement | null => {\n\tconst overlayContext = useOverlayContext();\n\tconst id = Math.random().toString();\n\n\tuseEffect(() => {\n\t\tif (props.visible) {\n\t\t\toverlayContext.show(id);\n\t\t} else {\n\t\t\toverlayContext.close(id);\n\t\t}\n\n\t\treturn () => {\n\t\t\toverlayContext.close(id);\n\t\t};\n\t}, [props.visible]);\n\n\tif (props.visible) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{createPortal(\n\t\t\t\t\t<OverlayChildren {...props}></OverlayChildren>,\n\t\t\t\t\tdocument.getElementById(OVERLAY_CONTAINER_ID)!\n\t\t\t\t)}\n\t\t\t</>\n\t\t);\n\t} else {\n\t\treturn null;\n\t}\n};\n\nexport default Overlay;\n","import classNames from \"classnames\";\nimport React, { useRef } from \"react\";\n\ninterface Props {\n\tchildren?: React.ReactElement;\n\tonClick?: () => void;\n\tclassName?: string;\n}\n\nconst Backdrop = ({ children, onClick, className }: Props) => {\n\tconst ref = useRef(null);\n\n\tconst handleClick = (e: React.MouseEvent<HTMLDivElement>) => {\n\t\tif (e.target != ref.current || !onClick) {\n\t\t\treturn;\n\t\t}\n\n\t\tonClick();\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tref={ref}\n\t\t\tonClick={handleClick}\n\t\t\tclassName={classNames(\n\t\t\t\t\"kl-bg-background-backdrop/50 kl-flex kl-flex-col kl-items-center kl-w-screen kl-h-screen kl-min-h-full kl-max-h-full kl-overflow-y-auto\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n\nexport default Backdrop;\n","// Window.jsx\nimport React, { useEffect, useState } from \"react\";\nimport Overlay, { OverlayChildrenProps } from \"../overlay\";\nimport Backdrop from \"../backdrop\";\nimport classNames from \"classnames\";\n\nexport interface WindowProps {\n\tchildren:\n\t\t| React.ReactElement\n\t\t| ((props: OverlayChildrenProps) => React.ReactElement);\n\tshow: boolean;\n\tonClose: <T>(result?: T) => void;\n\tonBackdropClick?: <T>(result?: T) => void;\n}\n\nconst Window = ({ children, show, onClose, onBackdropClick }: WindowProps) => {\n\tconst [isVisible, setIsVisible] = useState(show);\n\n\tuseEffect(() => {\n\t\tif (show) {\n\t\t\tsetIsVisible(true);\n\t\t} else {\n\t\t\tsetIsVisible(false);\n\t\t}\n\t}, [show]);\n\n\tconst handleOverlayVisibleChange = (visible: boolean) => {\n\t\tif (!visible) {\n\t\t\tonClose();\n\t\t}\n\t};\n\n\tconst el = (props: OverlayChildrenProps) => {\n\t\tif (typeof children === \"function\") {\n\t\t\treturn children(props);\n\t\t}\n\n\t\treturn children as React.ReactElement;\n\t};\n\n\treturn (\n\t\t<Overlay visible={isVisible} onVisibleChange={handleOverlayVisibleChange}>\n\t\t\t{({ close }) => (\n\t\t\t\t<Backdrop\n\t\t\t\t\tclassName={show ? \"kl-animate-fade-in\" : \"kl-animate-fade-out\"}\n\t\t\t\t\tonClick={onBackdropClick ?? close}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={classNames(\n\t\t\t\t\t\t\t\"kl-flex kl-flex-col kl-my-auto\",\n\t\t\t\t\t\t\tshow ? \"kl-animate-scale-in\" : \"kl-animate-scale-out\"\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{el({ close })}\n\t\t\t\t\t</div>\n\t\t\t\t</Backdrop>\n\t\t\t)}\n\t\t</Overlay>\n\t);\n};\n\nexport default Window;\n","import React from \"react\";\n\nexport default () => (\n    <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n        <path d=\"M12 14C12.2652 14 12.5196 13.8946 12.7071 13.7071C12.8946 13.5196 13 13.2652 13 13V7C13 6.73478 12.8946 6.48043 12.7071 6.29289C12.5196 6.10536 12.2652 6 12 6C11.7348 6 11.4804 6.10536 11.2929 6.29289C11.1054 6.48043 11 6.73478 11 7V13C11 13.2652 11.1054 13.5196 11.2929 13.7071C11.4804 13.8946 11.7348 14 12 14ZM12 18C12.2472 18 12.4889 17.9267 12.6945 17.7893C12.9 17.652 13.0602 17.4568 13.1548 17.2284C13.2495 16.9999 13.2742 16.7486 13.226 16.5061C13.1778 16.2637 13.0587 16.0409 12.8839 15.8661C12.7091 15.6913 12.4863 15.5722 12.2439 15.524C12.0014 15.4758 11.7501 15.5005 11.5216 15.5952C11.2932 15.6898 11.098 15.85 10.9607 16.0555C10.8233 16.2611 10.75 16.5028 10.75 16.75C10.75 17.0815 10.8817 17.3995 11.1161 17.6339C11.3505 17.8683 11.6685 18 12 18Z\"/>\n    </svg>\n);\n","import React from \"react\";\n\nexport default () => (\n    <svg viewBox=\"0 0 24 24\"  fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n        <path d=\"M18.7099 7.2101C18.617 7.11638 18.5064 7.04198 18.3845 6.99121C18.2627 6.94044 18.132 6.91431 17.9999 6.91431C17.8679 6.91431 17.7372 6.94044 17.6154 6.99121C17.4935 7.04198 17.3829 7.11638 17.29 7.2101L9.83995 14.6701L6.70995 11.5301C6.61343 11.4369 6.49949 11.3636 6.37463 11.3143C6.24978 11.2651 6.11645 11.241 5.98227 11.2433C5.84809 11.2457 5.71568 11.2744 5.5926 11.3279C5.46953 11.3814 5.35819 11.4586 5.26495 11.5551C5.17171 11.6516 5.0984 11.7656 5.04919 11.8904C4.99999 12.0153 4.97586 12.1486 4.97818 12.2828C4.9805 12.417 5.00923 12.5494 5.06272 12.6725C5.11622 12.7955 5.19343 12.9069 5.28995 13.0001L9.12995 16.8401C9.22291 16.9338 9.33351 17.0082 9.45537 17.059C9.57723 17.1098 9.70794 17.1359 9.83995 17.1359C9.97196 17.1359 10.1027 17.1098 10.2245 17.059C10.3464 17.0082 10.457 16.9338 10.55 16.8401L18.7099 8.68011C18.8115 8.58646 18.8925 8.47281 18.9479 8.34631C19.0033 8.21981 19.0319 8.08321 19.0319 7.94511C19.0319 7.807 19.0033 7.6704 18.9479 7.5439C18.8925 7.4174 18.8115 7.30375 18.7099 7.2101Z\"/>\n    </svg>\n);\n","import React from \"react\";\n\nexport default () => (\n    <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n        <path d=\"M13.4099 12L17.7099 7.71C17.8982 7.5217 18.004 7.2663 18.004 7C18.004 6.7337 17.8982 6.47831 17.7099 6.29C17.5216 6.1017 17.2662 5.99591 16.9999 5.99591C16.7336 5.99591 16.4782 6.1017 16.2899 6.29L11.9999 10.59L7.70994 6.29C7.52164 6.1017 7.26624 5.99591 6.99994 5.99591C6.73364 5.99591 6.47824 6.1017 6.28994 6.29C6.10164 6.47831 5.99585 6.7337 5.99585 7C5.99585 7.2663 6.10164 7.5217 6.28994 7.71L10.5899 12L6.28994 16.29C6.19621 16.383 6.12182 16.4936 6.07105 16.6154C6.02028 16.7373 5.99414 16.868 5.99414 17C5.99414 17.132 6.02028 17.2627 6.07105 17.3846C6.12182 17.5064 6.19621 17.617 6.28994 17.71C6.3829 17.8037 6.4935 17.8781 6.61536 17.9289C6.73722 17.9797 6.86793 18.0058 6.99994 18.0058C7.13195 18.0058 7.26266 17.9797 7.38452 17.9289C7.50638 17.8781 7.61698 17.8037 7.70994 17.71L11.9999 13.41L16.2899 17.71C16.3829 17.8037 16.4935 17.8781 16.6154 17.9289C16.7372 17.9797 16.8679 18.0058 16.9999 18.0058C17.132 18.0058 17.2627 17.9797 17.3845 17.9289C17.5064 17.8781 17.617 17.8037 17.7099 17.71C17.8037 17.617 17.8781 17.5064 17.9288 17.3846C17.9796 17.2627 18.0057 17.132 18.0057 17C18.0057 16.868 17.9796 16.7373 17.9288 16.6154C17.8781 16.4936 17.8037 16.383 17.7099 16.29L13.4099 12Z\" />\n    </svg>\n);\n","import React from \"react\";\n\nexport default () => (\n    <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n        <path d=\"M12 10C11.7348 10 11.4804 10.1054 11.2929 10.2929C11.1054 10.4804 11 10.7348 11 11V17C11 17.2652 11.1054 17.5196 11.2929 17.7071C11.4804 17.8946 11.7348 18 12 18C12.2652 18 12.5196 17.8946 12.7071 17.7071C12.8946 17.5196 13 17.2652 13 17V11C13 10.7348 12.8946 10.4804 12.7071 10.2929C12.5196 10.1054 12.2652 10 12 10ZM12 6C11.7528 6 11.5111 6.07331 11.3055 6.21066C11.1 6.34801 10.9398 6.54324 10.8452 6.77165C10.7505 7.00005 10.7258 7.25139 10.774 7.49386C10.8223 7.73634 10.9413 7.95907 11.1161 8.13388C11.2909 8.3087 11.5137 8.42775 11.7561 8.47598C11.9986 8.52421 12.2499 8.49946 12.4784 8.40485C12.7068 8.31024 12.902 8.15002 13.0393 7.94446C13.1767 7.7389 13.25 7.49723 13.25 7.25C13.25 6.91848 13.1183 6.60054 12.8839 6.36612C12.6495 6.1317 12.3315 6 12 6Z\" />\n    </svg>\n);\n","import React, { ReactElement } from \"react\";\nimport Button, { ButtonProps } from \"../button\";\nimport { ControlStatusProps } from \"../../common/controls.type\";\nimport Window from \"../window\";\nimport classnames from \"classnames\";\nimport Icon from \"../icon\";\nimport ExclamationIcon from \"../../icons/exclamation-icon\";\nimport CheckIcon from \"../../icons/check-icon\";\nimport CloseIcon from \"../../icons/close-icon\";\nimport { OverlayChildrenProps } from \"../overlay\";\nimport InfoIcon from \"../../icons/info-icon\";\n\nexport type OnPopupClose<T = any> = (result?: T) => void;\n\nexport type PopupButtons<T = any> =\n\t| ButtonProps[]\n\t| ((close: OnPopupClose<T>) => ButtonProps[]);\nexport type PopupButtonsDirection = \"vertical\" | \"horizontal\";\n\nexport interface PopupProps<T = any> extends ControlStatusProps {\n\ttitle?: string | React.ReactElement;\n\ttitleAlign?: \"start\" | \"center\" | \"end\";\n\tchildren:\n\t\t| string\n\t\t| React.ReactElement\n\t\t| ((props: OverlayChildrenProps) => React.ReactElement);\n\tbuttons?: PopupButtons<T>;\n\tbuttonsDirection?: PopupButtonsDirection;\n\tshow?: boolean;\n\tonClose?: OnPopupClose;\n\n\tdanger?: boolean;\n\tinfo?: boolean;\n}\n\nconst Popup = ({\n\tshow = true,\n\tonClose = (result) => {},\n\ttitle,\n\ttitleAlign = \"center\",\n\tchildren,\n\tbuttons = [],\n\tbuttonsDirection = \"horizontal\",\n\tsuccess,\n\terror,\n\twarning,\n\tdanger,\n\tinfo,\n}: PopupProps) => {\n\tconst status = error\n\t\t? \"error\"\n\t\t: success\n\t\t? \"success\"\n\t\t: warning\n\t\t? \"warning\"\n\t\t: danger\n\t\t? \"danger\"\n\t\t: info\n\t\t? \"info\"\n\t\t: \"default\";\n\n\tlet buttonsArray = Array.isArray(buttons) ? buttons : buttons(onClose);\n\n\tif (buttonsArray.length > 2 || buttonsArray.length == 1) {\n\t\tbuttonsDirection = \"vertical\";\n\t}\n\n\tif (buttonsDirection == \"horizontal\") {\n\t\tbuttonsArray = buttonsArray.reverse();\n\t}\n\n\tlet icon: ReactElement | undefined;\n\n\tconst el = (props: OverlayChildrenProps) => {\n\t\tif (typeof children === \"function\") {\n\t\t\treturn children(props);\n\t\t}\n\n\t\tif (typeof children == \"string\") {\n\t\t\treturn (\n\t\t\t\t<div className=\"kl-flex kl-flex-col kl-text-center\">{children}</div>\n\t\t\t);\n\t\t}\n\n\t\treturn children as React.ReactElement;\n\t};\n\n\tswitch (status) {\n\t\tcase \"danger\":\n\t\tcase \"warning\":\n\t\t\ticon = <ExclamationIcon />;\n\t\t\tbreak;\n\t\tcase \"error\":\n\t\t\ticon = <CloseIcon />;\n\t\t\tbreak;\n\t\tcase \"success\":\n\t\t\ticon = <CheckIcon />;\n\t\t\tbreak;\n\t\tcase \"info\":\n\t\t\ticon = <InfoIcon />;\n\t\t\tbreak;\n\t}\n\n\treturn (\n\t\t<Window show={show} onClose={onClose}>\n\t\t\t{(overlayProps) => {\n\t\t\t\treturn (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={classnames(\n\t\t\t\t\t\t\t\"kl-flex kl-flex-col kl-min-w-full kl-w-80 kl-max-w-full kl-bg-background kl-rounded-modal kl-shadow-modal kl-p-6 kl-gap-5\"\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{icon && (\n\t\t\t\t\t\t\t<div className=\"kl-flex kl-flex-row kl-items-center kl-justify-center\">\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclassName={classnames(\n\t\t\t\t\t\t\t\t\t\t\"kl-w-16 kl-h-16 kl-rounded-full kl-fill-current kl-flex kl-items-center kl-justify-center\",\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"kl-text-primary kl-bg-primary-plain\": info,\n\t\t\t\t\t\t\t\t\t\t\t\"kl-text-success kl-bg-success-plain\": success,\n\t\t\t\t\t\t\t\t\t\t\t\"kl-text-error kl-bg-error-plain\": error || danger,\n\t\t\t\t\t\t\t\t\t\t\t\"kl-text-warning kl-bg-warning-plain\": warning,\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Icon size=\"huge\" icon={icon}></Icon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<div className=\"kl-flex kl-flex-col kl-gap-2\">\n\t\t\t\t\t\t\t{title && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclassName={classnames(\"kl-font-medium kl-text-xl\", {\n\t\t\t\t\t\t\t\t\t\t\"kl-text-start\": titleAlign == \"start\",\n\t\t\t\t\t\t\t\t\t\t\"kl-text-center\": titleAlign == \"center\",\n\t\t\t\t\t\t\t\t\t\t\"kl-text-end\": titleAlign == \"end\",\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t{el({\n\t\t\t\t\t\t\t\t...overlayProps,\n\t\t\t\t\t\t\t\tclose: onClose,\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{buttonsArray.length > 0 && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName={classnames(\"kl-grid kl-gap-4\", {\n\t\t\t\t\t\t\t\t\t\"kl-grid-cols-1\": buttonsDirection == \"vertical\",\n\t\t\t\t\t\t\t\t\t\"kl-grid-cols-2\": buttonsDirection == \"horizontal\",\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{buttonsArray.map((button, index) => (\n\t\t\t\t\t\t\t\t\t<Button key={index} {...button} />\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t}}\n\t\t</Window>\n\t);\n};\n\nexport default Popup;\n","import React, { ReactElement, createContext, useContext, useState } from \"react\";\nimport { ControlStatusProps } from \"../../common/controls.type\";\nimport Popup, { PopupProps } from \".\";\n\n\ninterface PopupContextProps extends ControlStatusProps {\n\n    show: (popup: PopupProps) => any;\n\n}\n\nconst PopupContext = createContext<PopupContextProps>({\n\n    show: (popup) => {},\n\n});\n\nexport const usePopupContext = () => useContext(PopupContext);\n\nexport const usePopup = <T=any>() => {\n\n    const { show } = usePopupContext();\n\n    return (popup: PopupProps<T>) => {\n\n        return new Promise<T>((resolve, reject) => {\n        \n            show({\n                ...popup,\n                onClose: (result: T) => {\n                    resolve(result);\n                }\n            });\n\n        });\n\n    };\n\n}\n\nexport const PopupProvider = ({ children }: { children: React.ReactNode | React.ReactElement | React.ReactElement[] }) => {\n\n    const [items, setItems] = useState<PopupProps[]>([]);\n\n    const show = (popup: PopupProps) => {    \n            \n        setItems((value) => [...value, popup]);\n\n    }\n\n    const close = (index: number) => {\n\n        setItems((value) => {\n\n            value.splice(index, 1);\n            return [...value];\n\n        });\n\n    };\n\n    return <PopupContext.Provider value={{ show }}>\n        <>\n            {children}\n\n            {items.map((item, index) => <Popup key={index} {...item} onClose={(result) => {\n\n                close(index);\n\n                if(item.onClose){\n                    item.onClose(result);\n                }\n\n            }} />)}\n\n        </>\n    </PopupContext.Provider>;\n    \n}","const hexRgb = (hex: string) => {\n\t// Удалить символ # из начала строки HEX (если присутствует)\n\tif (hex.startsWith(\"#\")) {\n\t\thex = hex.slice(1);\n\t}\n\n\t// Проверить длину строки HEX и разделить на отдельные компоненты\n\tlet r: string;\n\tlet g: string;\n\tlet b: string;\n\n\tif (hex.length === 3) {\n\t\tr = hex[0] + hex[0];\n\t\tg = hex[1] + hex[1];\n\t\tb = hex[2] + hex[2];\n\t} else if (hex.length === 6) {\n\t\tr = hex.slice(0, 2);\n\t\tg = hex.slice(2, 4);\n\t\tb = hex.slice(4, 6);\n\t} else {\n\t\tthrow new Error(\"Недопустимый формат строки HEX.\");\n\t}\n\n\t// Преобразовать компоненты HEX в числа\n\tconst red = parseInt(r, 16);\n\tconst green = parseInt(g, 16);\n\tconst blue = parseInt(b, 16);\n\n\treturn {\n\t\tred,\n\t\tgreen,\n\t\tblue,\n\t};\n};\n\nconst d2h = (d: number) => {\n\treturn d.toString(16);\n};\n\nconst h2d = (h: string) => {\n\tlet value = parseInt(h, 16);\n\n\tif (value > 255) value = 255;\n\tif (value < 0) value = 0;\n\n\treturn value;\n};\n\nexport const mixColors = function (\n\tcolor1: string,\n\tcolor2: string,\n\tweight: number = 50\n): string {\n\tcolor1 = color1.replaceAll(\"#\", \"\");\n\tcolor2 = color2.replaceAll(\"#\", \"\");\n\n\tlet color = \"#\";\n\n\tfor (var i = 0; i <= 5; i += 2) {\n\t\t// loop through each of the 3 hex pairs—red, green, and blue\n\t\tlet v1 = h2d(color1.substring(i, i + 2)); // extract the current pairs\n\t\tlet v2 = h2d(color2.substring(i, i + 2));\n\n\t\t// combine the current pairs from each source color, according to the specified weight\n\t\tlet v = Math.floor(v2 + (v1 - v2) * (weight / 100.0));\n\n\t\tif (v > 255) v = 255;\n\t\tif (v < 0) v = 0;\n\n\t\tlet val = d2h(v);\n\n\t\twhile (val.length < 2) {\n\t\t\tval = \"0\" + val;\n\t\t} // prepend a '0' if val results in a single digit\n\n\t\tcolor += val; // concatenate val to our new color string\n\t}\n\n\treturn color;\n};\n\nexport const hex2rgb = (hex: string) => {\n\tconst { red, green, blue } = hexRgb(hex);\n\n\treturn `${red}, ${green}, ${blue}`;\n};\n\nexport const isHex = (value: string) => {\n\tlet re = /[0-9A-Fa-f]{6}/g;\n\n\treturn re.test(value);\n};\n\nexport const isHexColor = (input: string): boolean => {\n\t// Регулярное выражение для проверки цветовых строк в формате #RRGGBB или #RRGGBBAA\n\tconst hexColorPattern = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$/;\n\n\t// Проверяем, соответствует ли входная строка регулярному выражению\n\treturn hexColorPattern.test(input);\n};\n\nexport const calculateWeightDifference = function (\n\tcolor1: string,\n\tcolor2: string,\n\tgeneratedColor: string\n): number {\n\tcolor1 = color1.replace(\"#\", \"\");\n\tcolor2 = color2.replace(\"#\", \"\");\n\tgeneratedColor = generatedColor.replace(\"#\", \"\");\n\n\tlet weightDifference = 0;\n\n\tfor (let i = 0; i <= 5; i += 2) {\n\t\tlet v1 = h2d(color1.substring(i, i + 2));\n\t\tlet v2 = h2d(color2.substring(i, i + 2));\n\t\tlet vg = h2d(generatedColor.substring(i, i + 2));\n\n\t\tif (v1 !== v2) {\n\t\t\tweightDifference = ((vg - v2) / (v1 - v2)) * 100;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn weightDifference;\n};\n","import { mixColors } from \"../utils/colors\";\n\nclass ThemeColorPalette {\n\n    hover?: string;\n    active?: string;\n    \n    front?: string;\n    light?: string;\n\n    plain?: string;\n    plainHover?: string;\n    plainActive?: string;\n    \n    primaryHover?: string;\n    primaryActive?: string;\n\n}\n\ninterface GenerateThemeColorPaletteProps {\n\n    color: string;\n    background: string;\n\n}\n\nexport const getBrightness = (color: string) => {\n\n    const red = parseInt(color.substring(1, 2), 16);\n    const green = parseInt(color.substring(3, 2), 16);\n    const blue = parseInt(color.substring(5, 2), 16);\n\n    return (red * 299 + green * 587 + blue * 114) / 1000;\n\n}\n\nexport const generateThemeColorPalette = ({ color, background }: GenerateThemeColorPaletteProps): ThemeColorPalette => {\n\n    const brightness = getBrightness(color);\n    const isLight = brightness > 260;\n\n    const hover = mixColors(color, background, 10);\n    const active = mixColors(color, background, 20);\n    const front = isLight ? \"#000000\" : \"#ffffff\";\n\n    const primaryHover = mixColors(color, background, 80);\n    const primaryActive = mixColors(color, background, 105);\n\n    const light = mixColors(color, background, 54);\n    const plain = mixColors(color, background, 10);\n    const plainHover = mixColors(color, background, 20);\n    const plainActive = mixColors(color, background, 15);\n    \n    return {\n\n        hover,\n        active,\n        \n        front,\n        light,\n        \n        primaryHover,\n        primaryActive,\n    \n        plain,\n        plainHover,\n        plainActive,\n\n       \n    }\n\n}","import React from \"react\";\nimport { hex2rgb, isHex, mixColors } from \"../utils/colors\";\nimport { generateThemeColorPalette, getBrightness } from \"./theme-utils\";\n\nconst DEFAULT_PRIMARY = \"#9160f8\";\nconst DEFAULT_ERROR_PRIMARY = \"#f16969\";\nconst DEFAULT_WARNING_PRIMARY = \"#f89760\";\nconst DEFAULT_SUCCESS_PRIMARY = \"#67c23a\";\n\nexport class Theme {\n\tcontrolRounded?: string = \"0.75rem\";\n\tmodalRounded?: string = \"1.5rem\";\n\tstroke?: string = \"#e5e7eb\";\n\n\tfront?: string = \"#404040\";\n\tfrontHint?: string = \"#aaaaaa\";\n\tfrontSecondary?: string = \"#808080\";\n\n\tbackground?: string = \"#ffffff\";\n\tbackgroundBody?: string = \"#ffffff\";\n\tbackgroundBackdrop?: string = \"#000000\";\n\tbackgroundHover?: string = \"#fafafa\";\n\tbackgroundActive?: string = \"#f9f9f9\";\n\n\tprimary?: string = DEFAULT_PRIMARY;\n\tprimaryFront?: string = \"#ffffff\";\n\tprimaryHover?: string = \"#A780F9\";\n\tprimaryActive?: string = \"#8b55fd\";\n\tprimaryLight?: string = \"#c3a7ff\";\n\tprimaryAccentHover?: string = \"#A780F9\";\n\tprimaryAccentActive?: string = \"#8B55FD\";\n\tprimaryPlain?: string = \"#f4effe\";\n\tprimaryPlainHover?: string = \"#EBE1FF\";\n\tprimaryPlainActive?: string = \"#f2ebff\";\n\n\terror?: string = DEFAULT_ERROR_PRIMARY;\n\terrorFront?: string = \"#ffffff\";\n\terrorHover?: string = \"#fff5f5\";\n\terrorActive?: string = \"#ffeeee\";\n\terrorLight?: string = \"#ffecef\";\n\terrorAccentHover?: string = \"#fb7c7c\";\n\terrorAccentActive?: string = \"#f25d5d\";\n\terrorPlain?: string = \"#ffecef\";\n\terrorPlainHover?: string = \"#ffe8eb\";\n\terrorPlainActive?: string = \"#ffe4e9\";\n\n\twarning?: string = DEFAULT_WARNING_PRIMARY;\n\twarningFront?: string = \"#ffffff\";\n\twarningHover?: string = \"#fff6f1\";\n\twarningActive?: string = \"#fff0e8\";\n\twarningLight?: string = \"#FFF3ED\";\n\twarningAccentHover?: string = \"#ffa775\";\n\twarningAccentActive?: string = \"#f2884c\";\n\twarningPlain?: string = \"#fff3ed\";\n\twarningPlainHover?: string = \"#fff0e8\";\n\twarningPlainActive?: string = \"#ffe8dc\";\n\n\tsuccess?: string = DEFAULT_SUCCESS_PRIMARY;\n\tsuccessFront?: string = \"#ffffff\";\n\tsuccessHover?: string = \"#f7fff5\";\n\tsuccessActive?: string = \"#efffeb\";\n\tsuccessLight?: string = \"#E9FFE3\";\n\tsuccessAccentHover?: string = \"#85ce61\";\n\tsuccessAccentActive?: string = \"#5daf34\";\n\tsuccessPlain?: string = \"#f0f9eb\";\n\tsuccessPlainHover?: string = \"#f2ffee\";\n\tsuccessPlainActive?: string = \"#e4ffdd\";\n\n\tconstructor(props: Readonly<Theme>) {\n\t\tlet {\n\t\t\tfront,\n\t\t\tbackground,\n\t\t\tbackgroundBody,\n\t\t\tstroke,\n\n\t\t\tprimary,\n\n\t\t\terror,\n\n\t\t\twarning,\n\n\t\t\tsuccess,\n\t\t} = props;\n\n\t\tconst backgroundBrightness = getBrightness(background ?? \"#ffffff\");\n\t\tbackground = background ?? \"#ffffff\";\n\t\tbackgroundBody = backgroundBody ?? background;\n\t\tfront = front ?? (backgroundBrightness > 260 ? \"#000000\" : \"#ffffff\");\n\t\tstroke = stroke ?? \"#e5e7eb\";\n\n\t\tconst backgroundHover = mixColors(front, background, 3);\n\t\tconst backgroundActive = mixColors(front, background, 5);\n\n\t\tstroke = mixColors(front, background, 10);\n\n\t\tconst {\n\t\t\tfront: primaryFront,\n\t\t\thover: primaryHover,\n\t\t\tactive: primaryActive,\n\t\t\tlight: primaryLight,\n\t\t\tplain: primaryPlain,\n\t\t\tplainHover: primaryPlainHover,\n\t\t\tplainActive: primaryPlainActive,\n\t\t\tprimaryHover: primaryAccentHover,\n\t\t\tprimaryActive: primaryAccentActive,\n\t\t} = generateThemeColorPalette({\n\t\t\tcolor: primary ?? DEFAULT_PRIMARY,\n\t\t\tbackground,\n\t\t});\n\n\t\tconst {\n\t\t\tfront: errorFront,\n\t\t\thover: errorHover,\n\t\t\tactive: errorActive,\n\t\t\tlight: errorLight,\n\t\t\tplain: errorPlain,\n\t\t\tplainHover: errorPlainHover,\n\t\t\tplainActive: errorPlainActive,\n\t\t\tprimaryHover: errorAccentHover,\n\t\t\tprimaryActive: errorAccentActive,\n\t\t} = generateThemeColorPalette({\n\t\t\tcolor: error ?? DEFAULT_ERROR_PRIMARY,\n\t\t\tbackground,\n\t\t});\n\n\t\tconst {\n\t\t\tfront: warningFront,\n\t\t\thover: warningHover,\n\t\t\tactive: warningActive,\n\t\t\tlight: warningLight,\n\t\t\tplain: warningPlain,\n\t\t\tplainHover: warningPlainHover,\n\t\t\tplainActive: warningPlainActive,\n\t\t\tprimaryHover: warningAccentHover,\n\t\t\tprimaryActive: warningAccentActive,\n\t\t} = generateThemeColorPalette({\n\t\t\tcolor: warning ?? DEFAULT_WARNING_PRIMARY,\n\t\t\tbackground,\n\t\t});\n\n\t\tconst {\n\t\t\tfront: successFront,\n\t\t\thover: successHover,\n\t\t\tactive: successActive,\n\t\t\tlight: successLight,\n\t\t\tplain: successPlain,\n\t\t\tplainHover: successPlainHover,\n\t\t\tplainActive: successPlainActive,\n\t\t\tprimaryHover: successAccentHover,\n\t\t\tprimaryActive: successAccentActive,\n\t\t} = generateThemeColorPalette({\n\t\t\tcolor: success ?? DEFAULT_SUCCESS_PRIMARY,\n\t\t\tbackground: background,\n\t\t});\n\n\t\tObject.assign(this, {\n\t\t\t...props,\n\n\t\t\tfront,\n\t\t\tbackgroundBody: props.backgroundBody ?? backgroundBody,\n\t\t\tbackgroundHover: props.backgroundHover ?? backgroundHover,\n\t\t\tbackgroundActive: props.backgroundActive ?? backgroundActive,\n\n\t\t\tstroke: props.stroke ?? stroke,\n\n\t\t\tprimaryFront: props.primaryFront ?? primaryFront,\n\t\t\tprimaryHover: props.primaryHover ?? primaryHover,\n\t\t\tprimaryActive: props.primaryActive ?? primaryActive,\n\t\t\tprimaryLight: props.primaryLight ?? primaryLight,\n\t\t\tprimaryAccentHover: props.primaryAccentHover ?? primaryAccentHover,\n\t\t\tprimaryAccentActive: props.primaryAccentActive ?? primaryAccentActive,\n\t\t\tprimaryPlain: props.primaryPlain ?? primaryPlain,\n\t\t\tprimaryPlainHover: props.primaryPlainHover ?? primaryPlainHover,\n\t\t\tprimaryPlainActive: props.primaryPlainActive ?? primaryPlainActive,\n\n\t\t\terrorFront: props.errorFront ?? errorFront,\n\t\t\terrorHover: props.errorHover ?? errorHover,\n\t\t\terrorActive: props.errorActive ?? errorActive,\n\t\t\terrorLight: props.errorLight ?? errorLight,\n\t\t\terrorAccentHover: props.errorAccentHover ?? errorAccentHover,\n\t\t\terrorAccentActive: props.errorAccentActive ?? errorAccentActive,\n\t\t\terrorPlain: props.errorPlain ?? errorPlain,\n\t\t\terrorPlainHover: props.errorPlainHover ?? errorPlainHover,\n\t\t\terrorPlainActive: props.errorPlainActive ?? errorPlainActive,\n\n\t\t\twarningFront: props.warningFront ?? warningFront,\n\t\t\twarningHover: props.warningHover ?? warningHover,\n\t\t\twarningActive: props.warningActive ?? warningActive,\n\t\t\twarningLight: props.warningLight ?? warningLight,\n\t\t\twarningAccentHover: props.warningAccentHover ?? warningAccentHover,\n\t\t\twarningAccentActive: props.warningAccentActive ?? warningAccentActive,\n\t\t\twarningPlain: props.warningPlain ?? warningPlain,\n\t\t\twarningPlainHover: props.warningPlainHover ?? warningPlainHover,\n\t\t\twarningPlainActive: props.warningPlainActive ?? warningPlainActive,\n\n\t\t\tsuccessFront: props.successFront ?? successFront,\n\t\t\tsuccessHover: props.successHover ?? successHover,\n\t\t\tsuccessActive: props.successActive ?? successActive,\n\t\t\tsuccessLight: props.successLight ?? successLight,\n\t\t\tsuccessAccentHover: props.successAccentHover ?? successAccentHover,\n\t\t\tsuccessAccentActive: props.successAccentActive ?? successAccentActive,\n\t\t\tsuccessPlain: props.successPlain ?? successPlain,\n\t\t\tsuccessPlainHover: props.successPlainHover ?? successPlainHover,\n\t\t\tsuccessPlainActive: props.successPlainActive ?? successPlainActive,\n\t\t});\n\t}\n}\n\nexport const ThemeStyle = ({ value }: { value: Theme }) => {\n\tlet props: any = {\n\t\t...value,\n\t};\n\n\tfor (let key of Object.keys(props)) {\n\t\tlet value = props[key];\n\n\t\tif (isHex(value)) {\n\t\t\tprops[key] = hex2rgb(value);\n\t\t}\n\t}\n\n\tlet theme: Theme = props;\n\n\treturn (\n\t\t<style>\n\t\t\t{`\n           \n\n            :root {\n\n                --kloktun-control-rounded: ${theme.controlRounded};\n                --kloktun-modal-rounded: ${theme.modalRounded};\n            \n                /*\n                ===================\n                STROKE\n                ===================\n                */\n                --kloktun-stroke: ${theme.stroke};\n            \n                /*\n                ===================\n                FRONT\n                ===================\n                */\n                --kloktun-front: ${theme.front};\n                --kloktun-front-hint: ${theme.frontHint};\n                --kloktun-front-secondary: ${theme.frontSecondary};\n            \n                /*\n                ===================\n                BACKGROUND\n                ===================\n                */\n                --kloktun-background: ${theme.background};\n                --kloktun-background-body: ${theme.backgroundBody};\n                --kloktun-background-backdrop: ${theme.backgroundBackdrop};\n                --kloktun-background-hover: ${theme.backgroundHover};\n                --kloktun-background-active: ${theme.backgroundActive};\n            \n                /*\n                ===================\n                PRIMARY\n                ===================\n                */\n                --kloktun-primary: ${theme.primary};\n                --kloktun-primary-front: ${theme.primaryFront};\n                --kloktun-primary-hover: ${theme.primaryHover};\n                --kloktun-primary-active: ${theme.primaryActive};\n                --kloktun-primary-accent-hover: ${theme.primaryAccentHover};\n                --kloktun-primary-accent-active: ${theme.primaryAccentActive};\n                --kloktun-primary-light: ${theme.primaryLight};\n            \n                --kloktun-primary-plain: ${theme.primaryPlain};\n                --kloktun-primary-plain-hover: ${theme.primaryPlainHover};\n                --kloktun-primary-plain-active: ${theme.primaryPlainActive};\n            \n            \n                /*\n                ===================\n                ERROR\n                ===================\n                */\n                --kloktun-error: ${theme.error};\n                --kloktun-error-front: ${theme.errorFront};\n                --kloktun-error-hover: ${theme.errorHover};\n                --kloktun-error-active: ${theme.errorActive};\n                --kloktun-error-light: ${theme.errorLight};\n                --kloktun-error-accent-hover: ${theme.errorAccentHover};\n                --kloktun-error-accent-active: ${theme.errorAccentActive};\n                --kloktun-error-plain: ${theme.errorPlain};\n                --kloktun-error-plain-hover: ${theme.errorPlainHover};\n                --kloktun-error-plain-active: ${theme.errorPlainActive};\n            \n            \n                /*\n                ===================\n                WARNING\n                ===================\n                */\n                --kloktun-warning: ${theme.warning};\n                --kloktun-warning-front: ${theme.warningFront};\n                --kloktun-warning-hover: ${theme.warningHover};\n                --kloktun-warning-active: ${theme.warningActive};\n                --kloktun-warning-light: ${theme.warningLight};\n                --kloktun-warning-accent-hover: ${theme.warningAccentHover};\n                --kloktun-warning-accent-active: ${theme.warningAccentActive};\n                --kloktun-warning-plain: ${theme.warningPlain};\n                --kloktun-warning-plain-hover: ${theme.warningPlainHover};\n                --kloktun-warning-plain-active: ${theme.warningPlainActive};\n            \n            \n                /*\n                ===================\n                SUCCESS\n                ===================\n                */\n                --kloktun-success: ${theme.success};\n                --kloktun-success-front: ${theme.successFront};\n                --kloktun-success-hover: ${theme.successHover};\n                --kloktun-success-active: ${theme.successActive};\n                --kloktun-success-light: ${theme.successLight};\n                --kloktun-success-accent-hover: ${theme.successAccentHover};\n                --kloktun-success-accent-active: ${theme.successAccentActive};\n                --kloktun-success-plain: ${theme.successPlain};\n                --kloktun-success-plain-hover: ${theme.successPlainHover};\n                --kloktun-success-plain-active: ${theme.successPlainActive};\n            \n            }\n\n            body {\n                color: rgb(var(--kloktun-front));\n                background-color: rgb(var(--kloktun-background-body));\n            }\n        `}\n\t\t</style>\n\t);\n};\n","import { Theme } from \"./theme\";\n\nexport const LightTheme = new Theme({\n    primary: \"#9160f9\"\n});\n\nexport const DarkTheme = new Theme({\n    primary: \"#9160f8\",\n    background: \"#202020\"\n});","import React from \"react\";\nimport classnames from \"classnames\";\nimport Spinner from \"../spinner\";\nimport { ControlsProps } from \"../../common/controls.type\";\nimport Icon, { IconProp } from \"../icon\";\n\ntype IconButtonType =\n\t| \"default\"\n\t| \"primary\"\n\t| \"outline\"\n\t| \"plain\"\n\t| \"borderless\"\n\t| \"text\"\n\t| \"primary-borderless\"\n\t| \"primary-text\"\n\t| \"primary-light-borderless\"\n\t| \"primary-light-text\"\n\t| \"light-borderless\"\n\t| \"light-text\";\n\ninterface IconButtonProps\n\textends ControlsProps,\n\t\tOmit<React.HTMLProps<HTMLButtonElement>, \"size\"> {\n\ttype?: IconButtonType;\n\n\tloading?: boolean;\n\thtmlType?: \"button\" | \"submit\" | \"reset\";\n\n\ticon?: IconProp;\n\tchildren?: IconProp;\n}\n\nconst IconButton = ({\n\ttype = \"default\",\n\tsize = \"default\",\n\tloading = false,\n\tdisabled = false,\n\terror,\n\tsuccess,\n\twarning,\n\ticon,\n\tchildren,\n\thtmlType = \"button\",\n\t...restProps\n}: IconButtonProps) => {\n\tconst status = error\n\t\t? \"error\"\n\t\t: success\n\t\t? \"success\"\n\t\t: warning\n\t\t? \"warning\"\n\t\t: \"default\";\n\n\tconst isText = [\n\t\t\"text\",\n\t\t\"primary-text\",\n\t\t\"light-text\",\n\t\t\"primary-light-text\",\n\t].includes(type);\n\n\treturn (\n\t\t<button\n\t\t\ttype={htmlType}\n\t\t\t{...restProps}\n\t\t\tdisabled={disabled || loading}\n\t\t\tclassName={classnames(\n\t\t\t\t\"kl-rounded-control kl-flex kl-flex-row kl-items-center kl-justify-center kl-transition-all kl-duration-200\",\n\t\t\t\t{\n\t\t\t\t\t// Not text\n\t\t\t\t\t\"kl-aspect-square\": !isText,\n\n\t\t\t\t\t// Type\n\t\t\t\t\t\"kl-bg-background kl-border\": type == \"default\" || type == \"outline\",\n\n\t\t\t\t\t// Default state\n\t\t\t\t\t\"kl-text-front kl-fill-front kl-border-stroke\":\n\t\t\t\t\t\tstatus == \"default\" &&\n\t\t\t\t\t\t(type == \"default\" || type == \"borderless\" || type == \"text\"),\n\t\t\t\t\t\"hover:kl-bg-background-hover active:kl-bg-background-active\":\n\t\t\t\t\t\tstatus == \"default\" && type == \"default\",\n\t\t\t\t\t\"kl-text-primary-front kl-fill-primary-front kl-bg-primary hover:kl-bg-primary-accent-hover active:kl-bg-primary-accent-active\":\n\t\t\t\t\t\tstatus == \"default\" && type == \"primary\",\n\t\t\t\t\t\"kl-text-primary kl-fill-primary kl-border-primary hover:kl-bg-primary-hover active:kl-bg-primary-active\":\n\t\t\t\t\t\tstatus == \"default\" && type == \"outline\",\n\t\t\t\t\t\"kl-text-primary kl-fill-primary kl-bg-primary-plain hover:kl-bg-primary-plain-hover active:kl-bg-primary-plain-active\":\n\t\t\t\t\t\tstatus == \"default\" && type == \"plain\",\n\t\t\t\t\t\"kl-text-primary kl-fill-primary hover:kl-text-primary-accent-hover hover:kl-fill-primary-accent-hover active:kl-text-primary-accent-active active:kl-fill-primary-accent-active\":\n\t\t\t\t\t\tstatus == \"default\" &&\n\t\t\t\t\t\t(type == \"primary-borderless\" || type == \"primary-text\"),\n\t\t\t\t\t\"kl-text-front-hint kl-fill-front-hint hover:kl-text-front hover:kl-fill-front active:kl-text-front active:kl-fill-front\":\n\t\t\t\t\t\tstatus == \"default\" &&\n\t\t\t\t\t\t(type == \"light-borderless\" || type == \"light-text\"),\n\t\t\t\t\t\"kl-text-primary-light kl-fill-primary-light hover:kl-text-primary hover:kl-fill-primary active:kl-text-primary-accent-active active:kl-fill-primary-accent-active\":\n\t\t\t\t\t\tstatus == \"default\" &&\n\t\t\t\t\t\t(type == \"primary-light-borderless\" ||\n\t\t\t\t\t\t\ttype == \"primary-light-text\"),\n\n\t\t\t\t\t// Error state\n\t\t\t\t\t\"kl-text-error kl-fill-error kl-border-error-light hover:kl-bg-error-hover active:kl-bg-error-active\":\n\t\t\t\t\t\tstatus == \"error\" && type == \"default\",\n\t\t\t\t\t\"kl-text-error kl-fill-error kl-border-error hover:kl-bg-error-hover active:kl-bg-error-active\":\n\t\t\t\t\t\tstatus == \"error\" && type == \"outline\",\n\t\t\t\t\t\"kl-text-error-front kl-fill-error-front kl-bg-error hover:kl-bg-error-accent-hover active:kl-bg-error-accent-active\":\n\t\t\t\t\t\tstatus == \"error\" && type == \"primary\",\n\t\t\t\t\t\"kl-text-error kl-fill-error kl-bg-error-plain hover:kl-bg-error-plain-hover active:kl-bg-error-plain-active\":\n\t\t\t\t\t\tstatus == \"error\" && type == \"plain\",\n\t\t\t\t\t\"kl-text-error kl-fill-error hover:kl-text-error-accent-hover hover:kl-fill-error-accent-hover active:kl-text-error-accent-active active:kl-fill-error-accent-active\":\n\t\t\t\t\t\tstatus == \"error\" &&\n\t\t\t\t\t\t(type == \"text\" ||\n\t\t\t\t\t\t\ttype == \"borderless\" ||\n\t\t\t\t\t\t\ttype == \"primary-borderless\" ||\n\t\t\t\t\t\t\ttype == \"primary-text\" ||\n\t\t\t\t\t\t\ttype == \"primary-light-borderless\" ||\n\t\t\t\t\t\t\ttype == \"primary-light-text\"),\n\t\t\t\t\t\"kl-text-front-hint kl-fill-front-hint hover:kl-text-error-accent-hover hover:kl-fill-error-accent-hover active:kl-text-error-accent-active active:kl-fill-error-accent-active\":\n\t\t\t\t\t\tstatus == \"error\" &&\n\t\t\t\t\t\t(type == \"light-borderless\" || type == \"light-text\"),\n\n\t\t\t\t\t// Warning state\n\t\t\t\t\t\"kl-text-warning kl-fill-warning kl-border-warning-light hover:kl-bg-warning-hover active:kl-bg-warning-active\":\n\t\t\t\t\t\tstatus == \"warning\" && type == \"default\",\n\t\t\t\t\t\"kl-text-warning kl-fill-warning kl-border-warning hover:kl-bg-warning-hover active:kl-bg-warning-active\":\n\t\t\t\t\t\tstatus == \"warning\" && type == \"outline\",\n\t\t\t\t\t\"kl-text-warning-front kl-fill-warning-front kl-bg-warning hover:kl-bg-warning-accent-hover active:kl-bg-warning-accent-active\":\n\t\t\t\t\t\tstatus == \"warning\" && type == \"primary\",\n\t\t\t\t\t\"kl-text-warning kl-fill-warning kl-bg-warning-plain hover:kl-bg-warning-plain-hover active:kl-bg-warning-plain-active\":\n\t\t\t\t\t\tstatus == \"warning\" && type == \"plain\",\n\t\t\t\t\t\"kl-text-warning kl-fill-warning hover:kl-text-warning-accent-hover hover:kl-fill-warning-accent-hover active:kl-text-warning-accent-active active:kl-fill-warning-accent-active\":\n\t\t\t\t\t\tstatus == \"warning\" &&\n\t\t\t\t\t\t(type == \"text\" ||\n\t\t\t\t\t\t\ttype == \"borderless\" ||\n\t\t\t\t\t\t\ttype == \"primary-borderless\" ||\n\t\t\t\t\t\t\ttype == \"primary-text\" ||\n\t\t\t\t\t\t\ttype == \"primary-light-borderless\" ||\n\t\t\t\t\t\t\ttype == \"primary-light-text\"),\n\t\t\t\t\t\"kl-text-front-hint kl-fill-front-hint hover:kl-text-warning-accent-hover hover:kl-fill-warning-accent-hover active:kl-text-warning-accent-active active:kl-fill-warning-accent-active\":\n\t\t\t\t\t\tstatus == \"warning\" &&\n\t\t\t\t\t\t(type == \"light-borderless\" || type == \"light-text\"),\n\n\t\t\t\t\t// Success state\n\t\t\t\t\t\"kl-text-success kl-fill-success kl-border-success-light hover:kl-bg-success-hover active:kl-bg-success-active\":\n\t\t\t\t\t\tstatus == \"success\" && type == \"default\",\n\t\t\t\t\t\"kl-text-success kl-fill-success kl-border-success hover:kl-bg-success-hover active:kl-bg-success-active\":\n\t\t\t\t\t\tstatus == \"success\" && type == \"outline\",\n\t\t\t\t\t\"kl-text-success-front kl-fill-success-front kl-bg-success hover:kl-bg-success-accent-hover active:kl-bg-success-accent-active\":\n\t\t\t\t\t\tstatus == \"success\" && type == \"primary\",\n\t\t\t\t\t\"kl-text-success kl-fill-success kl-bg-success-plain hover:kl-bg-success-plain-hover active:kl-bg-success-plain-active\":\n\t\t\t\t\t\tstatus == \"success\" && type == \"plain\",\n\t\t\t\t\t\"kl-text-success kl-fill-success hover:kl-text-success-accent-hover hover:kl-fill-success-accent-hover active:kl-text-success-accent-active active:kl-fill-success-accent-active\":\n\t\t\t\t\t\tstatus == \"success\" &&\n\t\t\t\t\t\t(type == \"text\" ||\n\t\t\t\t\t\t\ttype == \"borderless\" ||\n\t\t\t\t\t\t\ttype == \"primary-borderless\" ||\n\t\t\t\t\t\t\ttype == \"primary-text\" ||\n\t\t\t\t\t\t\ttype == \"primary-light-borderless\" ||\n\t\t\t\t\t\t\ttype == \"primary-light-text\"),\n\t\t\t\t\t\"kl-text-front-hint kl-fill-front-hint hover:kl-text-success-accent-hover hover:kl-fill-success-accent-hover active:kl-text-success-accent-active active:kl-fill-success-accent-active\":\n\t\t\t\t\t\tstatus == \"success\" &&\n\t\t\t\t\t\t(type == \"light-borderless\" || type == \"light-text\"),\n\n\t\t\t\t\t// Size\n\t\t\t\t\t\"icon-control-size-large\": !isText && size == \"large\",\n\t\t\t\t\t\"icon-control-size-medium\": !isText && size == \"medium\",\n\t\t\t\t\t\"icon-control-size-default\": !isText && size == \"default\",\n\t\t\t\t\t\"icon-control-size-small\": !isText && size == \"small\",\n\t\t\t\t\t\"icon-control-size-mini\": !isText && size == \"mini\",\n\n\t\t\t\t\t// Loading | Disabled\n\t\t\t\t\t\"kl-opacity-50\": loading || disabled,\n\n\t\t\t\t\t// Loading\n\t\t\t\t\t\"kl-cursor-wait\": loading,\n\n\t\t\t\t\t// Disabled\n\t\t\t\t\t\"kl-cursor-not-allowed\": disabled,\n\t\t\t\t},\n\t\t\t\trestProps.className\n\t\t\t)}\n\t\t>\n\t\t\t{loading && <Spinner size={size} />}\n\n\t\t\t{!loading && <Icon size={size} icon={children ?? icon}></Icon>}\n\t\t</button>\n\t);\n};\n\nexport default IconButton;\n","import React from \"react\";\n\nexport default () => (\n    <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n        <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M11.75 8C10.7554 8 9.80161 8.39509 9.09835 9.09835C8.39509 9.80161 8 10.7554 8 11.75C8 12.7446 8.39509 13.6984 9.09835 14.4017C9.80161 15.1049 10.7554 15.5 11.75 15.5C12.7446 15.5 13.6984 15.1049 14.4017 14.4017C15.1049 13.6984 15.5 12.7446 15.5 11.75C15.5 10.7554 15.1049 9.80161 14.4017 9.09835C13.6984 8.39509 12.7446 8 11.75 8ZM9.5 11.75C9.5 11.1533 9.73705 10.581 10.159 10.159C10.581 9.73705 11.1533 9.5 11.75 9.5C12.3467 9.5 12.919 9.73705 13.341 10.159C13.7629 10.581 14 11.1533 14 11.75C14 12.3467 13.7629 12.919 13.341 13.341C12.919 13.7629 12.3467 14 11.75 14C11.1533 14 10.581 13.7629 10.159 13.341C9.73705 12.919 9.5 12.3467 9.5 11.75Z\" fill=\"currentColor\"/>\n        <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M11.75 3C7.236 3 4.195 5.704 2.43 7.997L2.399 8.038C1.999 8.557 1.632 9.034 1.383 9.598C1.116 10.203 1 10.862 1 11.75C1 12.638 1.116 13.297 1.383 13.902C1.633 14.466 2 14.944 2.399 15.462L2.431 15.503C4.195 17.796 7.236 20.5 11.75 20.5C16.264 20.5 19.305 17.796 21.07 15.503L21.101 15.462C21.501 14.944 21.868 14.466 22.117 13.902C22.384 13.297 22.5 12.638 22.5 11.75C22.5 10.862 22.384 10.203 22.117 9.598C21.867 9.034 21.5 8.557 21.101 8.038L21.069 7.997C19.305 5.704 16.264 3 11.75 3ZM3.62 8.912C5.248 6.795 7.9 4.5 11.75 4.5C15.6 4.5 18.251 6.795 19.88 8.912C20.32 9.482 20.576 9.822 20.745 10.204C20.903 10.562 21 10.999 21 11.75C21 12.501 20.903 12.938 20.745 13.296C20.576 13.678 20.319 14.018 19.881 14.588C18.25 16.705 15.6 19 11.75 19C7.9 19 5.249 16.705 3.62 14.588C3.18 14.018 2.924 13.678 2.755 13.296C2.597 12.938 2.5 12.501 2.5 11.75C2.5 10.999 2.597 10.562 2.755 10.204C2.924 9.822 3.182 9.482 3.62 8.912Z\" fill=\"currentColor\"/>\n    </svg>\n\n);","import React from \"react\";\n\nexport default () => (\n    <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n        <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M22.2959 7.06035C22.3865 7.09914 22.4687 7.15543 22.5376 7.226C22.6065 7.29657 22.6608 7.38004 22.6974 7.47163C22.734 7.56321 22.7521 7.66112 22.7509 7.75974C22.7496 7.85836 22.7288 7.95575 22.6898 8.04635L22.0009 7.75035L22.6909 8.04635L22.6889 8.05035L22.6859 8.05735L22.6758 8.08135L22.6369 8.16535C22.4187 8.61855 22.176 9.05954 21.9099 9.48635C21.3764 10.3443 20.758 11.1463 20.0639 11.8804L21.0319 12.8494C21.1643 12.9915 21.2365 13.1796 21.233 13.3739C21.2296 13.5682 21.1509 13.7536 21.0135 13.891C20.8761 14.0284 20.6907 14.1071 20.4964 14.1105C20.3021 14.114 20.114 14.0418 19.9719 13.9094L18.9708 12.9094C18.2745 13.4963 17.5112 13.9988 16.6968 14.4064L17.6308 15.8414C17.7393 16.0082 17.7771 16.2113 17.7358 16.4059C17.6946 16.6006 17.5777 16.7709 17.4109 16.8794C17.244 16.9878 17.0409 17.0256 16.8463 16.9843C16.6516 16.9431 16.4813 16.8262 16.3729 16.6594L15.2839 14.9854C14.5039 15.2404 13.6609 15.4134 12.7519 15.4754V17.2504C12.7519 17.4493 12.6728 17.64 12.5322 17.7807C12.3915 17.9213 12.2008 18.0004 12.0019 18.0004C11.8029 18.0004 11.6122 17.9213 11.4715 17.7807C11.3309 17.64 11.2519 17.4493 11.2519 17.2504V15.4754C10.4162 15.4191 9.59024 15.2626 8.79185 15.0094L7.71785 16.6594C7.66414 16.742 7.59469 16.8132 7.51345 16.8689C7.43222 16.9247 7.3408 16.9639 7.24441 16.9843C7.14803 17.0048 7.04856 17.006 6.95169 16.988C6.85482 16.97 6.76245 16.9331 6.67985 16.8794C6.51303 16.7709 6.39613 16.6006 6.35487 16.4059C6.33444 16.3095 6.3332 16.2101 6.35121 16.1132C6.36922 16.0163 6.40614 15.924 6.45985 15.8414L7.37285 14.4394C6.55199 14.0356 5.78222 13.5354 5.07985 12.9494L4.11985 13.9094C3.97846 14.046 3.78905 14.1217 3.5924 14.1201C3.39575 14.1185 3.2076 14.0397 3.06848 13.9007C2.92936 13.7617 2.85039 13.5736 2.84859 13.377C2.84679 13.1804 2.9223 12.9909 3.05885 12.8494L3.98285 11.9254C3.00084 10.8963 2.16988 9.733 1.51485 8.47035C1.44926 8.34245 1.38658 8.21309 1.32685 8.08235L1.31685 8.05735L1.31285 8.05035V8.04735H1.31085C1.23235 7.86448 1.2297 7.65692 1.3035 7.4721C1.37729 7.28729 1.52148 7.13935 1.70435 7.06085C1.88722 6.98235 2.09378 6.9797 2.2786 7.0535C2.46341 7.12729 2.61135 7.27148 2.68985 7.45435V7.45635L2.69685 7.47035L2.72585 7.53335C2.92105 7.93716 3.13804 8.33007 3.37585 8.71035C3.85085 9.47035 4.57285 10.4574 5.55585 11.3724C6.42285 12.1774 7.48385 12.9184 8.75285 13.4064C9.78943 13.8036 10.8908 14.005 12.0009 14.0004C13.1341 14.0052 14.2579 13.7952 15.3129 13.3814C16.5749 12.8844 17.6289 12.1384 18.4879 11.3324C19.6363 10.2418 20.5808 8.95494 21.2768 7.53235L21.3049 7.46935L21.3109 7.45635M22.2959 7.06035C22.1131 6.98225 21.9068 6.98088 21.7223 7.05475C21.5378 7.12862 21.3902 7.27271 21.3119 7.45535L22.2959 7.06035Z\" fill=\"currentColor\"/>\n    </svg>\n);","import { useEffect, useRef } from \"react\";\n\nexport const useCombinedRefs = <T>(...refs: any[]) => {\n\n    const targetRef = useRef<T>(null);\n  \n    useEffect(() => { \n      refs.forEach(ref => { \n\n        if (!ref) return \n  \n        if (typeof ref === 'function' ) { \n          \n            ref(targetRef.current);\n\n        } else { \n\n          ref.current = targetRef.current;\n\n        } \n      });\n\n    }, [refs]) \n  \n    return targetRef;\n    \n  }","import React, { forwardRef, useMemo, useRef, useState } from \"react\";\nimport classnames from \"classnames\";\nimport { ControlSize, ControlsProps } from \"../../common/controls.type\";\nimport Icon, { IconProp } from \"../icon\";\nimport IconButton from \"../icon-button\";\nimport EyeIcon from \"../../icons/eye-icon\";\nimport EyeSlashIcon from \"../../icons/eye-slash-icon\";\nimport CloseIcon from \"../../icons/close-icon\";\nimport { useCombinedRefs } from \"../../hooks/combinedrefs\";\n\ntype PropPrependAppend = string | React.ReactElement;\n\nexport interface InputProps\n\textends Omit<React.HTMLProps<HTMLInputElement>, \"size\" | \"prefix\">,\n\t\tControlsProps {\n\tvalue?: string;\n\tonDebounce?: (value: string) => void;\n\n\tdebounceTimeout?: number;\n\n\tprepend?: PropPrependAppend;\n\n\tprefix?: string | React.ReactElement;\n\tprefixIcon?: IconProp;\n\tprefixText?: string;\n\tprefixPlaceholder?: string;\n\n\tsuffixPlaceholder?: string;\n\tsuffixText?: string;\n\tsuffixIcon?: IconProp;\n\tsuffix?: string | React.ReactElement;\n\n\tappend?: PropPrependAppend;\n\n\tclearable?: boolean;\n\ttogglePassword?: boolean;\n\thtmlSize?: number;\n\n\tfill?: boolean;\n}\n\nconst InputIcon = ({\n\ticon,\n\tsize,\n\tfocus,\n\tsuccess,\n\terror,\n\twarning,\n\tonClick,\n}: {\n\ticon?: IconProp;\n\tfocus: boolean;\n\tonClick?: () => void;\n} & ControlsProps) => {\n\tif (!icon) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tonClick={onClick}\n\t\t\tclassName={classnames(\"kl-cursor-text\", {\n\t\t\t\t\"kl-text-front-hint kl-fill-front-hint\": !focus,\n\t\t\t\t\"kl-text-primary kl-fill-primary\": focus,\n\t\t\t\t\"kl-text-error kl-fill-error\": error,\n\t\t\t\t\"kl-text-warning kl-fill-warning\": warning,\n\t\t\t\t\"kl-text-success kl-fill-success\": success,\n\t\t\t})}\n\t\t>\n\t\t\t<Icon size={size} icon={icon}></Icon>\n\t\t</div>\n\t);\n};\n\nconst InputPrefixSuffix = ({\n\tchildren,\n\tonClick,\n}: {\n\tchildren?: string;\n\tonClick?: () => void;\n}) => {\n\tif (!children || children.length == 0) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tonClick={onClick}\n\t\t\tclassName=\"kl-text-front-hint kl-flex kl-flex-row kl-items-center kl-max-h-full kl-min-h-full kl-h-full kl-cursor-text control-inject\"\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n\nconst InputPrefixSuffixPlaceholder = InputPrefixSuffix;\nconst InputPrefixSuffixText = InputPrefixSuffix;\n\nconst InputPrependAppend = ({\n\tchildren,\n\ttype,\n\tfocus,\n}: {\n\tchildren?: PropPrependAppend;\n\ttype: \"prepend\" | \"append\";\n\tfocus: boolean;\n}) => {\n\tif (!children || (typeof children === \"string\" && children.length == 0)) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classnames(\n\t\t\t\t\"kl-flex kl-flex-row kl-max-h-full kl-min-h-full kl-h-full kl-items-center kl-transition-all\",\n\t\t\t\t{\n\t\t\t\t\t\"kl-border-r\": type == \"prepend\",\n\t\t\t\t\t\"kl-border-l\": type == \"append\",\n\n\t\t\t\t\t\"kl-border-stroke\": !focus,\n\t\t\t\t\t\"kl-border-primary\": focus,\n\t\t\t\t}\n\t\t\t)}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n\ninterface InputPasswordToggleButtonProps {\n\tshow: boolean;\n\tonChange: (status: boolean) => void;\n\tsize: ControlSize;\n}\n\nconst InputPasswordToggleButton = ({\n\tshow,\n\tsize,\n\tonChange,\n}: InputPasswordToggleButtonProps) => {\n\tconst toggle = () => {\n\t\tonChange(!show);\n\t};\n\n\treturn (\n\t\t<IconButton\n\t\t\tsize={size}\n\t\t\ttype=\"primary-borderless\"\n\t\t\ticon={show ? <EyeIcon /> : <EyeSlashIcon />}\n\t\t\tonClick={toggle}\n\t\t></IconButton>\n\t);\n};\n\ninterface InputClearButtonProps {\n\tonClear: () => void;\n\tsize: ControlSize;\n}\n\nconst InputClearButton = ({ size, onClear }: InputClearButtonProps) => {\n\treturn (\n\t\t<IconButton\n\t\t\tsize={size}\n\t\t\ttype=\"primary-borderless\"\n\t\t\ticon={<CloseIcon />}\n\t\t\tonClick={onClear}\n\t\t></IconButton>\n\t);\n};\n\nconst Input = forwardRef<HTMLInputElement, InputProps>(\n\t(\n\t\t{\n\t\t\tvalue,\n\t\t\tonChange,\n\t\t\tonDebounce,\n\t\t\tdebounceTimeout = 200,\n\t\t\tsize = \"default\",\n\t\t\tdisabled,\n\t\t\tsuccess,\n\t\t\twarning,\n\t\t\terror,\n\t\t\tprepend,\n\t\t\tprefix,\n\t\t\tprefixIcon,\n\t\t\tprefixText,\n\t\t\tprefixPlaceholder,\n\t\t\tsuffixPlaceholder,\n\t\t\tsuffixText,\n\t\t\tsuffixIcon,\n\t\t\tsuffix,\n\t\t\tappend,\n\t\t\tclearable,\n\t\t\ttogglePassword,\n\t\t\ttype,\n\t\t\tfill,\n\t\t\thtmlSize,\n\t\t\t...restProps\n\t\t},\n\t\tref: React.Ref<HTMLInputElement>\n\t) => {\n\t\tconst handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\t\tconst value = e.target.value;\n\n\t\t\tif (onChange) {\n\t\t\t\tonChange(e);\n\t\t\t}\n\n\t\t\thandleDebounce(value);\n\t\t};\n\n\t\tlet debounceTimer = useRef<NodeJS.Timer>();\n\n\t\tconst handleDebounce = (value: string) => {\n\t\t\tif (!onDebounce) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (debounceTimer.current) {\n\t\t\t\tclearTimeout(debounceTimer.current);\n\t\t\t}\n\n\t\t\tdebounceTimer.current = setTimeout(() => {\n\t\t\t\tonDebounce(value);\n\t\t\t}, debounceTimeout);\n\t\t};\n\n\t\tconst inputZeroPaddingLeft =\n\t\t\tprefixPlaceholder && prefixPlaceholder.length > 0;\n\t\tconst inputZeroPaddingRight =\n\t\t\tsuffixPlaceholder && suffixPlaceholder.length > 0;\n\n\t\tconst inputEl = useRef<HTMLInputElement>(null);\n\t\tconst combinedRef = useCombinedRefs<HTMLInputElement>(inputEl, ref);\n\n\t\tconst focusInput = () => inputEl.current?.focus();\n\n\t\tconst [focus, setFocus] = useState(false);\n\n\t\tconst handleFocus = (e: React.FocusEvent<HTMLInputElement, Element>) => {\n\t\t\tsetFocus(true);\n\t\t\tif (restProps?.onFocus) {\n\t\t\t\trestProps?.onFocus(e);\n\t\t\t}\n\t\t};\n\t\tconst handleBlur = (e: React.FocusEvent<HTMLInputElement, Element>) => {\n\t\t\tsetFocus(false);\n\t\t\tif (restProps?.onBlur) {\n\t\t\t\trestProps?.onBlur(e);\n\t\t\t}\n\t\t};\n\n\t\tconst isTogglePasswordButtonVisible = togglePassword && type == \"password\";\n\n\t\tconst [currentType, setCurrentType] = useState(type);\n\t\tconst isPasswordVisible = useMemo(\n\t\t\t() => currentType != \"password\",\n\t\t\t[currentType]\n\t\t);\n\n\t\tconst onChangePasswordVisibility = (show: boolean) => {\n\t\t\tsetCurrentType(show ? \"text\" : \"password\");\n\t\t};\n\n\t\tconst isClearButtonVisible = useMemo(() => {\n\t\t\treturn value != null && value.length > 0 && clearable;\n\t\t}, [value, clearable]);\n\t\tconst clear = () => {\n\t\t\tif (inputEl.current) {\n\t\t\t\tinputEl.current.value = \"\";\n\t\t\t\tinputEl.current.dispatchEvent(new Event(\"change\"));\n\t\t\t}\n\t\t};\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tonFocus={handleFocus}\n\t\t\t\tonBlur={handleBlur}\n\t\t\t\tclassName={classnames(\n\t\t\t\t\trestProps.className,\n\t\t\t\t\t\"editable-control-border kl-flex kl-flex-row kl-items-center kl-outline-none kl-ring-0\",\n\t\t\t\t\t{\n\t\t\t\t\t\tsuccess: success,\n\t\t\t\t\t\terror: error,\n\t\t\t\t\t\twarning: warning,\n\n\t\t\t\t\t\t\"kl-opacity-50\": disabled,\n\t\t\t\t\t\t\"editable-control-background\": !fill,\n\t\t\t\t\t\t\"kl-bg-stroke\": fill,\n\n\t\t\t\t\t\t// Size\n\t\t\t\t\t\t\"control-height-large\": size == \"large\",\n\t\t\t\t\t\t\"control-height-medium\": size == \"medium\",\n\t\t\t\t\t\t\"control-height-default\": size == \"default\",\n\t\t\t\t\t\t\"control-height-small\": size == \"small\",\n\t\t\t\t\t\t\"control-height-mini\": size == \"mini\",\n\t\t\t\t\t}\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<InputPrependAppend type=\"prepend\" focus={focus}>\n\t\t\t\t\t{prepend}\n\t\t\t\t</InputPrependAppend>\n\n\t\t\t\t{prefix}\n\n\t\t\t\t<div\n\t\t\t\t\tclassName={classnames(\n\t\t\t\t\t\t\"kl-flex kl-flex-row kl-gap-3 kl-flex-1 kl-items-center kl-max-h-full kl-min-h-full kl-h-full\",\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"kl-pl-2\": size == \"mini\" && !inputZeroPaddingLeft,\n\t\t\t\t\t\t\t\"kl-pr-2\": size == \"mini\" && !inputZeroPaddingRight,\n\n\t\t\t\t\t\t\t\"kl-pl-2.5\": size == \"small\" && !inputZeroPaddingRight,\n\t\t\t\t\t\t\t\"kl-pr-2.5\": size == \"small\" && !inputZeroPaddingRight,\n\n\t\t\t\t\t\t\t\"kl-pl-3\": size == \"default\" && !inputZeroPaddingRight,\n\t\t\t\t\t\t\t\"kl-pr-3\": size == \"default\" && !inputZeroPaddingRight,\n\n\t\t\t\t\t\t\t\"kl-pl-3.5\": size == \"medium\" && !inputZeroPaddingRight,\n\t\t\t\t\t\t\t\"kl-pr-3.5\": size == \"medium\" && !inputZeroPaddingRight,\n\n\t\t\t\t\t\t\t\"kl-pl-4\": size == \"large\" && !inputZeroPaddingRight,\n\t\t\t\t\t\t\t\"kl-pr-4\": size == \"large\" && !inputZeroPaddingRight,\n\t\t\t\t\t\t}\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<InputIcon\n\t\t\t\t\t\ticon={prefixIcon}\n\t\t\t\t\t\tfocus={focus}\n\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\tonClick={focusInput}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<InputPrefixSuffixText onClick={focusInput}>\n\t\t\t\t\t\t{prefixText}\n\t\t\t\t\t</InputPrefixSuffixText>\n\n\t\t\t\t\t<div className=\"kl-flex kl-flex-row kl-flex-1 kl-max-h-full kl-min-h-full kl-h-full\">\n\t\t\t\t\t\t<InputPrefixSuffixPlaceholder onClick={focusInput}>\n\t\t\t\t\t\t\t{prefixPlaceholder}\n\t\t\t\t\t\t</InputPrefixSuffixPlaceholder>\n\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tref={combinedRef}\n\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\t\t\ttype={currentType}\n\t\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t\t\tonFocus={handleFocus}\n\t\t\t\t\t\t\tonBlur={handleBlur}\n\t\t\t\t\t\t\tsize={htmlSize}\n\t\t\t\t\t\t\tclassName={classnames(\n\t\t\t\t\t\t\t\t\"kl-text-front kl-rounded-control kl-flex-1 kl-max-h-full kl-min-h-full kl-h-full kl-outline-none kl-ring-0 placeholder:kl-text-front-hint focus-visible:kl-outline-none focus-visible:kl-ring-0 kl-w-0\",\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"editable-control-background\": !fill,\n\t\t\t\t\t\t\t\t\t\"kl-bg-stroke\": fill,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<InputPrefixSuffixPlaceholder onClick={focusInput}>\n\t\t\t\t\t\t\t{suffixPlaceholder}\n\t\t\t\t\t\t</InputPrefixSuffixPlaceholder>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<InputPrefixSuffixText onClick={focusInput}>\n\t\t\t\t\t\t{suffixText}\n\t\t\t\t\t</InputPrefixSuffixText>\n\n\t\t\t\t\t<InputIcon\n\t\t\t\t\t\ticon={suffixIcon}\n\t\t\t\t\t\tfocus={focus}\n\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\tonClick={focusInput}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\n\t\t\t\t{isClearButtonVisible && (\n\t\t\t\t\t<InputClearButton size={size} onClear={clear} />\n\t\t\t\t)}\n\t\t\t\t{isTogglePasswordButtonVisible && (\n\t\t\t\t\t<InputPasswordToggleButton\n\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\tshow={isPasswordVisible}\n\t\t\t\t\t\tonChange={onChangePasswordVisibility}\n\t\t\t\t\t></InputPasswordToggleButton>\n\t\t\t\t)}\n\n\t\t\t\t{suffix}\n\n\t\t\t\t<InputPrependAppend type=\"append\" focus={focus}>\n\t\t\t\t\t{append}\n\t\t\t\t</InputPrependAppend>\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nexport default Input;\n","import React, { useRef, useEffect, useState } from \"react\";\nimport classnames from \"classnames\";\n\ninterface SliderThumbProps {\n\tshowOnHover?: boolean;\n\tsize?: number;\n\tcustomThumb?: React.ReactNode | JSX.Element;\n}\n\ninterface SliderProps {\n\tmin?: number;\n\tmax?: number;\n\tvalue: number;\n\tstep?: number;\n\tonChange: (value: number) => void;\n\tdisabled?: boolean;\n\tthumbProps?: SliderThumbProps;\n}\n\nconst SliderThumb: React.FC<SliderThumbProps> = ({\n\tshowOnHover,\n\tsize,\n\tcustomThumb,\n}) => {\n\tconst hasCustomThumb = !!customThumb;\n\n\tif (hasCustomThumb) {\n\t\t// Wrap custom thumb to always return a valid ReactElement\n\t\treturn <>{customThumb}</>;\n\t}\n\n\tconst hasSize = !!size;\n\tconst sizeStyle = hasSize ? { width: `${size}px`, height: `${size}px` } : {};\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classnames(\n\t\t\t\t\"kl-rounded-full kl-border-2 kl-border-primary kl-bg-background\",\n\t\t\t\t{\n\t\t\t\t\t\"kl-w-5 kl-h-5\": !hasSize,\n\t\t\t\t}\n\t\t\t)}\n\t\t\tstyle={sizeStyle}\n\t\t></div>\n\t);\n};\n\nconst Slider = ({\n\tmin = 0,\n\tmax = 100,\n\tvalue,\n\tstep = 1,\n\tonChange,\n\tdisabled,\n\tthumbProps,\n}: SliderProps) => {\n\tconst sliderRef = useRef<HTMLDivElement>(null);\n\tconst thumbRef = useRef<HTMLDivElement>(null);\n\tconst showThumbOnHover = thumbProps?.showOnHover;\n\n\tconst saveRange = (value: number) => {\n\t\tif (value < min) {\n\t\t\treturn min;\n\t\t}\n\n\t\tif (value > max) {\n\t\t\treturn max;\n\t\t}\n\n\t\treturn value;\n\t};\n\n\tconst updateValue = (x: number) => {\n\t\tif (disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst sliderEl = sliderRef.current;\n\n\t\tif (!sliderEl) {\n\t\t\treturn;\n\t\t}\n\t\tconst sliderWidth = sliderEl.offsetWidth;\n\n\t\tconst percentage = (x / sliderWidth) * 100;\n\n\t\tlet newValue = saveRange(\n\t\t\tMath.round(((max - min) * (percentage / 100)) / step) * step + min\n\t\t);\n\n\t\tonChange(newValue);\n\t};\n\n\tuseEffect(() => {\n\t\tconst sliderEl = sliderRef.current;\n\n\t\tif (sliderEl) {\n\t\t\tsliderEl.addEventListener(\"mousedown\", handleMouseDown);\n\t\t\tsliderEl.addEventListener(\"touchstart\", handleTouchStart);\n\n\t\t\treturn () => {\n\t\t\t\tsliderEl.removeEventListener(\"mousedown\", handleMouseDown);\n\t\t\t\tsliderEl.removeEventListener(\"touchstart\", handleTouchStart);\n\t\t\t};\n\t\t}\n\t}, []);\n\n\tconst handleMouseDown = (event: MouseEvent) => {\n\t\tevent.preventDefault();\n\t\tdocument.addEventListener(\"mousemove\", handleMouseMove);\n\t\tdocument.addEventListener(\"mouseup\", handleMouseUp);\n\t};\n\n\tconst handleMouseMove = (event: MouseEvent) => {\n\t\tevent.preventDefault();\n\n\t\tconst sliderEl = sliderRef.current;\n\n\t\tif (!sliderEl) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst sliderLeft = sliderEl.getBoundingClientRect().left;\n\t\tconst x = event.pageX - sliderLeft;\n\n\t\tupdateValue(x);\n\t};\n\n\tconst handleMouseUp = (event: MouseEvent) => {\n\t\tevent.preventDefault();\n\t\tdocument.removeEventListener(\"mousemove\", handleMouseMove);\n\t\tdocument.removeEventListener(\"mouseup\", handleMouseUp);\n\t};\n\n\tconst handleTouchStart = (event: TouchEvent) => {\n\t\tevent.preventDefault();\n\t\tdocument.addEventListener(\"touchmove\", handleTouchMove);\n\t\tdocument.addEventListener(\"touchend\", handleTouchEnd);\n\t};\n\n\tconst handleTouchMove = (event: TouchEvent) => {\n\t\tevent.preventDefault();\n\n\t\tconst sliderEl = sliderRef.current;\n\n\t\tif (!sliderEl) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst sliderLeft = sliderEl.getBoundingClientRect().left;\n\t\tconst x = event.changedTouches[0].pageX - sliderLeft;\n\n\t\tupdateValue(x);\n\t};\n\n\tconst handleTouchEnd = (event: TouchEvent) => {\n\t\tevent.preventDefault();\n\t\tdocument.removeEventListener(\"touchmove\", handleTouchMove);\n\t\tdocument.removeEventListener(\"touchend\", handleTouchEnd);\n\t};\n\n\tconst handleClick = (event: React.MouseEvent<HTMLDivElement>) => {\n\t\tevent.preventDefault();\n\n\t\tconst sliderEl = sliderRef.current;\n\n\t\tif (!sliderEl) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst sliderLeft = sliderEl.getBoundingClientRect().left;\n\t\tconst x = event.pageX - sliderLeft;\n\n\t\tupdateValue(x);\n\t};\n\n\tconst handleTap = (event: TouchEvent) => {\n\t\tevent.preventDefault();\n\n\t\tconst sliderEl = sliderRef.current;\n\n\t\tif (!sliderEl) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst sliderLeft = sliderEl.getBoundingClientRect().left;\n\t\tconst x = event.touches[0].pageX - sliderLeft;\n\n\t\tupdateValue(x);\n\t};\n\n\t// const percentage = ((sliderValue - min) / (max - min)) * 100;\n\tconst v = saveRange(value);\n\tconst percentage = ((v - min) / (max - min)) * 100;\n\n\tconst [thumbLeftOffset, setThumbLeftOffet] = useState(0);\n\n\tuseEffect(() => {\n\t\tconst el = thumbRef.current;\n\n\t\tif (!el) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst width = el.offsetWidth;\n\t\tconst percent = width / 100;\n\n\t\tsetThumbLeftOffet(-1 * percentage * percent);\n\t}, [thumbRef.current, value]);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classnames(\n\t\t\t\t\"kl-slider kl-relative kl-flex kl-flex-col kl-w-full kl-justify-center control-height-default\",\n\t\t\t\t{\n\t\t\t\t\t\"kl-cursor-pointer\": !disabled,\n\t\t\t\t\t\"kl-opacity-50\": disabled,\n\t\t\t\t\t\"kl-slider-hoverable\": showThumbOnHover,\n\t\t\t\t}\n\t\t\t)}\n\t\t\tonClick={handleClick}\n\t\t\tref={sliderRef}\n\t\t>\n\t\t\t<div className=\"kl-flex kl-flex-col kl-w-full kl-bg-stroke kl-h-1 kl-rounded-full kl-overflow-hidden\">\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"kl-h-full kl-rounded-full kl-bg-primary\"\n\t\t\t\t\tstyle={{ width: `${percentage}%` }}\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tref={thumbRef}\n\t\t\t\tclassName={classnames(\n\t\t\t\t\t\"kl-absolute kl-flex kl-items-center kl-justify-center kl-h-full\",\n\t\t\t\t\t{\n\t\t\t\t\t\t\"kl-slider-thumb\": showThumbOnHover,\n\t\t\t\t\t}\n\t\t\t\t)}\n\t\t\t\tstyle={{ left: `${percentage}%`, marginLeft: `${thumbLeftOffset}px` }}\n\t\t\t>\n\t\t\t\t<SliderThumb {...thumbProps} />\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default Slider;\n","import classnames from \"classnames\";\nimport React, { createContext, useContext, useMemo } from \"react\";\nimport { ControlStatusProps } from \"../../common/controls.type\";\n\ntype RadioIndicatorAligment = \"start\" | \"end\";\n\ninterface RadioContextProps<T> extends ControlStatusProps {\n\tvalue?: T;\n\tonChange: (value?: T) => void;\n\tdisabled?: boolean;\n\tindicatorAligment?: RadioIndicatorAligment;\n\tcustomIndicator?:\n\t\t| React.ReactElement\n\t\t| ((status?: boolean) => React.ReactElement);\n}\n\nconst RadioContext = createContext<RadioContextProps<any>>({\n\tonChange: () => {},\n});\n\nconst useRadioGroupContext = () => useContext(RadioContext);\n\ninterface PropsGroup<T> extends ControlStatusProps {\n\tvalue: T;\n\tonChange: (value: T) => void;\n\tchildren: JSX.Element | JSX.Element[];\n\tdisabled?: boolean;\n\tindicatorAligment?: RadioIndicatorAligment;\n\tcustomIndicator?:\n\t\t| React.ReactElement\n\t\t| ((status?: boolean) => React.ReactElement);\n}\n\nexport function RadioGroup<T>({\n\tvalue,\n\tonChange,\n\tchildren,\n\tdisabled,\n\tindicatorAligment,\n\tcustomIndicator,\n\tsuccess,\n\terror,\n\twarning,\n}: PropsGroup<T>) {\n\treturn (\n\t\t<RadioContext.Provider\n\t\t\tvalue={{\n\t\t\t\tvalue,\n\t\t\t\tonChange,\n\t\t\t\tdisabled,\n\t\t\t\tindicatorAligment,\n\t\t\t\tcustomIndicator,\n\t\t\t\tsuccess,\n\t\t\t\terror,\n\t\t\t\twarning,\n\t\t\t}}\n\t\t>\n\t\t\t<div className={classnames(\"kl-flex kl-flex-col kl-gap-5\")}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</RadioContext.Provider>\n\t);\n}\n\ninterface PropsOption<T> extends ControlStatusProps {\n\tvalue: T;\n\tchildren:\n\t\t| string\n\t\t| React.ReactElement\n\t\t| ((selected?: boolean) => React.ReactElement);\n\tsuffix?:\n\t\t| string\n\t\t| React.ReactElement\n\t\t| React.ReactNode\n\t\t| ((selected?: boolean) => React.ReactElement | React.ReactNode);\n\tdisabled?: boolean;\n\tindicatorAligment?: RadioIndicatorAligment;\n\tcustomIndicator?:\n\t\t| React.ReactElement\n\t\t| ((status?: boolean) => React.ReactElement);\n}\n\nexport const RadioIndicator = ({\n\tenabled = false,\n\tclassName,\n}: {\n\tenabled?: boolean;\n\tclassName?: string;\n}) => {\n\tif (enabled) {\n\t\treturn (\n\t\t\t<svg\n\t\t\t\twidth=\"24\"\n\t\t\t\theight=\"24\"\n\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\tclassName={className}\n\t\t\t>\n\t\t\t\t<path\n\t\t\t\t\td=\"M12 2C10.0222 2 8.08879 2.58649 6.4443 3.6853C4.79981 4.78412 3.51809 6.3459 2.76121 8.17317C2.00433 10.0004 1.8063 12.0111 2.19215 13.9509C2.578 15.8907 3.53041 17.6725 4.92894 19.0711C6.32746 20.4696 8.10929 21.422 10.0491 21.8079C11.9889 22.1937 13.9996 21.9957 15.8268 21.2388C17.6541 20.4819 19.2159 19.2002 20.3147 17.5557C21.4135 15.9112 22 13.9778 22 12C22 10.6868 21.7413 9.38642 21.2388 8.17317C20.7363 6.95991 19.9997 5.85752 19.0711 4.92893C18.1425 4.00035 17.0401 3.26375 15.8268 2.7612C14.6136 2.25866 13.3132 2 12 2ZM12 20C10.4178 20 8.87104 19.5308 7.55544 18.6518C6.23985 17.7727 5.21447 16.5233 4.60897 15.0615C4.00347 13.5997 3.84504 11.9911 4.15372 10.4393C4.4624 8.88743 5.22433 7.46197 6.34315 6.34315C7.46197 5.22433 8.88743 4.4624 10.4393 4.15372C11.9911 3.84504 13.5997 4.00346 15.0615 4.60896C16.5233 5.21447 17.7727 6.23984 18.6518 7.55544C19.5308 8.87103 20 10.4177 20 12C20 14.1217 19.1572 16.1566 17.6569 17.6569C16.1566 19.1571 14.1217 20 12 20Z\"\n\t\t\t\t\tfill=\"currentColor\"\n\t\t\t\t/>\n\t\t\t\t<path\n\t\t\t\t\td=\"M17 12C17 14.7614 14.7614 17 12 17C9.23858 17 7 14.7614 7 12C7 9.23858 9.23858 7 12 7C14.7614 7 17 9.23858 17 12Z\"\n\t\t\t\t\tfill=\"currentColor\"\n\t\t\t\t/>\n\t\t\t</svg>\n\t\t);\n\t} else {\n\t\treturn (\n\t\t\t<svg\n\t\t\t\twidth=\"24\"\n\t\t\t\theight=\"24\"\n\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\tclassName={className}\n\t\t\t>\n\t\t\t\t<path\n\t\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\t\tclipRule=\"evenodd\"\n\t\t\t\t\td=\"M12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\"\n\t\t\t\t\tfill=\"currentColor\"\n\t\t\t\t/>\n\t\t\t</svg>\n\t\t);\n\t}\n};\n\nexport function RadioOption<T>({\n\tvalue,\n\tchildren,\n\tdisabled,\n\tsuffix,\n\tindicatorAligment: optionIndicatorAligment,\n\tcustomIndicator: optionCustomIndicator,\n\tsuccess,\n\terror,\n\twarning,\n}: PropsOption<T>) {\n\tconst {\n\t\tvalue: currentValue,\n\t\tonChange,\n\t\tdisabled: groupDisabled,\n\t\tindicatorAligment: groupIndicatorAligment,\n\t\tcustomIndicator: groupCustomIndicator,\n\t\tsuccess: groupSuccess,\n\t\terror: groupError,\n\t\twarning: groupWarning,\n\t} = useRadioGroupContext();\n\n\tconst isSuccess = success || groupSuccess;\n\tconst isError = error || groupError;\n\tconst isWarning = warning || groupWarning;\n\n\tconst indicatorAligment: RadioIndicatorAligment =\n\t\toptionIndicatorAligment || groupIndicatorAligment || \"start\";\n\n\tconst customIndicator = optionCustomIndicator || groupCustomIndicator;\n\n\tconst selected = useMemo(() => currentValue == value, [currentValue, value]);\n\tconst enabled = useMemo(\n\t\t() => !disabled && !groupDisabled,\n\t\t[disabled, groupDisabled]\n\t);\n\n\tconst handleClick = () => {\n\t\tif (!enabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tonChange(value);\n\t};\n\n\tconst el = (elChildren: typeof children | typeof suffix) => {\n\t\tif (typeof elChildren === \"string\") {\n\t\t\treturn <>{elChildren}</>;\n\t\t}\n\n\t\tif (typeof elChildren === \"function\") {\n\t\t\treturn elChildren(currentValue == value);\n\t\t}\n\n\t\treturn elChildren as React.ReactElement;\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classnames(`kl-flex kl-flex-row kl-items-center kl-gap-2`, {\n\t\t\t\t\"kl-opacity-50\": !enabled,\n\t\t\t\t\"kl-cursor-pointer\": enabled,\n\t\t\t})}\n\t\t\tonClick={handleClick}\n\t\t>\n\t\t\t{indicatorAligment == \"start\" &&\n\t\t\t\t(customIndicator ? (\n\t\t\t\t\ttypeof customIndicator === \"function\" ? (\n\t\t\t\t\t\tcustomIndicator(selected)\n\t\t\t\t\t) : (\n\t\t\t\t\t\tcustomIndicator\n\t\t\t\t\t)\n\t\t\t\t) : (\n\t\t\t\t\t<RadioIndicator\n\t\t\t\t\t\tenabled={selected}\n\t\t\t\t\t\tclassName={classnames(\"kl-flex-shrink-0\", {\n\t\t\t\t\t\t\t\"kl-text-primary\": !isSuccess && !isError && !isWarning,\n\t\t\t\t\t\t\t\"kl-text-success\": isSuccess,\n\t\t\t\t\t\t\t\"kl-text-error\": isError,\n\t\t\t\t\t\t\t\"kl-text-warning\": isWarning,\n\t\t\t\t\t\t})}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\n\t\t\t<div className=\"kl-flex kl-flex-row kl-items-center kl-flex-1 kl-gap-2\">\n\t\t\t\t<div className=\"kl-flex-1\">{el(children)}</div>\n\t\t\t\t{suffix && <div className=\"kl-flex\">{el(suffix)}</div>}\n\t\t\t</div>\n\n\t\t\t{indicatorAligment == \"end\" &&\n\t\t\t\t(customIndicator ? (\n\t\t\t\t\ttypeof customIndicator === \"function\" ? (\n\t\t\t\t\t\tcustomIndicator(selected)\n\t\t\t\t\t) : (\n\t\t\t\t\t\tcustomIndicator\n\t\t\t\t\t)\n\t\t\t\t) : (\n\t\t\t\t\t<RadioIndicator\n\t\t\t\t\t\tenabled={selected}\n\t\t\t\t\t\tclassName={classnames(\"kl-flex-shrink-0\", {\n\t\t\t\t\t\t\t\"kl-text-primary\": !isSuccess && !isError && !isWarning,\n\t\t\t\t\t\t\t\"kl-text-success\": isSuccess,\n\t\t\t\t\t\t\t\"kl-text-error\": isError,\n\t\t\t\t\t\t\t\"kl-text-warning\": isWarning,\n\t\t\t\t\t\t})}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t</div>\n\t);\n}\n","import classnames from \"classnames\";\nimport React, { createContext, useContext, useEffect, useMemo } from \"react\";\n\ninterface CheckboxGroupContext<T> {\n\tvalues: T[];\n\tonChange: (checked: boolean, value: T) => void;\n\tdisabled?: boolean;\n}\n\nconst CheckboxGroupContext = createContext<CheckboxGroupContext<any>>({\n\tvalues: [],\n\tonChange: (checked, value) => {},\n});\n\nconst useCheckboxGroupContext = () => useContext(CheckboxGroupContext);\n\nexport const CheckboxIndicator = ({\n\tstatus,\n\tclassName,\n}: {\n\tstatus: boolean;\n\tclassName?: string;\n}) => {\n\tif (status) {\n\t\treturn (\n\t\t\t<svg\n\t\t\t\twidth=\"24\"\n\t\t\t\theight=\"24\"\n\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\tclassName={className}\n\t\t\t>\n\t\t\t\t<path\n\t\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\t\tclipRule=\"evenodd\"\n\t\t\t\t\td=\"M8 2C4.68629 2 2 4.68629 2 8V16C2 19.3137 4.68629 22 8 22H16C19.3137 22 22 19.3137 22 16V8C22 4.68629 19.3137 2 16 2H8ZM16.7884 8.24333C16.8798 8.28141 16.9628 8.3372 17.0325 8.4075C17.1086 8.47773 17.1694 8.56297 17.2109 8.65785C17.2525 8.75272 17.274 8.85517 17.274 8.95875C17.274 9.06233 17.2525 9.16478 17.2109 9.25965C17.1694 9.35453 17.1086 9.43977 17.0325 9.51L10.9125 15.63C10.8428 15.7003 10.7598 15.7561 10.6684 15.7942C10.577 15.8322 10.479 15.8518 10.38 15.8518C10.281 15.8518 10.183 15.8322 10.0916 15.7942C10.0002 15.7561 9.91722 15.7003 9.8475 15.63L6.9675 12.75C6.89511 12.6801 6.8372 12.5966 6.79708 12.5043C6.75696 12.412 6.73541 12.3126 6.73367 12.212C6.73193 12.1114 6.75003 12.0114 6.78693 11.9177C6.82384 11.8241 6.87882 11.7386 6.94875 11.6663C7.01868 11.5939 7.10218 11.536 7.19449 11.4958C7.2868 11.4557 7.38611 11.4342 7.48674 11.4324C7.58738 11.4307 7.68737 11.4488 7.78101 11.4857C7.87465 11.5226 7.96011 11.5776 8.0325 11.6475L10.38 14.0025L15.9675 8.4075C16.0372 8.3372 16.1202 8.28141 16.2116 8.24333C16.303 8.20526 16.401 8.18565 16.5 8.18565C16.599 8.18565 16.697 8.20526 16.7884 8.24333Z\"\n\t\t\t\t\tfill=\"currentColor\"\n\t\t\t\t/>\n\t\t\t</svg>\n\t\t);\n\t} else {\n\t\treturn (\n\t\t\t<svg\n\t\t\t\twidth=\"24\"\n\t\t\t\theight=\"24\"\n\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\tclassName={className}\n\t\t\t>\n\t\t\t\t<path\n\t\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\t\tclipRule=\"evenodd\"\n\t\t\t\t\td=\"M16 4H8C5.79086 4 4 5.79086 4 8V16C4 18.2091 5.79086 20 8 20H16C18.2091 20 20 18.2091 20 16V8C20 5.79086 18.2091 4 16 4ZM8 2C4.68629 2 2 4.68629 2 8V16C2 19.3137 4.68629 22 8 22H16C19.3137 22 22 19.3137 22 16V8C22 4.68629 19.3137 2 16 2H8Z\"\n\t\t\t\t\tfill=\"currentColor\"\n\t\t\t\t/>\n\t\t\t</svg>\n\t\t);\n\t}\n};\n\ninterface CheckboxProps<T = unknown> {\n\tchildren:\n\t\t| string\n\t\t| React.ReactElement\n\t\t| ((checked?: boolean) => React.ReactElement);\n\n\tchecked?: boolean;\n\tonChange?: (checked: boolean) => void;\n\tcustomIndicator?:\n\t\t| React.ReactElement\n\t\t| ((checked?: boolean) => React.ReactElement);\n\tdisabled?: boolean;\n\n\tvalue?: T;\n}\n\nexport const Checkbox = ({\n\tchildren,\n\tchecked,\n\tdisabled,\n\tvalue,\n\tonChange,\n\tcustomIndicator,\n}: CheckboxProps) => {\n\tconst groupContext = useCheckboxGroupContext();\n\n\tconst {\n\t\tvalues,\n\t\tonChange: groupOnChange,\n\t\tdisabled: groupDisabled,\n\t} = groupContext;\n\n\tconst status = useMemo(\n\t\t() => !!checked || values.includes(value),\n\t\t[checked, values]\n\t);\n\tconst enabled = useMemo(\n\t\t() => !disabled && !groupDisabled,\n\t\t[disabled, groupDisabled]\n\t);\n\n\tuseEffect(() => {\n\t\tif (status == checked) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (onChange) {\n\t\t\tonChange(status);\n\t\t}\n\t}, [status, checked]);\n\n\tuseEffect(() => {\n\t\tif (status == values.includes(value)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (groupOnChange) {\n\t\t\tgroupOnChange(status, value);\n\t\t}\n\t}, [status, values]);\n\n\tconst toggleChecked = () => {\n\t\tif (!enabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (onChange) {\n\t\t\tonChange(!status);\n\t\t}\n\n\t\tif (groupOnChange) {\n\t\t\tgroupOnChange(!status, value);\n\t\t}\n\t};\n\n\tconst el = () => {\n\t\tif (typeof children === \"string\") {\n\t\t\treturn <>{children}</>;\n\t\t}\n\n\t\tif (typeof children === \"function\") {\n\t\t\treturn children(status);\n\t\t}\n\n\t\treturn children as React.ReactElement;\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classnames(`kl-flex kl-flex-row kl-items-center kl-gap-2`, {\n\t\t\t\t\"kl-opacity-50\": !enabled,\n\t\t\t\t\"kl-cursor-pointer\": enabled,\n\t\t\t})}\n\t\t\tonClick={toggleChecked}\n\t\t>\n\t\t\t{customIndicator ? (\n\t\t\t\ttypeof customIndicator === \"function\" ? (\n\t\t\t\t\tcustomIndicator(status)\n\t\t\t\t) : (\n\t\t\t\t\tcustomIndicator\n\t\t\t\t)\n\t\t\t) : (\n\t\t\t\t<CheckboxIndicator\n\t\t\t\t\tstatus={status}\n\t\t\t\t\tclassName=\"kl-text-primary kl-flex-shrink-0\"\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t<div className=\"kl-flex kl-flex-col kl-items-center\">{el()}</div>\n\t\t</div>\n\t);\n};\n\ninterface CheckboxGroupProps<T = unknown> {\n\tvalues: T[];\n\tonChange: (values: T[]) => void;\n\n\tchildren: JSX.Element | JSX.Element[];\n\tdisabled?: boolean;\n}\n\nexport const CheckboxGroup = <T = unknown,>({\n\tvalues,\n\tonChange,\n\tchildren,\n\tdisabled,\n}: CheckboxGroupProps<T>) => {\n\tconst handleChange = (checked: boolean, value: T) => {\n\t\tconst index = values.findIndex((item) => item == value);\n\n\t\tlet newValues: T[] = [...values];\n\n\t\t// Add to list\n\t\tif (checked && index == -1) {\n\t\t\tnewValues.push(value);\n\t\t}\n\n\t\t// Remove from list\n\t\tif (!checked && index > -1) {\n\t\t\tnewValues.splice(index, 1);\n\t\t}\n\n\t\tonChange(newValues);\n\t};\n\n\treturn (\n\t\t<CheckboxGroupContext.Provider\n\t\t\tvalue={{ values, onChange: handleChange, disabled }}\n\t\t>\n\t\t\t<div className=\"kl-flex kl-flex-col kl-gap-5\">{children}</div>\n\t\t</CheckboxGroupContext.Provider>\n\t);\n};\n","import { useEffect } from \"react\";\n\nexport const useClickOutside = (refs: React.MutableRefObject<any> | React.MutableRefObject<any>[], callback: Function, enabled?: boolean) => {\n\n    const handleClickOutside = (event: MouseEvent | TouchEvent) => {\n\n        let currentList = [];\n\n        if(Array.isArray(refs)){\n\n            refs.forEach((ref) => {\n\n                if(!ref.current){\n                    return;\n                }\n\n                currentList.push(ref.current);\n\n            });    \n\n        } else {\n            currentList.push(refs.current);\n        }\n\n        const result = currentList.filter((el) => el.contains(event.target));\n\n        if(result.length == 0){\n            callback();\n        }\n\n    }\n\n    const addEventListeners = () => {\n        document.addEventListener(\"mouseup\", handleClickOutside);\n    }\n\n    const removeEventListeners = () => {\n        document.addEventListener(\"mouseup\", handleClickOutside);\n    }\n\n    useEffect(() => {\n        \n        if(!enabled){\n            removeEventListeners();\n            return;\n        }\n\n        // Bind the event listener\n        addEventListeners();\n\n        return () => {\n\n            // Unbind the event listener on clean up\n            removeEventListeners();\n\n\n        };\n    }, [refs, enabled]);\n\n\n}","import React, { useCallback, useRef, useState } from \"react\";\nimport {\n\tuseFloating,\n\tautoUpdate,\n\tflip,\n\tshift,\n\toffset,\n\tsize,\n\tuseTransitionStyles,\n} from \"@floating-ui/react\";\n\nimport { useClickOutside } from \"../../hooks/outside\";\nimport { Placement } from \"../../common/controls.type\";\nimport classNames from \"classnames\";\n\nexport interface PopoverProps {\n\tbutton: React.ReactNode | JSX.Element;\n\tchildren: React.ReactNode | JSX.Element;\n\tshow?: boolean;\n\tplacement?: Placement;\n\tonClickOutside?: () => void;\n\tclassName?: string;\n\tpopoverClassName?: string;\n\tminPopoverSize?: \"button\";\n}\n\nconst Popover = ({\n\tbutton,\n\tchildren,\n\tshow,\n\tonClickOutside,\n\tplacement,\n\tclassName,\n\tpopoverClassName,\n\tminPopoverSize,\n}: PopoverProps) => {\n\tconst buttonRef = useRef<HTMLDivElement>();\n\tconst popoverRef = useRef<HTMLDivElement>();\n\n\tconst [minFloatingWidth, setMinFloatingWidth] = useState<number>(0);\n\n\tconst { refs, floatingStyles, context } = useFloating({\n\t\topen: show,\n\t\tplacement: placement ?? \"bottom-start\", // Можно менять на top, right, left\n\t\tmiddleware: [\n\t\t\toffset(8),\n\t\t\tflip(),\n\t\t\tshift(),\n\t\t\tsize({\n\t\t\t\tapply(data) {\n\t\t\t\t\tif (minPopoverSize === \"button\") {\n\t\t\t\t\t\tsetMinFloatingWidth(data.rects.reference.width);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t}),\n\t\t],\n\t\twhileElementsMounted: autoUpdate,\n\t});\n\n\tconst handleClickOutside = useCallback(() => {\n\t\tonClickOutside?.();\n\t}, [onClickOutside]);\n\n\tuseClickOutside([buttonRef, popoverRef], handleClickOutside, show);\n\n\tconst handleButtonRef = useCallback(\n\t\t(ref: HTMLDivElement) => {\n\t\t\trefs.setReference(ref);\n\t\t\tbuttonRef.current = ref;\n\t\t},\n\t\t[refs]\n\t);\n\n\tconst handleRef = useCallback(\n\t\t(ref: HTMLDivElement) => {\n\t\t\trefs.setFloating(ref);\n\t\t\tpopoverRef.current = ref;\n\t\t},\n\t\t[refs]\n\t);\n\n\tconst { isMounted, styles } = useTransitionStyles(context, {\n\t\tduration: 200,\n\t\tinitial: {\n\t\t\topacity: 0,\n\t\t\ttransform: \"scale(0.95)\",\n\t\t},\n\t\topen: {\n\t\t\topacity: 1,\n\t\t\ttransform: \"scale(1)\",\n\t\t},\n\t\tclose: {\n\t\t\topacity: 0,\n\t\t\ttransform: \"scale(0.95)\",\n\t\t},\n\t});\n\n\treturn (\n\t\t<>\n\t\t\t<div className={className} ref={handleButtonRef}>\n\t\t\t\t{button}\n\t\t\t</div>\n\n\t\t\t{isMounted && (\n\t\t\t\t<div\n\t\t\t\t\tref={handleRef}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\t...floatingStyles,\n\t\t\t\t\t\tminWidth: `${minFloatingWidth}px`,\n\t\t\t\t\t}}\n\t\t\t\t\tclassName={classNames(\"kl-z-[1]\")}\n\t\t\t\t>\n\t\t\t\t\t<div style={styles} className={popoverClassName}>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</>\n\t);\n};\n\nexport default Popover;\n","import React from \"react\";\n\nimport Popover, { PopoverProps } from \"../popover\";\n\ninterface Props extends Omit<PopoverProps, \"popoverClassName\"> {}\n\nconst Dropdown = (props: Props) => {\n\treturn (\n\t\t<Popover\n\t\t\t{...props}\n\t\t\tpopoverClassName=\"kl-flex kl-flex-col kl-border kl-border-stroke kl-bg-background kl-rounded-control kl-overflow-hidden\"\n\t\t/>\n\t);\n};\n\nexport default Dropdown;\n","import React, {\n\tRef,\n\tSelectHTMLAttributes,\n\tcreateContext,\n\tforwardRef,\n\tuseContext,\n\tuseMemo,\n\tuseState,\n} from \"react\";\nimport { ControlSize, ControlsProps } from \"../../common/controls.type\";\nimport classnames from \"classnames\";\nimport Icon, { IconProp } from \"../icon\";\nimport Dropdown from \"../dropdown\";\nimport classNames from \"classnames\";\n\ninterface SelectContextProps<T> {\n\tvalue: T;\n\toptions: SelectOptionData<T>[];\n\tsize?: ControlSize;\n\tonChange: (value?: T) => void;\n\tcompareKey?: keyof NonNullable<T>;\n}\n\nconst SelectContext = createContext<SelectContextProps<any>>({\n\tvalue: null,\n\toptions: [],\n\tsize: \"default\",\n\tonChange: () => {},\n});\n\nconst useSelectContext = () => useContext(SelectContext);\n\ntype SelectType = \"default\" | \"primary\" | \"plain\" | \"borderless\" | \"text\";\n\ninterface Props<T>\n\textends Omit<SelectHTMLAttributes<T>, \"value\" | \"size\">,\n\t\tControlsProps {\n\tvalue: T;\n\ttype?: SelectType;\n\tchildren:\n\t\t| React.ReactElement\n\t\t| React.ReactElement[]\n\t\t| JSX.Element\n\t\t| JSX.Element[];\n\tplaceholder?: string;\n\ticon?: IconProp;\n\tcompareKey?: keyof NonNullable<T>;\n}\n\nconst Select = forwardRef(function <T>(\n\tprops: Props<T>,\n\tref: Ref<HTMLSelectElement>\n) {\n\tconst { children, value, onChange, size, disabled, compareKey } = props;\n\n\tconst [open, setOpen] = useState(false);\n\n\tconst hide = () => {\n\t\tsetOpen(false);\n\t};\n\n\tconst toggle = () => {\n\t\tsetOpen(!open);\n\t};\n\n\tconst options = useMemo(() => {\n\t\tconst optionComponents: React.ReactElement[] = [];\n\n\t\tReact.Children.forEach(children, (child) => {\n\t\t\tif (React.isValidElement(child) && child.type === SelectOption) {\n\t\t\t\toptionComponents.push(child);\n\t\t\t\treturn;\n\t\t\t}\n\t\t});\n\n\t\treturn optionComponents.map((comp) => {\n\t\t\tlet data: any = { ...comp.props };\n\n\t\t\tif (!data.label) {\n\t\t\t\tdata.label = comp.props.children;\n\t\t\t}\n\n\t\t\treturn data;\n\t\t});\n\t}, [children]);\n\n\tconst handleChange = (value: T) => {\n\t\thide();\n\n\t\tif (onChange) {\n\t\t\tconst event = {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue,\n\t\t\t\t},\n\t\t\t} as React.ChangeEvent<any>;\n\n\t\t\tonChange(event);\n\t\t}\n\t};\n\n\treturn (\n\t\t<SelectContext.Provider\n\t\t\tvalue={{ value, options, size, onChange: handleChange, compareKey }}\n\t\t>\n\t\t\t<Dropdown\n\t\t\t\tbutton={\n\t\t\t\t\t<SelectButton\n\t\t\t\t\t\t{...props}\n\t\t\t\t\t\tonClick={toggle}\n\t\t\t\t\t\topen={open}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t></SelectButton>\n\t\t\t\t}\n\t\t\t\tshow={open}\n\t\t\t\tonClickOutside={hide}\n\t\t\t\tminPopoverSize=\"button\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName={classnames(\"kl-max-h-80 kl-overflow-y-auto\", {\n\t\t\t\t\t\t\"kl-py-3\": size == \"large\",\n\t\t\t\t\t\t\"kl-py-2.5\": size == \"medium\",\n\t\t\t\t\t\t\"kl-py-2\": size == \"default\",\n\t\t\t\t\t\t\"kl-py-1.5\": size == \"small\" || size == \"mini\",\n\t\t\t\t\t})}\n\t\t\t\t>\n\t\t\t\t\t<div className=\"kl-flex kl-flex-col kl-h-full\">{children}</div>\n\t\t\t\t</div>\n\t\t\t</Dropdown>\n\t\t</SelectContext.Provider>\n\t);\n}) as <T>(\n\tprops: Props<T> & { ref?: Ref<HTMLSelectElement> }\n) => React.ReactElement;\n\ninterface SelectButtonProps<T> extends Omit<Props<T>, \"value\" | \"children\"> {\n\topen?: boolean;\n\tchildren?: React.ReactNode;\n\tonClick?: () => void;\n}\n\nexport function SelectButton<T>({\n\ttype = \"default\",\n\tsize = \"default\",\n\tplaceholder,\n\ticon,\n\tsuccess,\n\twarning,\n\terror,\n\tdisabled,\n\tonClick,\n\topen = false,\n\tclassName,\n}: SelectButtonProps<T>) {\n\tconst status = error\n\t\t? \"error\"\n\t\t: success\n\t\t? \"success\"\n\t\t: warning\n\t\t? \"warning\"\n\t\t: \"default\";\n\n\tconst { value, options, compareKey } = useSelectContext();\n\n\tlet content;\n\n\tlet selected = useMemo(() => {\n\t\tlet item = options.find((el) => {\n\t\t\tif (compareKey) {\n\t\t\t\treturn el.value?.[compareKey] == value?.[compareKey];\n\t\t\t}\n\n\t\t\treturn el.value == value;\n\t\t});\n\n\t\treturn item;\n\t}, [value, options]);\n\n\tif (!selected) {\n\t\tcontent = (\n\t\t\t<span\n\t\t\t\tclassName={classnames(\"kl-select-none\", {\n\t\t\t\t\t\"kl-text-front-hint\":\n\t\t\t\t\t\ttype == \"default\" || type == \"borderless\" || type == \"text\",\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{placeholder}\n\t\t\t</span>\n\t\t);\n\t} else {\n\t\tcontent = selected.label ?? selected.value;\n\t}\n\n\tconst handleClick = () => {\n\t\tif (disabled || !onClick) {\n\t\t\treturn;\n\t\t}\n\n\t\tonClick();\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tonClick={handleClick}\n\t\t\tclassName={classnames(\n\t\t\t\t\"kl-rounded-control kl-flex kl-flex-row kl-items-center kl-justify-start kl-transition-all kl-duration-200 kl-max-h-full\",\n\t\t\t\ttype != \"text\"\n\t\t\t\t\t? {\n\t\t\t\t\t\t\t\"kl-px-3\": size == \"large\",\n\t\t\t\t\t\t\t\"kl-px-2.5\": size == \"medium\",\n\t\t\t\t\t\t\t\"kl-px-2\": size == \"default\",\n\t\t\t\t\t\t\t\"kl-px-1.5\": size == \"small\" || size == \"mini\",\n\t\t\t\t\t  }\n\t\t\t\t\t: null,\n\t\t\t\t{\n\t\t\t\t\t// Type\n\t\t\t\t\t\"kl-border kl-bg-background  hover:kl-bg-background-hover active:kl-bg-background-active\":\n\t\t\t\t\t\ttype == \"default\",\n\n\t\t\t\t\t// Default state\n\t\t\t\t\t\"kl-text-front kl-fill-front kl-border-stroke\":\n\t\t\t\t\t\tstatus == \"default\" &&\n\t\t\t\t\t\t(type == \"default\" || type == \"text\" || type == \"borderless\"),\n\t\t\t\t\t\"kl-text-primary-front kl-fill-primary-front kl-bg-primary hover:kl-bg-primary-accent-hover active:kl-bg-primary-accent-active\":\n\t\t\t\t\t\tstatus == \"default\" && type == \"primary\",\n\t\t\t\t\t\"kl-text-primary kl-fill-primary kl-bg-primary-plain  hover:kl-bg-primary-plain-hover active:kl-bg-primary-plain-active\":\n\t\t\t\t\t\tstatus == \"default\" && type == \"plain\",\n\n\t\t\t\t\t// Error state\n\t\t\t\t\t\"kl-text-error kl-fill-error kl-border-error hover:kl-bg-error-hover active:kl-bg-error-active\":\n\t\t\t\t\t\tstatus == \"error\" && type == \"default\",\n\t\t\t\t\t\"kl-text-error-front kl-fill-error-front kl-bg-error hover:kl-bg-error-accent-hover active:kl-bg-error-accent-active\":\n\t\t\t\t\t\tstatus == \"error\" && type == \"primary\",\n\t\t\t\t\t\"kl-text-error kl-fill-error kl-bg-error-plain hover:kl-bg-error-plain-hover active:kl-bg-error-plain-active\":\n\t\t\t\t\t\tstatus == \"error\" && type == \"plain\",\n\t\t\t\t\t\"kl-text-error kl-fill-error hover:kl-text-error-accent-hover hover:kl-fill-error-accent-hover active:kl-text-error-accent-active active:kl-fill-error-active\":\n\t\t\t\t\t\tstatus == \"error\" && (type == \"text\" || type == \"borderless\"),\n\n\t\t\t\t\t// Warning state\n\t\t\t\t\t\"kl-text-warning kl-fill-warning kl-border-warning hover:kl-bg-warning-hover active:kl-bg-warning-active\":\n\t\t\t\t\t\tstatus == \"warning\" && type == \"default\",\n\t\t\t\t\t\"kl-text-warning-front kl-fill-warning-front kl-bg-warning hover:kl-bg-warning-primary-hover active:kl-bg-warning-primary-active\":\n\t\t\t\t\t\tstatus == \"warning\" && type == \"primary\",\n\t\t\t\t\t\"kl-text-warning kl-fill-warning kl-bg-warning-plain hover:kl-bg-warning-plain-hover active:kl-bg-warning-plain-active\":\n\t\t\t\t\t\tstatus == \"warning\" && type == \"plain\",\n\t\t\t\t\t\"kl-text-warning kl-fill-warning hover:text-warning-primary-hover hover:kl-fill-warning-primary-hover active:kl-text-warning-primary-active active:kl-fill-warning-active\":\n\t\t\t\t\t\tstatus == \"warning\" && (type == \"text\" || type == \"borderless\"),\n\n\t\t\t\t\t// Success state\n\t\t\t\t\t\"kl-text-success kl-fill-success kl-border-success hover:kl-bg-success-hover active:kl-bg-success-active\":\n\t\t\t\t\t\tstatus == \"success\" && type == \"default\",\n\t\t\t\t\t\"kl-text-success-front kl-fill-success-front kl-bg-success hover:kl-bg-success-accent-hover active:kl-bg-success-accent-active\":\n\t\t\t\t\t\tstatus == \"success\" && type == \"primary\",\n\t\t\t\t\t\"kl-text-success kl-fill-success kl-bg-success-plain hover:kl-bg-success-plain-hover active:kl-bg-success-plain-active\":\n\t\t\t\t\t\tstatus == \"success\" && type == \"plain\",\n\t\t\t\t\t\"kl-text-success kl-fill-success hover:kl-text-success-accent-hover hover:kl-fill-success-accent-hover active:kl-text-success-accent-active active:kl-fill-success-active\":\n\t\t\t\t\t\tstatus == \"success\" && (type == \"text\" || type == \"borderless\"),\n\n\t\t\t\t\t// Size\n\t\t\t\t\t\"control-height-large\": type != \"text\" && size == \"large\",\n\t\t\t\t\t\"control-height-medium\": type != \"text\" && size == \"medium\",\n\t\t\t\t\t\"control-height-default\": type != \"text\" && size == \"default\",\n\t\t\t\t\t\"control-height-small\": type != \"text\" && size == \"small\",\n\t\t\t\t\t\"control-height-mini\": type != \"text\" && size == \"mini\",\n\n\t\t\t\t\t\"kl-gap-3\": size == \"large\",\n\t\t\t\t\t\"kl-gap-2.5\": size == \"medium\",\n\t\t\t\t\t\"kl-gap-2\": size == \"default\",\n\t\t\t\t\t\"kl-gap-1.5\": size == \"small\" || size == \"mini\",\n\n\t\t\t\t\t// Disabled\n\t\t\t\t\t\"kl-cursor-not-allowed kl-opacity-50\": disabled,\n\n\t\t\t\t\t\"kl-cursor-pointer\": !disabled,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t>\n\t\t\t{(icon || selected?.icon) && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={classnames({\n\t\t\t\t\t\t\"kl-text-front-hint kl-fill-front-hint\":\n\t\t\t\t\t\t\tstatus == \"default\" &&\n\t\t\t\t\t\t\t(type == \"default\" || type == \"borderless\" || type == \"text\"),\n\t\t\t\t\t})}\n\t\t\t\t>\n\t\t\t\t\t<Icon icon={selected?.icon ?? icon} size={size} />\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t<div className=\"kl-flex kl-flex-1 kl-flex-row kl-items-center kl-justify-start kl-overflow-hidden kl-text-ellipsis kl-whitespace-nowrap\">\n\t\t\t\t{content}\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tclassName={classnames(\"kl-transition-all\", {\n\t\t\t\t\t\"kl-rotate-180\": open,\n\t\t\t\t\t\"kl-text-front-hint kl-fill-front-hint\":\n\t\t\t\t\t\tstatus == \"default\" &&\n\t\t\t\t\t\t(type == \"default\" || type == \"borderless\" || type == \"text\"),\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t<Icon\n\t\t\t\t\tsize={size}\n\t\t\t\t\ticon={\n\t\t\t\t\t\t<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t\t\t<path d=\"M17 9.17019C16.8126 8.98394 16.5592 8.87939 16.295 8.87939C16.0308 8.87939 15.7774 8.98394 15.59 9.17019L12 12.7102L8.46001 9.17019C8.27265 8.98394 8.0192 8.87939 7.75501 8.87939C7.49082 8.87939 7.23737 8.98394 7.05001 9.17019C6.95628 9.26315 6.88189 9.37375 6.83112 9.49561C6.78035 9.61747 6.75421 9.74818 6.75421 9.88019C6.75421 10.0122 6.78035 10.1429 6.83112 10.2648C6.88189 10.3866 6.95628 10.4972 7.05001 10.5902L11.29 14.8302C11.383 14.9239 11.4936 14.9983 11.6154 15.0491C11.7373 15.0998 11.868 15.126 12 15.126C12.132 15.126 12.2627 15.0998 12.3846 15.0491C12.5064 14.9983 12.617 14.9239 12.71 14.8302L17 10.5902C17.0937 10.4972 17.1681 10.3866 17.2189 10.2648C17.2697 10.1429 17.2958 10.0122 17.2958 9.88019C17.2958 9.74818 17.2697 9.61747 17.2189 9.49561C17.1681 9.37375 17.0937 9.26315 17 9.17019Z\" />\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\ntype SelectLabel =\n\t| \"string\"\n\t| JSX.Element\n\t| React.ReactElement\n\t| React.ReactNode;\n\ninterface SelectOptionData<T> {\n\tvalue: T;\n\ticon?: IconProp;\n\tlabel?: SelectLabel;\n}\n\ninterface SelectOptionProps<T> extends SelectOptionData<T> {\n\tchildren?: SelectLabel;\n\tdisabled?: boolean;\n}\n\nconst SelectOption = <T = unknown,>(props: SelectOptionProps<T>) => {\n\tconst {\n\t\tvalue: selectValue,\n\t\tonChange,\n\t\tsize = \"default\",\n\t\tcompareKey,\n\t} = useSelectContext();\n\n\tlet { value, icon, label, children, disabled } = props;\n\n\tconst selected = useMemo(() => {\n\t\tif (compareKey && value && selectValue) {\n\t\t\treturn (value as any)[compareKey] == (selectValue as any)[compareKey];\n\t\t}\n\n\t\treturn value == selectValue;\n\t}, [value, selectValue]);\n\n\tif (!children) {\n\t\tlabel = children;\n\t}\n\n\tconst handleClick = () => {\n\t\tif (disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tonChange(value);\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classnames(\n\t\t\t\t\"kl-flex kl-flex-row kl-items-center hover:kl-bg-primary-plain\",\n\t\t\t\t{\n\t\t\t\t\t\"kl-text-primary kl-fill-primary kl-font-medium\": selected,\n\n\t\t\t\t\t\"kl-px-3 kl-gap-3\": size == \"large\",\n\t\t\t\t\t\"kl-px-2.5 kl-gap-2.5\": size == \"medium\",\n\t\t\t\t\t\"kl-px-2 kl-gap-2\": size == \"default\",\n\t\t\t\t\t\"kl-px-1.5 kl-gap-1.5\": size == \"small\" || size == \"mini\",\n\n\t\t\t\t\t// Size\n\t\t\t\t\t\"control-height-large\": size == \"large\",\n\t\t\t\t\t\"control-height-medium\": size == \"medium\",\n\t\t\t\t\t\"control-height-default\": size == \"default\",\n\t\t\t\t\t\"control-height-small\": size == \"small\",\n\t\t\t\t\t\"control-height-mini\": size == \"mini\",\n\n\t\t\t\t\t// Disabled\n\t\t\t\t\t\"kl-cursor-not-allowed kl-opacity-50\": disabled,\n\n\t\t\t\t\t\"kl-cursor-pointer\": !disabled,\n\t\t\t\t}\n\t\t\t)}\n\t\t\tonClick={handleClick}\n\t\t>\n\t\t\t<Icon icon={icon} size={size} />\n\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n\nexport { Select, SelectOption };\n","import React, { ReactElement } from \"react\";\nimport Icon, { IconProp } from \"../icon\";\nimport { ControlsProps } from \"../../common/controls.type\";\nimport classNames from \"classnames\";\nimport { TabUnderlineStyle } from \"../tabs\";\n\nexport interface TabProps extends Omit<ControlsProps, \"size\"> {\n\ticon?: IconProp;\n\tsuffixIcon?: IconProp;\n\n\tprefix?: ReactElement;\n\tsuffix?: ReactElement;\n\n\tlabel: string | IconProp | ReactElement;\n\tchildren: ReactElement;\n\n\tactive?: boolean;\n\tonClick?: () => void;\n\n\texpanded?: boolean;\n\tunderlineStyle?: TabUnderlineStyle;\n}\n\nconst Tab = ({\n\tlabel,\n\ticon,\n\tsuffixIcon,\n\tprefix,\n\tsuffix,\n\tactive,\n\tdisabled,\n\tonClick,\n\texpanded,\n\tunderlineStyle,\n}: TabProps) => {\n\tconst handleClick = () => {\n\t\tif (disabled || !onClick) {\n\t\t\treturn;\n\t\t}\n\n\t\tonClick();\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tonClick={handleClick}\n\t\t\tclassName={classNames(\n\t\t\t\t\"kl-group kl-relative kl-flex kl-flex-row kl-items-center kl-justify-center kl-h-14 kl-gap-2 kl-px-3\",\n\t\t\t\t{\n\t\t\t\t\t\"kl-w-full kl-flex-1\": expanded,\n\t\t\t\t\t\"kl-opacity-50 kl-pointer-events-none\": disabled,\n\t\t\t\t\t\"kl-cursor-pointer\": !disabled,\n\t\t\t\t\t\"kl-text-front-secondary hover:kl-text-front\": !active,\n\t\t\t\t}\n\t\t\t)}\n\t\t>\n\t\t\t{prefix}\n\t\t\t{icon && <Icon icon={icon} />}\n\n\t\t\t<span className={classNames(\"kl-whitespace-nowrap kl-font-medium\")}>\n\t\t\t\t{label}\n\t\t\t</span>\n\n\t\t\t{suffixIcon && <Icon icon={suffixIcon} />}\n\t\t\t{suffix}\n\n\t\t\t<div\n\t\t\t\tclassName={classNames(\n\t\t\t\t\t\"kl-absolute kl-bottom-0 kl-h-0.5 kl-rounded-sm kl-rounded-bl-none kl-rounded-br-none\",\n\t\t\t\t\t{\n\t\t\t\t\t\t\"kl-left-1/2 -kl-translate-x-1/2 kl-w-5\":\n\t\t\t\t\t\t\tunderlineStyle == \"default\" || underlineStyle == undefined,\n\t\t\t\t\t\t\"kl-left-3 kl-right-3\": underlineStyle == \"full-width\",\n\t\t\t\t\t\t\"kl-bg-primary\": active,\n\t\t\t\t\t\t\"kl-bg-transparent group-hover:kl-bg-stroke\": !active,\n\t\t\t\t\t}\n\t\t\t\t)}\n\t\t\t></div>\n\t\t</div>\n\t);\n};\n\nexport default Tab;\n","import React, {\n\tEventHandler,\n\tMouseEventHandler,\n\tReactElement,\n\tcreateContext,\n\tuseContext,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from \"react\";\nimport Tab, { TabProps } from \"../tab\";\nimport classNames from \"classnames\";\n\nexport type TabUnderlineStyle = \"default\" | \"full-width\";\n\ninterface TabsContextProps {\n\tcurrentTabIndex: number;\n\ttabs: TabProps[];\n\tonChange: (index: number) => void;\n\tchildren: ReactElement;\n\texpandedTabs?: boolean;\n\ttabUnderlineStyle?: TabUnderlineStyle;\n}\n\nconst Context = createContext<TabsContextProps>({\n\tcurrentTabIndex: 0,\n\ttabs: [],\n\tonChange: (index) => {},\n\tchildren: <></>,\n\texpandedTabs: false,\n\ttabUnderlineStyle: \"default\",\n});\n\nconst useTabsContext = () => useContext(Context);\n\nconst TabsPanel = () => {\n\tconst { currentTabIndex, tabs, onChange, expandedTabs, tabUnderlineStyle } =\n\t\tuseTabsContext();\n\n\tconst viewportRef = useRef<HTMLDivElement>(null);\n\tconst contentRef = useRef<HTMLDivElement>(null);\n\n\tconst addListeners = () => {\n\t\twindow.addEventListener(\"mousemove\", onMouseMove);\n\t};\n\n\tconst removeListeners = () => {\n\t\twindow.removeEventListener(\"mousemove\", onMouseMove);\n\t};\n\n\tuseEffect(() => {\n\t\taddListeners();\n\t\treturn removeListeners;\n\t}, []);\n\n\tconst [dragging, setDragging] = useState(false);\n\tconst [startDraggingX, setStartDraggingX] = useState(0);\n\tconst [startScrollPosition, setStartScrollPosition] = useState(0);\n\tconst [mouseX, setMouseX] = useState(0);\n\n\tconst currentScrollValue = useMemo(() => {\n\t\treturn mouseX - startDraggingX;\n\t}, [startDraggingX, mouseX]);\n\n\tuseEffect(() => {\n\t\tif (!dragging) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst viewportEl = viewportRef?.current;\n\t\tconst currentScrollPosition = viewportEl?.scrollLeft ?? 0;\n\n\t\tviewportEl?.scrollTo({\n\t\t\tleft: startScrollPosition - currentScrollValue,\n\t\t});\n\t}, [currentScrollValue, dragging]);\n\n\tconst disableSelection = () => {\n\t\tdocument.body.style.userSelect = \"none\";\n\t};\n\n\tconst enableSelection = () => {\n\t\tdocument.body.style.userSelect = \"inherit\";\n\t};\n\n\tuseEffect(() => {\n\t\tif (dragging) {\n\t\t\tdisableSelection();\n\t\t} else {\n\t\t\tenableSelection();\n\t\t}\n\n\t\treturn enableSelection;\n\t}, [dragging]);\n\n\tconst startDragging = (e: React.MouseEvent<HTMLDivElement>) => {\n\t\tsetDragging(true);\n\t\tsetStartDraggingX(e.clientX);\n\t\tsetStartScrollPosition(viewportRef?.current?.scrollLeft ?? 0);\n\t};\n\n\tconst stopDragging = () => {\n\t\tsetDragging(false);\n\t};\n\n\tconst onMouseDown: MouseEventHandler<HTMLDivElement> = (\n\t\te: React.MouseEvent<HTMLDivElement>\n\t) => {\n\t\tstartDragging(e);\n\t\twindow.addEventListener(\"mouseup\", onMouseUp);\n\t};\n\n\tconst onMouseUp = (e: MouseEvent) => {\n\t\tstopDragging();\n\t\twindow.removeEventListener(\"mouseup\", onMouseUp);\n\t};\n\n\tconst onMouseMove = (e: MouseEvent) => {\n\t\tsetMouseX(e.clientX);\n\t};\n\n\tconst scrollToElement = (index: number) => {\n\t\tconst viewportEl = viewportRef?.current;\n\t\tconst contentEl = contentRef?.current;\n\t\tconst clickedChild = contentEl?.children[index];\n\n\t\tif (!viewportEl || !clickedChild) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst childBounds = clickedChild.getBoundingClientRect();\n\t\tconst viewportBounds = viewportEl.getBoundingClientRect();\n\t\tconst contentBounds = contentEl.getBoundingClientRect();\n\n\t\tconst { x: viewportX, width: viewportWidth } = viewportBounds;\n\t\tconst { x: childX, width: childWidth } = childBounds;\n\t\tconst { x: contentX, width: contentWidth } = contentBounds;\n\n\t\tconst viewportEndX = viewportX + viewportWidth;\n\t\tconst childEndX = childX + childWidth;\n\t\tconst childStartDistance = childX - contentX;\n\n\t\tconsole.log({\n\t\t\tcontentX,\n\t\t\tchildX,\n\t\t\tchildStartDistance,\n\t\t});\n\n\t\tif (childEndX > viewportEndX) {\n\t\t\tviewportEl.scrollTo({\n\t\t\t\tleft: childStartDistance - childWidth,\n\t\t\t});\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (childX < viewportX) {\n\t\t\tviewportEl.scrollTo({\n\t\t\t\tleft: childStartDistance,\n\t\t\t});\n\t\t}\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tref={viewportRef}\n\t\t\tclassName=\"kl-flex kl-flex-row kl-overflow-x-auto kl-no-scrollbar\"\n\t\t\tonMouseDown={onMouseDown}\n\t\t>\n\t\t\t<div\n\t\t\t\tref={contentRef}\n\t\t\t\tclassName={classNames(\"kl-flex kl-flex-row\", {\n\t\t\t\t\t\"kl-w-full kl-items-stretch\": expandedTabs,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{tabs.map((tab, index) => {\n\t\t\t\t\tconst active = index == currentTabIndex;\n\t\t\t\t\tconst handleClick = () => {\n\t\t\t\t\t\tif (tab.onClick) {\n\t\t\t\t\t\t\ttab.onClick();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tonChange(index);\n\t\t\t\t\t};\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Tab\n\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t{...tab}\n\t\t\t\t\t\t\tactive={active}\n\t\t\t\t\t\t\tonClick={handleClick}\n\t\t\t\t\t\t\texpanded={expandedTabs}\n\t\t\t\t\t\t\tunderlineStyle={tabUnderlineStyle}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nconst TabsCurrent = () => {\n\tconst { children } = useTabsContext();\n\n\treturn children;\n};\n\ninterface TabsProps {\n\tinitalTabIndex?: number;\n\tonChange?: (index: number) => void;\n\ttabs: TabProps[];\n\tchildren: string | ReactElement | ReactElement[];\n\texpandedTabs?: boolean;\n\ttabUnderlineStyle?: TabUnderlineStyle;\n}\n\nconst Tabs = ({\n\tinitalTabIndex = 0,\n\tonChange,\n\ttabs,\n\tchildren,\n\texpandedTabs,\n\ttabUnderlineStyle,\n}: TabsProps) => {\n\tconst [currentTabIndex, setCurrentTabIndex] = useState(initalTabIndex);\n\tconst currentTabChildren = useMemo(() => {\n\t\tconst currentTab = tabs[currentTabIndex];\n\t\tconst children = currentTab?.children ?? tabs[0].children;\n\n\t\treturn children;\n\t}, [currentTabIndex]);\n\n\tlet contextValues: TabsContextProps = useMemo(\n\t\t() => ({\n\t\t\tcurrentTabIndex,\n\t\t\tonChange: (newIndex: number) => {\n\t\t\t\tsetCurrentTabIndex(newIndex);\n\n\t\t\t\tif (onChange) {\n\t\t\t\t\tonChange(newIndex);\n\t\t\t\t}\n\t\t\t},\n\t\t\ttabs,\n\t\t\tchildren: currentTabChildren,\n\t\t\texpandedTabs,\n\t\t\ttabUnderlineStyle,\n\t\t}),\n\t\t[\n\t\t\tcurrentTabIndex,\n\t\t\tsetCurrentTabIndex,\n\t\t\ttabs,\n\t\t\tcurrentTabChildren,\n\t\t\texpandedTabs,\n\t\t\ttabUnderlineStyle,\n\t\t]\n\t);\n\n\treturn <Context.Provider value={contextValues}>{children}</Context.Provider>;\n};\n\nexport { Tabs, TabsPanel, TabsCurrent };\n","import React, {\n\tforwardRef,\n\tuseCallback,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n} from \"react\";\nimport classnames from \"classnames\";\nimport { ControlsProps } from \"../../common/controls.type\";\nimport { useCombinedRefs } from \"../../hooks/combinedrefs\";\n\ntype P = Omit<React.HTMLProps<HTMLTextAreaElement>, \"size\"> & ControlsProps;\n\ninterface Props extends P {\n\tvalue?: string;\n\tautosize?: boolean | { minRows?: number; maxRows?: number };\n}\n\nconst Textarea = forwardRef<HTMLTextAreaElement, Props>(\n\t(\n\t\t{\n\t\t\tvalue,\n\t\t\tonChange,\n\t\t\tdisabled,\n\t\t\tsuccess,\n\t\t\twarning,\n\t\t\terror,\n\t\t\tsize = \"default\",\n\t\t\tautosize = { minRows: 2, maxRows: 5 },\n\t\t\t...restProps\n\t\t},\n\t\tref\n\t) => {\n\t\tconst textareaElement = useRef<HTMLTextAreaElement>(null);\n\t\tconst combinedRef = useCombinedRefs<HTMLTextAreaElement>(\n\t\t\ttextareaElement,\n\t\t\tref\n\t\t);\n\n\t\tuseEffect(() => {\n\t\t\tif (textareaElement.current) {\n\t\t\t\tupdateSize();\n\t\t\t}\n\t\t}, []);\n\n\t\tuseEffect(() => {\n\t\t\tupdateSize();\n\t\t}, [value, autosize, textareaElement]);\n\n\t\tconst handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n\t\t\tif (onChange) {\n\t\t\t\tonChange(e);\n\t\t\t}\n\n\t\t\tupdateSize();\n\t\t};\n\n\t\tconst updateSize = () => {\n\t\t\tif (!autosize) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!textareaElement.current) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetupHeightLimits();\n\n\t\t\tconst styles = getComputedStyle(textareaElement.current);\n\t\t\tconst borderTopWidth = parseInt(styles.borderTopWidth);\n\t\t\tconst borderBottomWidth = parseInt(styles.borderBottomWidth);\n\t\t\tconst borderVeritalWidth = borderTopWidth + borderBottomWidth;\n\n\t\t\ttextareaElement.current.style.height = \"0\";\n\t\t\ttextareaElement.current.style.height = `${\n\t\t\t\ttextareaElement.current.scrollHeight + borderVeritalWidth\n\t\t\t}px`;\n\t\t};\n\n\t\tconst setupHeightLimits = () => {\n\t\t\tif (!autosize || typeof autosize == \"boolean\") {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!textareaElement.current) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst styles = getComputedStyle(textareaElement.current);\n\t\t\tconst lineHeight = parseInt(styles.lineHeight);\n\t\t\tconst borderTopWidth = parseInt(styles.borderTopWidth);\n\t\t\tconst borderBottomWidth = parseInt(styles.borderBottomWidth);\n\t\t\tconst borderVeritalWidth = borderTopWidth + borderBottomWidth;\n\t\t\tconst paddingTop = parseInt(styles.paddingTop);\n\t\t\tconst paddingBottom = parseInt(styles.paddingBottom);\n\t\t\tconst verticalPadding = paddingTop + paddingBottom;\n\n\t\t\tlet { minRows, maxRows } = autosize;\n\n\t\t\tif (minRows) {\n\t\t\t\ttextareaElement.current.style.minHeight = `${\n\t\t\t\t\tlineHeight * minRows + verticalPadding + borderVeritalWidth\n\t\t\t\t}px`;\n\t\t\t}\n\n\t\t\tif (maxRows) {\n\t\t\t\ttextareaElement.current.style.maxHeight = `${\n\t\t\t\t\tlineHeight * maxRows + verticalPadding + borderVeritalWidth\n\t\t\t\t}px`;\n\t\t\t}\n\t\t};\n\n\t\treturn (\n\t\t\t<textarea\n\t\t\t\tref={combinedRef}\n\t\t\t\tvalue={value}\n\t\t\t\tonChange={handleChange}\n\t\t\t\t{...restProps}\n\t\t\t\tclassName={classnames(\n\t\t\t\t\trestProps.className,\n\t\t\t\t\t\"kl-rounded-control editable-control-border editable-control-background editable-control-background kl-resize-none placeholder:kl-text-front-hint\",\n\t\t\t\t\t{\n\t\t\t\t\t\tsuccess: success,\n\t\t\t\t\t\terror: error,\n\t\t\t\t\t\twarning: warning,\n\t\t\t\t\t\t\"kl-opacity-50\": disabled,\n\n\t\t\t\t\t\t\"kl-px-3 kl-py-3\": size == \"large\",\n\t\t\t\t\t\t\"kl-px-3 kl-py-2.5\": size == \"medium\",\n\t\t\t\t\t\t\"kl-px-3 kl-py-2\": size == \"default\",\n\t\t\t\t\t\t\"kl-px-2.5 kl-py-1.5\": size == \"small\",\n\t\t\t\t\t\t\"kl-px-2 kl-py-1\": size == \"mini\",\n\t\t\t\t\t}\n\t\t\t\t)}\n\t\t\t\tdisabled={disabled}\n\t\t\t></textarea>\n\t\t);\n\t}\n);\n\nexport default Textarea;\n","import React, { useCallback, useRef, useState } from \"react\";\nimport {\n\tuseFloating,\n\tautoUpdate,\n\tflip,\n\tshift,\n\toffset,\n\tsize,\n\tuseTransitionStyles,\n\tuseHover,\n\tsafePolygon,\n\tuseInteractions,\n} from \"@floating-ui/react\";\n\nimport { Placement } from \"../../common/controls.type\";\nimport classNames from \"classnames\";\n\nexport interface HoverPopoverProps {\n\tbutton: React.ReactNode | JSX.Element;\n\tchildren: React.ReactNode | JSX.Element;\n\tplacement?: Placement;\n\tclassName?: string;\n\tpopoverClassName?: string;\n\tminPopoverSize?: \"button\";\n\topenDelay?: number;\n\tcloseDelay?: number;\n}\n\nconst HoverPopover = ({\n\tbutton,\n\tchildren,\n\tplacement,\n\tclassName,\n\tpopoverClassName,\n\tminPopoverSize,\n\topenDelay,\n\tcloseDelay,\n}: HoverPopoverProps) => {\n\tconst buttonRef = useRef<HTMLDivElement>();\n\tconst popoverRef = useRef<HTMLDivElement>();\n\n\tconst [visible, setVisible] = useState<boolean>(false);\n\n\tconst [minFloatingWidth, setMinFloatingWidth] = useState<number>(0);\n\n\tconst { refs, floatingStyles, context } = useFloating({\n\t\topen: visible,\n\t\tonOpenChange: (state) => {\n\t\t\tsetVisible(state);\n\t\t},\n\t\tplacement: placement ?? \"top\",\n\t\tmiddleware: [\n\t\t\toffset(8),\n\t\t\tflip(),\n\t\t\tshift(),\n\t\t\tsize({\n\t\t\t\tapply(data) {\n\t\t\t\t\tif (minPopoverSize === \"button\") {\n\t\t\t\t\t\tsetMinFloatingWidth(data.rects.reference.width);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t}),\n\t\t],\n\t\twhileElementsMounted: autoUpdate,\n\t});\n\n\tconst handleButtonRef = useCallback(\n\t\t(ref: HTMLDivElement) => {\n\t\t\trefs.setReference(ref);\n\t\t\tbuttonRef.current = ref;\n\t\t},\n\t\t[refs]\n\t);\n\n\tconst handleRef = useCallback(\n\t\t(ref: HTMLDivElement) => {\n\t\t\trefs.setFloating(ref);\n\t\t\tpopoverRef.current = ref;\n\t\t},\n\t\t[refs]\n\t);\n\n\tconst { isMounted, styles } = useTransitionStyles(context, {\n\t\tduration: 200,\n\t\tinitial: {\n\t\t\topacity: 0,\n\t\t\ttransform: \"scale(0.95)\",\n\t\t},\n\t\topen: {\n\t\t\topacity: 1,\n\t\t\ttransform: \"scale(1)\",\n\t\t},\n\t\tclose: {\n\t\t\topacity: 0,\n\t\t\ttransform: \"scale(0.95)\",\n\t\t},\n\t});\n\n\tconst hover = useHover(context, {\n\t\tdelay: {\n\t\t\topen: openDelay ?? 200,\n\t\t\tclose: closeDelay ?? 1000,\n\t\t},\n\t\thandleClose: safePolygon(),\n\t});\n\n\tconst { getReferenceProps, getFloatingProps } = useInteractions([hover]);\n\n\treturn (\n\t\t<>\n\t\t\t<div className={className} ref={handleButtonRef} {...getReferenceProps()}>\n\t\t\t\t{button}\n\t\t\t</div>\n\n\t\t\t{isMounted && (\n\t\t\t\t<div\n\t\t\t\t\tref={handleRef}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\t...floatingStyles,\n\t\t\t\t\t\tminWidth: `${minFloatingWidth}px`,\n\t\t\t\t\t}}\n\t\t\t\t\t{...getFloatingProps()}\n\t\t\t\t\tclassName={classNames(\"kl-z-[1]\")}\n\t\t\t\t>\n\t\t\t\t\t<div style={styles} className={popoverClassName}>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</>\n\t);\n};\n\nexport default HoverPopover;\n","import { ButtonProps } from \"../button\"\n\nexport const PopupOkayButton = (props: ButtonProps) => {\n\n    const children = props.children ?? \"Okay\";\n\n    return {\n        ...props,\n        children\n    }\n\n}\n\nexport const PopupCancelButton = (props: ButtonProps) => {\n\n    const children = props.children ?? \"Cancel\";\n\n    return {\n        ...props,\n        children\n    }\n\n}","import { PopupProps } from \".\";\nimport { ButtonProps } from \"../button\";\nimport { usePopup } from \"./context\";\nimport { PopupCancelButton } from \"./popup-default-button\";\n\nexport interface ConfirmPopupProps\n\textends Omit<PopupProps<boolean>, \"buttons\"> {\n\tconfirmButtonText: string;\n\tconfirmButtonType?: ButtonProps[\"type\"];\n\tcancelButtonText?: string;\n\tcancelButtonType?: ButtonProps[\"type\"];\n}\n\nexport const useConfirmPopup = () => {\n\tconst showPopup = usePopup<boolean>();\n\n\treturn (popup: ConfirmPopupProps): Promise<boolean> => {\n\t\tconst {\n\t\t\tsuccess,\n\t\t\tdanger,\n\t\t\terror,\n\t\t\twarning,\n\t\t\tconfirmButtonText,\n\t\t\tconfirmButtonType,\n\t\t\tcancelButtonText,\n\t\t\tcancelButtonType,\n\t\t} = popup;\n\n\t\treturn showPopup({\n\t\t\t...popup,\n\n\t\t\tonClose: (close) => {\n\t\t\t\tclose(false);\n\t\t\t},\n\n\t\t\tbuttons: (close) => [\n\t\t\t\t{\n\t\t\t\t\ttype: confirmButtonType ?? \"primary\",\n\t\t\t\t\tsuccess,\n\t\t\t\t\terror: error || danger,\n\t\t\t\t\twarning,\n\t\t\t\t\tchildren: confirmButtonText,\n\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\tclose(true);\n\t\t\t\t\t},\n\t\t\t\t},\n\n\t\t\t\tPopupCancelButton({\n\t\t\t\t\ttype: cancelButtonType,\n\t\t\t\t\tchildren: cancelButtonText,\n\n\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\tclose(false);\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t});\n\t};\n};\n","import React, { useRef } from \"react\";\nimport { CloseFunction, OverlayChildrenProps } from \"../overlay\";\nimport IconButton from \"../icon-button\";\nimport CloseIcon from \"../../icons/close-icon\";\nimport Window from \"../window\";\nimport classnames from \"classnames\";\nimport { ConfirmPopupProps, useConfirmPopup } from \"../popup/confirm\";\n\ntype ModalScrollType = \"paper\" | \"body\";\n\nexport interface ModalProps {\n\tchildren:\n\t\t| string\n\t\t| React.ReactElement\n\t\t| ((props: OverlayChildrenProps) => React.ReactElement);\n\ttitle?: string | React.ReactElement;\n\n\tshow: boolean;\n\tonClose: () => void;\n\n\tscrollType?: ModalScrollType;\n\tcloseConfirmPopup?: ConfirmPopupProps;\n}\n\nconst Modal = ({\n\tchildren,\n\ttitle,\n\tshow,\n\tscrollType = \"paper\",\n\tcloseConfirmPopup,\n\tonClose,\n}: ModalProps) => {\n\tconst el = (props: OverlayChildrenProps) => {\n\t\tif (typeof children === \"function\") {\n\t\t\treturn children(props);\n\t\t}\n\n\t\treturn children as React.ReactElement;\n\t};\n\n\tconst ref = useRef(null);\n\n\tconst showConfirmPopup = useConfirmPopup();\n\n\tconst handleBackdropClick = async () => {\n\t\tif (closeConfirmPopup) {\n\t\t\tconst result = await showConfirmPopup(closeConfirmPopup);\n\n\t\t\tif (!result) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tonClose();\n\t};\n\n\treturn (\n\t\t<Window show={show} onClose={onClose} onBackdropClick={handleBackdropClick}>\n\t\t\t{({ close }) => {\n\t\t\t\treturn (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={classnames(\n\t\t\t\t\t\t\t\"kl-flex kl-flex-col kl-bg-background kl-rounded-modal kl-shadow-modal kl-m-5\",\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"kl-max-h-full\": scrollType == \"paper\",\n\t\t\t\t\t\t\t\t\"kl-flex-1\": scrollType == \"body\",\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{title && (\n\t\t\t\t\t\t\t<div className=\"kl-flex kl-flex-row kl-items-center kl-justify-between\">\n\t\t\t\t\t\t\t\t<div className=\"kl-font-medium kl-text-xl kl-p-4 kl-mr-2\">\n\t\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div className=\"kl-p-1\">\n\t\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\t\tsize=\"large\"\n\t\t\t\t\t\t\t\t\t\ttype=\"light-borderless\"\n\t\t\t\t\t\t\t\t\t\ticon={<CloseIcon />}\n\t\t\t\t\t\t\t\t\t\tonClick={close}\n\t\t\t\t\t\t\t\t\t></IconButton>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={classnames(\n\t\t\t\t\t\t\t\t\"kl-flex kl-flex-col kl-px-4 kl-pb-4 kl-flex-1\",\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"kl-pt-4\": !title,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{el({ close })}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t}}\n\t\t</Window>\n\t);\n};\n\nexport default Modal;\n","import React, {\n\tReactElement,\n\tcreateContext,\n\tuseContext,\n\tuseState,\n} from \"react\";\nimport Icon, { IconProp } from \"../icon\";\nimport { ControlStatusProps, Placement } from \"../../common/controls.type\";\nimport classNames from \"classnames\";\nimport Dropdown from \"../dropdown\";\n\ninterface ActionDropdownItemProps extends ControlStatusProps {\n\ticon?: IconProp;\n\tsuffixIcon?: IconProp;\n\n\tprefix?: string | ReactElement | ReactElement[];\n\tsuffix?: string | ReactElement | ReactElement[];\n\n\tchildren: string | ReactElement | ReactElement[];\n\tonClick?: React.MouseEventHandler<HTMLDivElement>;\n\n\tprimary?: boolean;\n\tdanger?: boolean;\n\n\tdisabled?: boolean;\n\tcloseAfterClick?: boolean;\n}\n\nexport const ActionDropdownItem = ({\n\tchildren,\n\ticon,\n\tsuffixIcon,\n\tprefix,\n\tsuffix,\n\tsuccess,\n\terror,\n\twarning,\n\tdanger,\n\tprimary,\n\tdisabled,\n\tonClick,\n\tcloseAfterClick = true,\n}: ActionDropdownItemProps) => {\n\tconst isDefault = !(success || error || warning || danger || primary);\n\n\tconst { onClose } = useActionDropdownContext();\n\n\tconst handleClick: React.MouseEventHandler<HTMLDivElement> = (e) => {\n\t\tif (onClick) {\n\t\t\tonClick(e);\n\t\t}\n\n\t\tif (closeAfterClick) {\n\t\t\tonClose();\n\t\t}\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tonClick={handleClick}\n\t\t\tclassName={classNames(\n\t\t\t\t\"kl-flex kl-flex-row kl-items-center kl-gap-2 kl-px-3 control-height-large kl-whitespace-nowrap\",\n\t\t\t\t{\n\t\t\t\t\t\"kl-cursor-pointer\": !disabled,\n\t\t\t\t\t\"kl-opacity-50 kl-pointer-events-none\": disabled,\n\n\t\t\t\t\t\"hover:kl-bg-background-hover\": isDefault,\n\t\t\t\t\t\"kl-text-primary hover:kl-bg-primary-hover\": primary,\n\t\t\t\t\t\"kl-text-error hover:kl-bg-error-hover\": error || danger,\n\t\t\t\t\t\"kl-text-warning hover:kl-bg-warning-hover\": warning,\n\t\t\t\t\t\"kl-text-success hover:kl-bg-success-hover\": success,\n\t\t\t\t}\n\t\t\t)}\n\t\t>\n\t\t\t<div className=\"kl-flex kl-flex-row kl-items-center kl-gap-2 kl-flex-1\">\n\t\t\t\t{icon && <Icon icon={icon} />}\n\t\t\t\t{prefix && <span>{prefix}</span>}\n\t\t\t\t<span>{children}</span>\n\t\t\t</div>\n\t\t\t{suffix && <span>{suffix}</span>}\n\t\t\t{suffixIcon && <Icon icon={suffixIcon} />}\n\t\t</div>\n\t);\n};\n\ninterface ActionDropdownContextProps {\n\tonClose: () => void;\n}\n\nconst Context = createContext<ActionDropdownContextProps>({\n\tonClose: () => {},\n});\n\nconst useActionDropdownContext = () => useContext(Context);\n\ninterface ActionDropdownProps {\n\tbutton: string | ReactElement | ReactElement[];\n\tchildren: string | ReactElement | ReactElement[];\n\tshow: boolean;\n\tplacement?: Placement;\n\tonClose: () => void;\n}\n\nexport const ActionDropdown = ({\n\tchildren,\n\tbutton,\n\tshow,\n\tplacement,\n\tonClose,\n}: ActionDropdownProps) => {\n\tconst contextValue: ActionDropdownContextProps = {\n\t\tonClose,\n\t};\n\n\treturn (\n\t\t<Context.Provider value={contextValue}>\n\t\t\t<Dropdown\n\t\t\t\tshow={show}\n\t\t\t\tonClickOutside={onClose}\n\t\t\t\tbutton={button}\n\t\t\t\tplacement={placement}\n\t\t\t>\n\t\t\t\t<div className=\"kl-flex kl-flex-col\">{children}</div>\n\t\t\t</Dropdown>\n\t\t</Context.Provider>\n\t);\n};\n","import { hexToHsva, hsvaToHex } from \"@uiw/react-color/esm\";\nimport React from \"react\";\nimport { isHexColor } from \"../../../utils/colors\";\n\ninterface Props {\n\tcolor: string;\n\tshowAlpha?: boolean;\n}\n\nconst ColorPreview = ({ color, showAlpha = false }: Props) => {\n\tconst hsvaColor = hexToHsva(isHexColor(color) ? color : \"#ff0000\");\n\tconst colorWithoutAlpha = hsvaToHex(hsvaColor);\n\n\treturn (\n\t\t<div className=\"kl-flex kl-flex-col kl-aspect-square kl-w-6 kl-h-6 kl-border kl-border-stroke kl-overflow-hidden kl-rounded-md\">\n\t\t\t<div\n\t\t\t\tclassName=\"kl-w-full kl-flex-1\"\n\t\t\t\tstyle={{\n\t\t\t\t\tbackgroundColor: colorWithoutAlpha,\n\t\t\t\t}}\n\t\t\t></div>\n\t\t\t{showAlpha && (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"kl-w-full kl-flex-1\"\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tbackgroundColor: color,\n\t\t\t\t\t}}\n\t\t\t\t></div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default ColorPreview;\n","import { ChangeEvent, useEffect, useState } from \"react\";\nimport Input from \"../../input\";\nimport ColorPreview from \"./color-preview\";\nimport React from \"react\";\nimport { isHexColor } from \"../../../utils/colors\";\n\ninterface Props {\n\tcolor: string;\n\tonChange: (value: string) => void;\n}\n\nconst HexInput = ({ color, onChange }: Props) => {\n\tconst [value, setValue] = useState(color);\n\tconst handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n\t\tconst newValue = e.target.value;\n\t\tsetValue(newValue);\n\t};\n\n\tuseEffect(() => {\n\t\tsetValue(color);\n\t}, [color]);\n\n\tconst handleKeyUp = (e: React.KeyboardEvent<HTMLInputElement>) => {\n\t\tconst isEnter = e.key == \"Enter\";\n\n\t\tif (isEnter) {\n\t\t\tonSubmit();\n\t\t}\n\t};\n\n\tconst onSubmit = () => {\n\t\tif (isHexColor(value)) {\n\t\t\tonChange(value);\n\t\t} else {\n\t\t\tsetValue(color);\n\t\t\tonChange(color);\n\t\t}\n\t};\n\n\treturn (\n\t\t<Input\n\t\t\tsize=\"large\"\n\t\t\tclassName=\"kl-flex-1 kl-w-full\"\n\t\t\tprefixIcon={<ColorPreview color={color} />}\n\t\t\tvalue={value}\n\t\t\thtmlSize={9}\n\t\t\tmaxLength={9}\n\t\t\tonChange={handleInputChange}\n\t\t\tonKeyUp={handleKeyUp}\n\t\t\tonBlur={onSubmit}\n\t\t/>\n\t);\n};\n\nexport default HexInput;\n","import { ChangeEvent, useEffect, useMemo, useState } from \"react\";\nimport Input from \"../../input\";\nimport ColorPreview from \"./color-preview\";\nimport React from \"react\";\nimport { isHex, isHexColor } from \"../../../utils/colors\";\nimport {\n\thexToHsva,\n\thsvaStringToHsva,\n\thsvaToHex,\n\thsvaToHexa,\n} from \"@uiw/react-color/esm\";\n\ninterface Props {\n\tcolor: string;\n\tonChange: (value: string) => void;\n}\n\nconst AlphaInput = ({ color, onChange }: Props) => {\n\tconst hsva = hexToHsva(isHexColor(color) ? color : \"#ff0000\");\n\n\tconst [alpha, setAlpha] = useState(hsva.a);\n\tconst [value, setValue] = useState(`${hsva.a * 100}`);\n\n\tconst updateAlpha = (a: number) => {\n\t\tconsole.log(a);\n\n\t\tif (a < 0) {\n\t\t\ta = 0;\n\t\t} else if (a > 1) {\n\t\t\ta = 1;\n\t\t}\n\n\t\tlet newAlpha = Math.round(a * 100);\n\t\tsetValue(`${newAlpha}`);\n\t};\n\n\tconst handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n\t\tconst newValue = e.target.value;\n\t\tsetValue(newValue);\n\t};\n\n\tuseEffect(() => {\n\t\tsetAlpha(hsva.a);\n\t}, [hsva]);\n\n\tuseEffect(() => {\n\t\tupdateAlpha(alpha);\n\t}, [alpha]);\n\n\tconst handleKeyUp = (e: React.KeyboardEvent<HTMLInputElement>) => {\n\t\tconst isEnter = e.key == \"Enter\";\n\t\tconst isUp = e.key == \"ArrowUp\";\n\t\tconst isDown = e.key == \"ArrowDown\";\n\n\t\tif (isEnter) {\n\t\t\tonSubmit();\n\t\t}\n\n\t\tif (isUp) {\n\t\t\tincrement();\n\t\t}\n\n\t\tif (isDown) {\n\t\t\tdecrement();\n\t\t}\n\t};\n\n\tconst increment = () => {\n\t\tsetAlpha((a) => {\n\t\t\tlet newAlpha = a + 0.01;\n\n\t\t\tif (newAlpha > 1) {\n\t\t\t\tnewAlpha = 1;\n\t\t\t}\n\n\t\t\treturn newAlpha;\n\t\t});\n\t};\n\n\tconst decrement = () => {\n\t\tsetAlpha((a) => {\n\t\t\tlet newAlpha = a - 0.01;\n\n\t\t\tif (newAlpha < 0) {\n\t\t\t\tnewAlpha = 0;\n\t\t\t}\n\n\t\t\treturn newAlpha;\n\t\t});\n\t};\n\n\tconst onSubmit = () => {\n\t\tlet newValue = parseInt(value);\n\n\t\tif (isNaN(newValue) || newValue > 100) {\n\t\t\tnewValue = 100;\n\t\t} else if (newValue < 0) {\n\t\t\tnewValue = 0;\n\t\t}\n\n\t\tupdateAlpha(newValue / 100);\n\n\t\tlet newColor = hsvaToHexa({\n\t\t\t...hexToHsva(color),\n\t\t\ta: newValue / 100,\n\t\t});\n\n\t\tif (newValue == 100) {\n\t\t\tnewColor = hsvaToHex({\n\t\t\t\t...hexToHsva(color),\n\t\t\t\ta: newValue / 100,\n\t\t\t});\n\t\t}\n\n\t\tonChange(newColor);\n\t};\n\n\treturn (\n\t\t<Input\n\t\t\tsize=\"large\"\n\t\t\tclassName=\"kl-flex-1 kl-w-full\"\n\t\t\tprefixIcon={<ColorPreview color={color} showAlpha />}\n\t\t\tvalue={value}\n\t\t\thtmlSize={3}\n\t\t\tmaxLength={3}\n\t\t\tonChange={handleInputChange}\n\t\t\tonKeyUp={handleKeyUp}\n\t\t\tonBlur={onSubmit}\n\t\t\tsuffixText=\"%\"\n\t\t/>\n\t);\n};\n\nexport default AlphaInput;\n","import {\n\tPointerProps,\n\thexToHsva,\n\tHsvaColor,\n\thsvaToHex,\n\thsvaToHexa,\n\tSaturation,\n\tHue,\n\tAlpha,\n} from \"@uiw/react-color/esm\";\nimport React, { useState } from \"react\";\nimport HexInput from \"./hex-input\";\nimport AlphaInput from \"./alpha-input\";\nimport { isHexColor } from \"../../../utils/colors\";\n\ninterface Props {\n\tcolor: string;\n\tonChange: (newColor: string) => void;\n}\n\nconst ColorPickerPalettePointer = ({ left, top }: PointerProps) => {\n\tconst progressLeft = parseInt(left ?? \"100%\") / 100;\n\tconst progressTop = parseInt(top ?? \"0%\") / 100;\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tleft: left,\n\t\t\t\ttop: top,\n\t\t\t\ttransform: `translate(-${progressLeft * 100}%, -${progressTop * 100}%)`,\n\t\t\t}}\n\t\t\tclassName=\"kl-w-5 kl-h-5 kl-rounded-full kl-border-2 kl-border-white kl-shadow-modal kl-absolute kl-aspect-square\"\n\t\t></div>\n\t);\n};\n\nconst ColorPickerPalette = ({ color, onChange }: Props) => {\n\tconst hsvaColor: HsvaColor = hexToHsva(isHexColor(color) ? color : \"#ff0000\");\n\tconst [hue, setHue] = useState(hsvaColor.h);\n\tconst [alpha, setAlpha] = useState(hsvaColor.a);\n\n\tconst handleChange = (value: Partial<HsvaColor>) => {\n\t\tif (alpha == 1) {\n\t\t\tonChange(\n\t\t\t\thsvaToHex({\n\t\t\t\t\t...hsvaColor,\n\t\t\t\t\th: hue,\n\t\t\t\t\ta: alpha,\n\t\t\t\t\t...value,\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tonChange(\n\t\t\thsvaToHexa({\n\t\t\t\t...hsvaColor,\n\t\t\t\th: hue,\n\t\t\t\ta: alpha,\n\t\t\t\t...value,\n\t\t\t})\n\t\t);\n\t};\n\n\treturn (\n\t\t<div className=\"kl-flex kl-flex-col kl-gap-5 kl-w-full kl-min-w-full\">\n\t\t\t<Saturation\n\t\t\t\tclassName=\"kl-w-full kl-overflow-hidden kl-rounded-control kl-aspect-square\"\n\t\t\t\thsva={hsvaColor}\n\t\t\t\tonChange={handleChange}\n\t\t\t\tpointer={ColorPickerPalettePointer}\n\t\t\t/>\n\t\t\t<Hue\n\t\t\t\tclassName=\"kl-h-5 kl-rounded-full kl-overflow-hidden\"\n\t\t\t\thue={hue}\n\t\t\t\tpointer={ColorPickerPalettePointer}\n\t\t\t\tonChange={(value) => {\n\t\t\t\t\tsetHue(value.h);\n\t\t\t\t\thandleChange(value);\n\t\t\t\t}}\n\t\t\t/>\n\n\t\t\t<Alpha\n\t\t\t\tclassName=\"kl-h-5 kl-rounded-full kl-overflow-hidden\"\n\t\t\t\thsva={hsvaColor}\n\t\t\t\tpointer={ColorPickerPalettePointer}\n\t\t\t\tonChange={(value) => {\n\t\t\t\t\tsetAlpha(value.a);\n\t\t\t\t\thandleChange(value);\n\t\t\t\t}}\n\t\t\t/>\n\n\t\t\t<div className=\"kl-grid kl-grid-cols-1 tablet:kl-grid-cols-2 kl-gap-2\">\n\t\t\t\t<HexInput color={color} onChange={onChange} />\n\t\t\t\t<AlphaInput color={color} onChange={onChange} />\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default ColorPickerPalette;\n","import { useState } from \"react\";\nimport ColorPickerPalette from \"./palette\";\nimport React from \"react\";\nimport Button from \"../../button\";\n\ninterface Props {\n\tvalue?: string;\n\tonSubmit: (value: string) => void;\n\tokayButtonText?: string;\n}\n\nconst ColorPickerForm = ({ value, onSubmit, okayButtonText }: Props) => {\n\tconst [color, setColor] = useState(value ?? \"#ff0000\");\n\tconst handleSubmit = () => {\n\t\tonSubmit(color);\n\t};\n\n\treturn (\n\t\t<div className=\"kl-flex kl-w-full kl-flex-col kl-gap-4\">\n\t\t\t<ColorPickerPalette color={color} onChange={setColor} />\n\t\t\t<Button type=\"primary\" onClick={handleSubmit}>\n\t\t\t\t{okayButtonText}\n\t\t\t</Button>\n\t\t</div>\n\t);\n};\n\nexport default ColorPickerForm;\n","import { useState } from \"react\";\nimport { ModalProps } from \"../components/modal\";\n\nexport interface ModalState extends Pick<ModalProps, \"show\" | \"onClose\"> {\n\topen: () => void;\n}\n\nexport const useModalState = (initalValue: boolean = false): ModalState => {\n\tconst [show, setShow] = useState(initalValue);\n\n\tconst open = () => setShow(true);\n\tconst onClose = () => {\n\t\tsetShow(false);\n\t};\n\n\treturn {\n\t\tshow,\n\t\topen,\n\t\tonClose,\n\t};\n};\n","import React, { ReactElement, useMemo } from \"react\";\nimport ColorPickerForm from \"./components/palette-form\";\nimport Modal, { ModalProps } from \"../modal\";\nimport { useModalState } from \"../../hooks/modal\";\n\ntype Children = string | string[] | ReactElement | ReactElement[];\ntype ColorPickerChildren = (props: ColorPickerChildrenProps) => Children;\n\ninterface ColorPickerModalProps extends Pick<ModalProps, \"title\"> {\n\tokayButtonText: string;\n}\n\nexport interface ColorPickerProps {\n\tvalue?: string;\n\tonChange: (value?: string) => void;\n\tchildren: Children | ColorPickerChildren;\n\tmodal?: ColorPickerModalProps;\n}\n\ninterface ColorPickerChildrenProps {\n\tcolor?: string;\n\tonChange: (value?: string) => void;\n\tpickColor: () => void;\n\tclearColor: () => void;\n\thasColor: boolean;\n}\n\nconst ColorPicker = (props: ColorPickerProps) => {\n\tconst { value, onChange, children, modal } = props;\n\tconst hasColor = useMemo(() => !!value, [value]);\n\n\tconst modalState = useModalState();\n\n\tconst pickColor = () => {\n\t\tmodalState.open();\n\t};\n\n\tconst clearColor = () => {\n\t\tonChange();\n\t};\n\n\tconst childrenProps = useMemo<ColorPickerChildrenProps>(() => {\n\t\treturn {\n\t\t\tcolor: value && value.length > 0 ? value : undefined,\n\t\t\tonChange,\n\t\t\tpickColor,\n\t\t\tclearColor,\n\t\t\thasColor,\n\t\t};\n\t}, [value, hasColor]);\n\n\tconst el = () => {\n\t\tif (typeof children === \"function\") {\n\t\t\treturn children(childrenProps);\n\t\t}\n\n\t\treturn children;\n\t};\n\n\tconst handleSuibmit = (value?: string) => {\n\t\tonChange(value);\n\t\tmodalState.onClose();\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<Modal {...modalState} title={modal?.title}>\n\t\t\t\t<ColorPickerForm\n\t\t\t\t\tvalue={childrenProps.color}\n\t\t\t\t\tokayButtonText={modal?.okayButtonText}\n\t\t\t\t\tonSubmit={handleSuibmit}\n\t\t\t\t/>\n\t\t\t</Modal>\n\n\t\t\t{el()}\n\t\t</>\n\t);\n};\n\nexport default ColorPicker;\n","import React, { ChangeEvent, forwardRef, useEffect, useState } from \"react\";\nimport Input, { InputProps } from \"../input\";\nimport { isHexColor } from \"../../utils/colors\";\nimport { ControlSize } from \"../../common/controls.type\";\nimport Icon from \"../icon\";\nimport ColorPicker, { ColorPickerProps } from \"../color-picker\";\nimport IconButton from \"../icon-button\";\nimport CloseIcon from \"../../icons/close-icon\";\nimport Button, { ButtonProps } from \"../button\";\n\ninterface InputColorPickerPreviewProps {\n\tcolor?: string;\n\tonClick?: () => void;\n}\n\nconst InputColorPickerPreview = ({\n\tcolor,\n\tonClick,\n}: InputColorPickerPreviewProps) => {\n\treturn (\n\t\t<div\n\t\t\tonClick={onClick}\n\t\t\tclassName=\"kl-aspect-square kl-w-full kl-h-full kl-rounded-md kl-border kl-border-stroke kl-cursor-pointer\"\n\t\t\tstyle={{ backgroundColor: color }}\n\t\t></div>\n\t);\n};\n\ninterface Props extends Omit<InputProps, \"onChange\"> {\n\tonChange: (value?: string) => void;\n\tpickButton?: ButtonProps;\n\tmodal?: ColorPickerProps[\"modal\"];\n}\n\nconst InputColorPicker = (props: Props) => {\n\tconst { value, onChange, pickButton, modal } = props;\n\n\tconst [inputValue, setInputValue] = useState(value);\n\n\tuseEffect(() => {\n\t\tsetInputValue(value);\n\t}, [value]);\n\n\tconst handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n\t\tconst newValue = e.target.value;\n\t\tsetInputValue(newValue);\n\t};\n\n\tconst handleKeyUp = (e: React.KeyboardEvent<HTMLInputElement>) => {\n\t\tconst isEnter = e.key == \"Enter\";\n\n\t\tif (isEnter) {\n\t\t\tonSubmit();\n\t\t}\n\t};\n\n\tconst onSubmit = () => {\n\t\tif (!inputValue || !value) {\n\t\t\thandleOnChange();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isHexColor(inputValue)) {\n\t\t\thandleOnChange(inputValue);\n\t\t} else {\n\t\t\thandleOnChange(value);\n\t\t}\n\t};\n\n\tconst handleOnChange = (value?: string) => {\n\t\tif (!value) {\n\t\t\tonChange(\"\");\n\t\t\tsetInputValue(\"\");\n\t\t\treturn;\n\t\t}\n\n\t\tonChange(value);\n\t\tsetInputValue(value);\n\t};\n\n\tconst handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n\t\tif (props.onBlur) {\n\t\t\tprops.onBlur(e);\n\t\t}\n\t\tonSubmit();\n\t};\n\n\treturn (\n\t\t<ColorPicker value={value} onChange={handleOnChange} modal={modal}>\n\t\t\t{({ pickColor, clearColor, color, hasColor }) =>\n\t\t\t\thasColor ? (\n\t\t\t\t\t<Input\n\t\t\t\t\t\t{...props}\n\t\t\t\t\t\tref={undefined}\n\t\t\t\t\t\tprefixIcon={\n\t\t\t\t\t\t\t<InputColorPickerPreview color={color} onClick={pickColor} />\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={inputValue}\n\t\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t\t\tonKeyUp={handleKeyUp}\n\t\t\t\t\t\tonBlur={handleBlur}\n\t\t\t\t\t\thtmlSize={10}\n\t\t\t\t\t\tmaxLength={9}\n\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\thasColor ? (\n\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\ttype=\"light-borderless\"\n\t\t\t\t\t\t\t\t\tonClick={clearColor}\n\t\t\t\t\t\t\t\t\tsize={props.size}\n\t\t\t\t\t\t\t\t\ticon={<CloseIcon />}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t{...pickButton}\n\t\t\t\t\t\tsize={props.size}\n\t\t\t\t\t\tonClick={pickColor}\n\t\t\t\t\t\terror={props.error}\n\t\t\t\t\t\twarning={props.warning}\n\t\t\t\t\t\tsuccess={props.success}\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\t}\n\t\t</ColorPicker>\n\t);\n};\n\nexport default InputColorPicker;\n","import React from 'react';\nimport classnames from 'classnames';\nimport { ControlStatusProps } from '../../common/controls.type';\nimport Icon, { IconProp } from '../icon';\n\ninterface Props extends ControlStatusProps {\n    \n    title?: string | React.ReactNode |  React.ReactElement;\n    children?: string | React.ReactNode | React.ReactElement;\n\n    icon?: IconProp;\n    suffix?: string | JSX.Element | React.ReactNode | React.ReactElement;\n\n}\n\nconst Alert = ({ title, children, icon, suffix, success, warning, error }: Props) => {\n\n    const isDefault = !success && !warning && !error;\n\n    return (\n\n        <div className={\n            classnames('kl-flex kl-flex-row kl-items-center kl-justify-start kl-p-4 kl-gap-3 kl-rounded-control', {\n                'kl-bg-background kl-border kl-border-stroke': isDefault,\n                'kl-text-success kl-bg-success-plain': success,\n                'kl-text-error kl-bg-error-plain': error,\n                'kl-text-warning kl-bg-warning-plain': warning\n            })\n        }>\n            \n            { icon &&\n                <div className={classnames('kl-flex kl-items-center kl-justify-center', {\n                    'kl-text-front-hint kl-fill-front-hint': isDefault,\n                    'kl-text-success kl-fill-success': success,\n                    'kl-text-error kl-fill-error': error,\n                    'kl-text-warning kl-fill-warning': warning\n                })}>\n                    <Icon icon={icon} size='large' />\n                </div>\n            }\n\n            <div className='kl-flex kl-flex-col kl-flex-1'>\n                { title && \n                    <div className='kl-font-medium'>\n                        { title }\n                    </div>\n                }\n                { children && \n                    <div className='kl-flex kl-flex-col'>\n                        { children }\n                    </div>\n                }\n            </div>\n\n            { suffix &&\n                <div>\n                    {suffix}\n                </div>\n            }\n\n        </div>\n\n    );\n\n}\n\nexport default Alert;","import classNames from \"classnames\";\nimport React from \"react\";\n\ninterface Props {\n\tchildren?:\n\t\t| string\n\t\t| React.ReactElement\n\t\t| React.ReactElement[]\n\t\t| React.ReactNode;\n\tchildrenAlign?: \"start\" | \"center\" | \"end\";\n\tchildrenGap?: number;\n\tcolor?: string;\n\tindent?: number;\n\tendIndent?: number;\n\tthickness?: number;\n\torientation?: \"vertical\" | \"horizontal\";\n}\n\nconst Divider = ({\n\tchildren,\n\tchildrenAlign = \"center\",\n\tcolor,\n\tindent,\n\tendIndent,\n\tthickness,\n\tchildrenGap,\n\torientation = \"horizontal\",\n}: Props) => {\n\tconst line = (\n\t\t<div\n\t\t\tclassName={classNames(\"kl-flex-1 kl-rounded-full\", {\n\t\t\t\t\"kl-border-stroke\": !color,\n\t\t\t\t\"kl-border-t kl-max-h-0\": orientation == \"horizontal\",\n\t\t\t\t\"kl-border-l kl-max-w-0\": orientation == \"vertical\",\n\t\t\t})}\n\t\t\tstyle={{\n\t\t\t\tborderTopWidth:\n\t\t\t\t\t!!thickness && orientation == \"horizontal\"\n\t\t\t\t\t\t? `${thickness}px !important`\n\t\t\t\t\t\t: undefined,\n\t\t\t\tborderLeftWidth:\n\t\t\t\t\t!!thickness && orientation == \"vertical\"\n\t\t\t\t\t\t? `${thickness}px !important`\n\t\t\t\t\t\t: undefined,\n\t\t\t\tborderColor: !!color ? color : undefined,\n\t\t\t}}\n\t\t></div>\n\t);\n\n\tlet row;\n\n\tif (children) {\n\t\trow = (\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"kl-flex kl-flex-1\", {\n\t\t\t\t\t\"kl-gap-2\": !childrenGap,\n\n\t\t\t\t\t\"kl-flex-row kl-items-center kl-w-full kl-min-w-full\":\n\t\t\t\t\t\torientation == \"horizontal\",\n\t\t\t\t\t\"kl-flex-col kl-items-center kl-h-full kl-min-h-full\":\n\t\t\t\t\t\torientation == \"vertical\",\n\n\t\t\t\t\t\"kl-text-start\": childrenAlign == \"start\",\n\t\t\t\t\t\"kl-text-center\": childrenAlign == \"center\",\n\t\t\t\t\t\"kl-text-end\": childrenAlign == \"end\",\n\t\t\t\t})}\n\t\t\t\tstyle={{\n\t\t\t\t\tgap: !!childrenGap ? `${childrenGap}px` : undefined,\n\t\t\t\t\tcolor: !!color ? color : undefined,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{childrenAlign == \"start\" && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t\t{line}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t\t{childrenAlign == \"center\" && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{line}\n\t\t\t\t\t\t{children}\n\t\t\t\t\t\t{line}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t\t{childrenAlign == \"end\" && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{line}\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t} else {\n\t\trow = line;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"kl-flex kl-text-front-hint\", {\n\t\t\t\t\"kl-flex-row kl-items-center kl-w-full kl-min-w-full\":\n\t\t\t\t\torientation == \"horizontal\",\n\t\t\t\t\"kl-flex-col kl-items-center kl-h-full kl-min-h-full\":\n\t\t\t\t\torientation == \"vertical\",\n\t\t\t})}\n\t\t\tstyle={{\n\t\t\t\tpaddingTop:\n\t\t\t\t\t!!indent && orientation == \"vertical\" ? `${indent}px` : undefined,\n\t\t\t\tpaddingLeft:\n\t\t\t\t\t!!indent && orientation == \"horizontal\" ? `${indent}px` : undefined,\n\t\t\t\tpaddingBottom:\n\t\t\t\t\t!!indent && orientation == \"vertical\" ? `${endIndent}px` : undefined,\n\t\t\t\tpaddingRight:\n\t\t\t\t\t!!indent && orientation == \"horizontal\"\n\t\t\t\t\t\t? `${endIndent}px`\n\t\t\t\t\t\t: undefined,\n\t\t\t}}\n\t\t>\n\t\t\t{row}\n\t\t</div>\n\t);\n};\n\nexport default Divider;\n","import React, { ReactElement } from \"react\";\nimport Icon, { IconProp } from \"../icon\";\n\ninterface Props {\n\n    icon?: IconProp;\n    children?: string | ReactElement | ReactElement[];\n    action?: ReactElement | ReactElement[];\n\n}\n\n\nconst EmptyPlaceholder = ({ icon, children, action }: Props) => {\n\n    return (\n        <div className=\"kl-flex kl-flex-col kl-gap-5 kl-items-center kl-justify-center kl-px-4\">\n\n            { icon && <span className=\"kl-text-front-hint\"><Icon icon={icon} size=\"huge\"  /></span> }\n\n            <div className=\"kl-text-front-secondary kl-text-center kl-max-w-md\">\n                { children }\n            </div>\n\n            { action && <div className=\"kl-flex kl-flex-col kl-gap-2\">\n                {action}\n            </div>}\n\n        </div>\n    );\n\n}\n\nexport default EmptyPlaceholder;","import React from 'react';\nimport classnames from \"classnames\";\n\nexport interface HelperProps {\n\n    children: React.ReactElement;\n    text?: string | React.ReactElement;\n    error?: string | React.ReactElement;\n    suffix?: string | React.ReactElement;\n\n}\n\nconst Helper = ({ children, text, error, suffix }: HelperProps) => {\n\n    const content = error ?? text;\n    const hasContent = !!content;\n    const hasSuffix = !!suffix;\n    const hasError = !!error;\n\n    const showHelper = hasContent || hasSuffix;\n\n    return <div className='kl-flex kl-flex-col kl-gap-1'>\n        \n        {children}\n\n        { showHelper &&\n\n            <div className={classnames('kl-flex kl-flex-row kl-text-xs kl-items-center kl-justify-between kl-gap-1', {\n                'kl-text-front-hint kl-fill-front-hint': !hasError,\n                'kl-text-error kl-fill-error': hasError,\n            })}>\n\n                { hasContent &&\n                    <div className='kl-flex kl-flex-row kl-items-center kl-gap-1'>\n                        {content}\n                    </div>\n                }\n\n                { hasSuffix &&\n                    <div className='kl-flex kl-flex-row kl-items-center'>\n                        {suffix}\n                    </div>\n                }\n\n            </div>\n\n        }\n    </div>\n\n}\n\nexport default Helper;","import React from \"react\"\nimport { OverlayProvider } from \"../overlay/context\";\nimport { PopupProvider } from \"../popup/context\";\nimport { Theme, ThemeStyle } from \"../../theme/theme\";\nimport { LightTheme } from \"../../theme/themes\";\n\ninterface Props {\n\n    children: React.ReactNode | React.ReactElement | JSX.Element;\n    theme?: Theme;\n\n}\n\nconst KloktunUI: React.FC<Props> = ({ children, theme = LightTheme }) => {\n\n    return <>\n        \n        <OverlayProvider>\n            <PopupProvider>\n                {children}\n            </PopupProvider>\n        </OverlayProvider>\n\n        <ThemeStyle value={theme} />\n\n    </>\n\n}\n\nexport default KloktunUI;","import React from 'react';\n\nexport interface LabelProps extends Omit<React.HTMLProps<HTMLLabelElement>, \"label\"> {\n\n    label: string | React.ReactElement;\n    children: React.ReactElement;\n\n}\n\nconst Label = ({ children, label, ...restProps }: LabelProps) => {\n\n    return (\n        <div className='kl-flex kl-flex-col kl-gap-2'>\n        \n            <label {...restProps} className='kl-flex kl-flex-row kl-items-center kl-font-medium'>\n                {label}\n            </label>\n\n            {children}\n\n        </div>\n    );\n        \n\n}\n\nexport default Label;","import classNames from \"classnames\";\nimport React from \"react\";\n\ninterface Props {\n\n    width?: string;\n    height?: string;\n    borderRadius?: string;\n    className?: string;\n\n}\n\nconst Shimmer = ({ width, height, borderRadius, className }: Props) => {\n\n    return (\n\n        <div\n            className={\n                classNames(\"kl-animate-pulse kl-bg-stroke kl-bg-opacity-70\", {\n                    'kl-w-full': !width,\n                    'kl-h-full': !height,\n                    'kl-rounded-control': !borderRadius\n                }, className)\n\n            }\n\n            style={\n                {\n                    width,\n                    height,\n                    borderRadius\n                }\n            }\n        >\n\n        </div>\n\n    );\n\n}\n\nexport default Shimmer;","import React from \"react\";\nimport { ControlsProps } from \"../../common/controls.type\";\nimport classNames from \"classnames\";\n\ninterface Props extends Pick<ControlsProps, \"disabled\"> {\n\tvalue: boolean;\n\tonChange: (status: boolean) => void;\n}\n\nconst Switch = ({ value, onChange, disabled }: Props) => {\n\tconst handleClick = () => {\n\t\tif (disabled) return;\n\n\t\tonChange(!value);\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tonClick={handleClick}\n\t\t\tclassName={classNames(\n\t\t\t\t\" kl-w-10 kl-h-10 kl-aspect-square kl-flex kl-flex-col kl-items-center kl-justify-center kl-flex-shrink kl-cursor-pointer\",\n\t\t\t\t{\n\t\t\t\t\t\"kl-opacity-50 kl-cursor-not-allowed\": disabled,\n\t\t\t\t}\n\t\t\t)}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\n\t\t\t\t\t\"kl-relative kl-w-10 kl-h-6 kl-rounded-full kl-transition-all kl-duration-300\",\n\t\t\t\t\t{\n\t\t\t\t\t\t\"kl-bg-primary\": value,\n\t\t\t\t\t\t\"kl-bg-stroke\": !value,\n\t\t\t\t\t}\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName={classNames(\n\t\t\t\t\t\t\"kl-absolute kl-aspect-square kl-w-5 kl-h-5 kl-mt-0.5 kl-rounded-full kl-transition-all kl-duration-300\",\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"kl-ml-[18px] kl-bg-primary-front\": value,\n\t\t\t\t\t\t\t\"kl-ml-0.5 kl-bg-background\": !value,\n\t\t\t\t\t\t}\n\t\t\t\t\t)}\n\t\t\t\t></div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default Switch;\n","const config = {\n\n    theme: {\n\n        extend: {\n            \n            screens: {\n\n                mobile: '480px',\n                tablet: '768px',\n                desktop: '1280px',\n\n            },\n\n            boxShadow: {\n                modal: '0px 0px 15px rgba(0, 0, 0, 0.1)',\n            },\n\n            borderRadius: {\n                control: \"var(--kloktun-control-rounded, 0.75rem)\",\n                modal: \"var(--kloktun-modal-rounded, 1.5rem)\"\n            },\n\n            colors: {\n                stroke: {\n                    DEFAULT: \"rgba(var(--kloktun-stroke, 229, 231, 235), <alpha-value>)\"\n                },\n            \n                front: {\n                    DEFAULT: \"rgba(var(--kloktun-front, 64, 64, 64), <alpha-value>)\",\n                    hint: \"rgba(var(--kloktun-front-hint, 170, 170, 170), <alpha-value>)\",\n                    secondary: \"rgba(var(--kloktun-front-secondary, 128, 128, 128), <alpha-value>)\",\n                },\n            \n                background: {\n                    DEFAULT: \"rgba(var(--kloktun-background, 255, 255, 255), <alpha-value>)\",\n                    body: \"rgba(var(--kloktun-background-body, 255, 255, 255), <alpha-value>)\",\n                    backdrop: \"rgba(var(--kloktun-background-backdrop, 255, 255, 255), <alpha-value>)\",\n                    hover: \"rgba(var(--kloktun-background-hover, 250, 250, 250), <alpha-value>)\",\n                    active: \"rgba(var(--kloktun-background-active, 249, 249, 249), <alpha-value>)\",\n                },\n            \n                primary: {\n                    DEFAULT: \"rgba(var(--kloktun-primary, 145,96,248), <alpha-value>)\",\n                    front: \"rgba(var(--kloktun-primary-front, 255,255,255), <alpha-value>)\",\n                    hover: \"rgba(var(--kloktun-primary-hover, 244, 239, 254), <alpha-value>)\",\n                    active: \"rgba(var(--kloktun-primary-active, 233, 223, 253), <alpha-value>)\",\n                    light: {\n                        DEFAULT: \"rgba(var(--kloktun-primary-light, 195, 167, 255), <alpha-value>)\"\n                    },\n                    accent: {\n                        hover: \"rgba(var(--kloktun-primary-accent-hover, 167, 128, 249), <alpha-value>)\",\n                        active: \"rgba(var(--kloktun-primary-accent-active, 139, 85, 253), <alpha-value>)\"\n                    },\n                    plain: {\n                        DEFAULT: \"rgba(var(--kloktun-primary-plain, 244, 239, 254), <alpha-value>)\",\n                        hover: \"rgba(var(--kloktun-primary-plain-hover, 235, 225, 255), <alpha-value>)\",\n                        active: \"rgba(var(--kloktun-primary-plain-active, 242, 235, 255), <alpha-value>)\"\n                    }\n                },\n            \n                error: {\n                    DEFAULT: \"rgba(var(--kloktun-error, 241, 105, 105), <alpha-value>)\",\n                    front: \"rgba(var(--kloktun-error-front, 255, 255, 255), <alpha-value>)\",\n                    hover: \"rgba(var(--kloktun-error-hover, 255, 245, 245), <alpha-value>)\",\n                    active: \"rgba(var(--kloktun-error-active, 255, 238, 238), <alpha-value>)\",\n                    light: {\n                        DEFAULT: \"rgba(var(--kloktun-error-light, 255, 236, 239), <alpha-value>)\"\n                    },\n                    accent: {\n                        hover: \"rgba(var(--kloktun-error-accent-hover, 251, 124, 124), <alpha-value>)\",\n                        active: \"rgba(var(--kloktun-error-accent-active, 242, 93, 93), <alpha-value>)\"\n                    },\n                    plain: {\n                        DEFAULT: \"rgba(var(--kloktun-error-plain, 255, 236, 239), <alpha-value>)\",\n                        hover: \"rgba(var(--kloktun-error-plain-hover, 255, 232, 235), <alpha-value>)\",\n                        active: \"rgba(var(--kloktun-error-plain-active, 255, 228, 233), <alpha-value>)\"\n                    }\n                },\n            \n                warning: {\n                    DEFAULT: \"rgba(var(--kloktun-warning, 248, 151, 96), <alpha-value>)\",\n                    front: \"rgba(var(--kloktun-warning-front, 255, 255, 255), <alpha-value>)\",\n                    hover: \"rgba(var(--kloktun-warning-hover, 255, 246, 241), <alpha-value>)\",\n                    active: \"rgba(var(--kloktun-warning-active, 255, 240, 232), <alpha-value>)\",\n                    light: {\n                        DEFAULT: \"rgba(var(--kloktun-warning-light, 251, 198, 169), <alpha-value>)\"\n                    },\n                    accent: {\n                        hover: \"rgba(var(--kloktun-warning-accent-hover, 255, 167, 117), <alpha-value>)\",\n                        active: \"rgba(var(--kloktun-warning-accent-active, 242, 136, 76), <alpha-value>)\"\n                    },\n                    plain: {\n                        DEFAULT: \"rgba(var(--kloktun-warning-plain, 255, 243, 237), <alpha-value>)\",\n                        hover: \"rgba(var(--kloktun-warning-plain-hover, 255, 240, 232), <alpha-value>)\",\n                        active: \"rgba(var(--kloktun-warning-plain-active, 255, 232, 220), <alpha-value>)\"\n                    }\n                },\n                \n                success: {\n                    DEFAULT: \"rgba(var(--kloktun-success, 103, 194, 58), <alpha-value>)\",\n                    front: \"rgba(var(--kloktun-success-front, 255, 255, 255), <alpha-value>)\",\n                    hover: \"rgba(var(--kloktun-success-hover, 247, 255, 245), <alpha-value>)\",\n                    active: \"rgba(var(--kloktun-success-active, 239, 255, 235), <alpha-value>)\",\n                    light: {\n                        DEFAULT: \"rgba(var(--kloktun-success-light, 172, 222, 148), <alpha-value>)\"\n                    },\n                    accent: {\n                        hover: \"rgba(var(--kloktun-success-accent-hover, 133, 206, 97), <alpha-value>)\",\n                        active: \"rgba(var(--kloktun-success-accent-active, 93, 175, 52), <alpha-value>)\"\n                    },\n                    plain: {\n                        DEFAULT: \"rgba(var(--kloktun-success-plain, 240, 249, 235), <alpha-value>)\",\n                        hover: \"rgba(var(--kloktun-success-plain-hover, 242, 255, 238), <alpha-value>)\",\n                        active: \"rgba(var(--kloktun-success-plain-active, 228, 255, 221), <alpha-value>)\"\n                    }\n            \n                }\n            },\n\n        \n            variants: {\n                opacity: ({ after }) => after(['disabled']),\n                cursor: ({ after }) => after(['disabled']),\n                extend: {\n                  backgroundColor: ['active', 'group-hover'],\n                  textColor: ['group-hover']\n                },\n            },\n\n            keyframes: {\n\t\t\t\t'scale-in': {\n                    '0%': {\n                        transform: 'scale(0.95)',\n                    },\n                    '100%': {\n                        transform: 'scale(1)',\n                    },\n\t\t\t\t},\n\t\t\t\t'scale-out': {\n                    '0%': {\n                        transform: 'scale(1)',\n                    },\n                    '100%': {\n                        transform: 'scale(0.95)',\n                    },\n\t\t\t\t},\n                'fade-in': {\n                    '0%': {\n                        opacity: '0',\n                    },\n                    '100%': {\n                        opacity: '1',\n                    },\n\t\t\t\t},\n\t\t\t\t'fade-out': {\n                    '0%': {\n                        opacity: '1',\n                    },\n                    '100%': {\n                        opacity: '0',\n                    },\n\t\t\t\t},\n\t\t\t},\n\t\t\t\n\t\t\tanimation: {\n\t\t\t\t'scale-in': 'scale-in 0.2s ease-out',\n\t\t\t\t'scale-out': 'scale-out 0.2s ease-out',\n\t\t\t\t'fade-in': 'fade-in 0.2s ease-out',\n\t\t\t\t'fade-out': 'fade-out 0.2s ease-out',\n\t\t\t}\n    \n        },\n      },\n      \n      plugins: [],\n\n};\n\nmodule.exports = config;","import React from \"react\";\n\nimport Popover, { PopoverProps } from \"../popover\";\nimport HoverPopover, { HoverPopoverProps } from \"../hover-popover\";\n\ninterface Props\n\textends Pick<\n\t\tHoverPopoverProps,\n\t\t\"className\" | \"placement\" | \"openDelay\" | \"closeDelay\"\n\t> {\n\tchildren: React.ReactNode | JSX.Element;\n\tcontent: React.ReactNode | JSX.Element;\n}\n\nconst Tooltip = ({ content, children, ...restProps }: Props) => {\n\treturn (\n\t\t<HoverPopover\n\t\t\tpopoverClassName=\"kl-flex kl-flex-col kl-bg-black kl-bg-opacity-70 kl-backdrop-blur-sm kl-text-white kl-px-2.5 kl-py-1 kl-rounded-control\"\n\t\t\tbutton={children}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t{content}\n\t\t</HoverPopover>\n\t);\n};\n\nexport default Tooltip;\n","import { PopupProps } from \".\";\nimport { ButtonProps } from \"../button\";\nimport { usePopup } from './context';\nimport { PopupCancelButton, PopupOkayButton } from './popup-default-button';\n\ninterface MessagePopupProps extends Omit<PopupProps, \"buttons\">  {\n\n    okayButtonText: string;\n    okayButtonType?: ButtonProps['type'];\n    cancelButtonText?: string;\n    cancelButtonType?: ButtonProps['type'];\n\n}\n\nexport const useMessagePopup = () => {\n\n    const showPopup = usePopup();\n\n    return (popup: MessagePopupProps): Promise<any> => {\n\n        const { success, danger, error, warning, okayButtonText, okayButtonType, cancelButtonText, cancelButtonType } = popup;\n\n        return showPopup({\n\n            ...popup,\n\n            buttons: (close) => [\n\n                PopupOkayButton({\n                    type: okayButtonType ?? \"primary\",\n                    success,\n                    error: error || danger,\n                    warning,\n                    children: okayButtonText,\n                    onClick: () => {\n                        close()\n                    }\n                }),\n\n                PopupCancelButton({\n                    type: cancelButtonType,\n                    children: cancelButtonText,\n                    onClick: () => {\n                        close();\n                    }\n\n                })\n\n                \n\n            ]\n\n        });\n\n    }\n\n\n}"],"names":["OVERLAY_CONTAINER_ID","OverlayContainer","React","createElement","id","createContext","count","show","close","OverlayProvider","children","useState","overlayIds","setOverlayIds","useMemo","length","getBackScrollBar","html","document","getElementsByTagName","body","classList","remove","removeAttribute","useEffect","currentWidth","offsetWidth","add","setAttribute","OverlayContext","Provider","value","includes","filter","item","Icon","_ref","el","icon","_ref$size","size","color","className","classnames","style","fill","Spinner","width","DefaultSpinner","height","viewBox","xmlns","opacity","fillRule","clipRule","d","Button","_ref$type","type","loading","disabled","success","error","warning","suffixIcon","_ref$htmlType","htmlType","restProps","_objectWithoutPropertiesLoose","_excluded","status","props","onVisibleChange","Overlay","overlayContext","useContext","Math","random","toString","visible","Fragment","createPortal","OverlayChildren","getElementById","Backdrop","onClick","ref","useRef","e","target","current","classNames","onClose","onBackdropClick","_useState","isVisible","setIsVisible","ExclamationIcon","CheckIcon","CloseIcon","InfoIcon","_ref$show","_ref$onClose","result","title","_ref$titleAlign","titleAlign","buttons","_ref$buttons","buttonsDirection","_ref$buttonsDirection","danger","info","buttonsArray","Array","isArray","reverse","Window","overlayProps","_extends","map","button","index","key","PopupContext","popup","usePopupContext","usePopup","Promise","resolve","reject","PopupProvider","setItems","Popup","splice","h2d","h","parseInt","mixColors","color1","color2","weight","replaceAll","i","v1","substring","v2","v","floor","val","isHexColor","input","test","getBrightness","generateThemeColorPalette","background","isLight","active","front","primaryHover","primaryActive","hover","light","plain","plainHover","plainActive","DEFAULT_PRIMARY","DEFAULT_ERROR_PRIMARY","DEFAULT_WARNING_PRIMARY","DEFAULT_SUCCESS_PRIMARY","controlRounded","this","modalRounded","stroke","frontHint","frontSecondary","backgroundBody","backgroundBackdrop","backgroundHover","backgroundActive","primary","primaryFront","primaryLight","primaryAccentHover","primaryAccentActive","primaryPlain","primaryPlainHover","primaryPlainActive","errorFront","errorHover","errorActive","errorLight","errorAccentHover","errorAccentActive","errorPlain","errorPlainHover","errorPlainActive","warningFront","warningHover","warningActive","warningLight","warningAccentHover","warningAccentActive","warningPlain","warningPlainHover","warningPlainActive","successFront","successHover","successActive","successLight","successAccentHover","successAccentActive","successPlain","successPlainHover","successPlainActive","backgroundBrightness","_background","_backgroundBody","_stroke","_generateThemeColorPa","_generateThemeColorPa2","_generateThemeColorPa3","Object","assign","_props$backgroundBody","_props$backgroundHove","_props$backgroundActi","_props$stroke","_props$primaryHover","_props$primaryActive","_props$primaryLight","_props$primaryAccentH","_props$primaryPlain","_props$primaryPlainAc","_props$errorFront","_props$errorHover","_props$errorActive","_props$errorAccentHov","_props$errorAccentAct","_props$errorPlainHove","_props$errorPlainActi","_props$warningFront","_props$warningActive","_props$warningLight","_props$warningAccentA","_props$warningPlain","_props$warningPlainAc","_props$successFront","_generateThemeColorPa4","_props$successActive","_props$successLight","_props$successAccentH","_props$successAccentA","_props$successPlainHo","ThemeStyle","keys","_i","_Object$keys","_value","_hexRgb","hex","r","g","b","startsWith","slice","Error","red","green","blue","hexRgb","theme","LightTheme","DarkTheme","IconButton","_ref$loading","_ref$disabled","isText","EyeIcon","useCombinedRefs","refs","targetRef","forEach","InputIcon","focus","InputPrefixSuffix","_ref2","InputPrefixSuffixPlaceholder","InputPrefixSuffixText","InputPrependAppend","InputPasswordToggleButton","_ref4","onChange","EyeSlashIcon","InputClearButton","_ref5","onClear","Input","forwardRef","_ref6","onDebounce","debounceTimeout","_ref6$debounceTimeout","_ref6$size","prepend","prefix","prefixIcon","prefixText","prefixPlaceholder","suffixPlaceholder","suffixText","suffix","append","clearable","togglePassword","htmlSize","inputZeroPaddingRight","inputEl","combinedRef","focusInput","_inputEl$current","setFocus","handleFocus","onFocus","handleBlur","onBlur","currentType","setCurrentType","_useState2","isPasswordVisible","isClearButtonVisible","inputZeroPaddingLeft","debounceTimer","clearTimeout","setTimeout","handleDebounce","dispatchEvent","isTogglePasswordButtonVisible","SliderThumb","showOnHover","customThumb","hasSize","sizeStyle","RadioContext","_ref2$enabled","enabled","CheckboxGroupContext","values","checked","CheckboxIndicator","callback","handleClickOutside","event","currentList","push","contains","addEventListener","removeEventListeners","onClickOutside","placement","popoverClassName","minPopoverSize","buttonRef","popoverRef","minFloatingWidth","setMinFloatingWidth","_useFloating","useFloating","open","middleware","offset","flip","shift","apply","data","rects","reference","whileElementsMounted","autoUpdate","floatingStyles","context","useCallback","useClickOutside","handleButtonRef","setReference","handleRef","setFloating","_useTransitionStyles","useTransitionStyles","duration","initial","transform","isMounted","styles","minWidth","Dropdown","Popover","SelectContext","options","useSelectContext","Select","compareKey","setOpen","optionComponents","Children","child","isValidElement","SelectOption","comp","label","hide","SelectButton","content","_selected$label","placeholder","_ref$open","selected","find","_el$value","_selected$icon","selectValue","_useSelectContext2","_useSelectContext2$si","Tab","underlineStyle","expanded","undefined","Context","currentTabIndex","tabs","expandedTabs","tabUnderlineStyle","useTabsContext","Textarea","_ref$autosize","autosize","minRows","maxRows","textareaElement","updateSize","setupHeightLimits","getComputedStyle","borderVeritalWidth","borderTopWidth","borderBottomWidth","scrollHeight","lineHeight","verticalPadding","paddingTop","paddingBottom","minHeight","maxHeight","HoverPopover","openDelay","closeDelay","setVisible","onOpenChange","state","useHover","delay","handleClose","safePolygon","_useInteractions","useInteractions","getFloatingProps","getReferenceProps","PopupCancelButton","_props$children2","useConfirmPopup","showPopup","confirmButtonText","confirmButtonType","cancelButtonText","cancelButtonType","scrollType","_ref$scrollType","closeConfirmPopup","showConfirmPopup","_temp2","_result","_exit","_temp","then","ColorPreview","showAlpha","_ref$showAlpha","hsvaColor","hexToHsva","colorWithoutAlpha","hsvaToHex","backgroundColor","setValue","onSubmit","maxLength","onKeyUp","AlphaInput","hsva","a","alpha","setAlpha","updateAlpha","console","log","newAlpha","round","newValue","isNaN","newColor","hsvaToHexa","isUp","isDown","left","top","progressLeft","progressTop","hue","setHue","handleChange","Saturation","pointer","ColorPickerPalettePointer","Hue","Alpha","HexInput","ColorPickerForm","okayButtonText","ColorPickerPalette","useModalState","initalValue","setShow","ColorPicker","modal","hasColor","modalState","pickColor","clearColor","childrenProps","Modal","InputColorPickerPreview","_ref$closeAfterClick","closeAfterClick","isDefault","customIndicator","groupContext","groupOnChange","groupDisabled","_ref3","findIndex","newValues","concat","row","childrenAlign","_ref$childrenAlign","indent","endIndent","thickness","childrenGap","orientation","_ref$orientation","line","borderLeftWidth","borderColor","gap","paddingLeft","paddingRight","action","text","hasSuffix","hasError","hasContent","pickButton","inputValue","setInputValue","handleInputChange","handleKeyUp","handleOnChange","_ref$theme","RadioGroup","indicatorAligment","RadioOption","optionIndicatorAligment","optionCustomIndicator","currentValue","_useRadioGroupContext","isSuccess","isError","isWarning","elChildren","RadioIndicator","borderRadius","_ref2$min","min","max","_ref2$max","_ref2$step","step","thumbProps","sliderRef","thumbRef","showThumbOnHover","saveRange","updateValue","x","sliderEl","handleMouseDown","handleTouchStart","removeEventListener","preventDefault","handleMouseMove","handleMouseUp","sliderLeft","getBoundingClientRect","pageX","handleTouchMove","handleTouchEnd","changedTouches","percentage","thumbLeftOffset","setThumbLeftOffet","marginLeft","_ref$initalTabIndex","initalTabIndex","_useState5","setCurrentTabIndex","currentTabChildren","_currentTab$children","currentTab","contextValues","newIndex","_useTabsContext","viewportRef","contentRef","removeListeners","window","onMouseMove","dragging","setDragging","startDraggingX","setStartDraggingX","_useState3","startScrollPosition","setStartScrollPosition","_useState4","mouseX","setMouseX","currentScrollValue","viewportEl","scrollTo","enableSelection","userSelect","onMouseUp","clientX","onMouseDown","_viewportRef$current$","_viewportRef$current","scrollLeft","startDragging","tab","extend","screens","mobile","tablet","desktop","boxShadow","control","colors","DEFAULT","hint","secondary","backdrop","accent","variants","after","cursor","textColor","keyframes","animation","plugins","okayButtonType","_props$children"],"mappings":"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"}