chop-logic-components 3.0.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../src/enums/alert-mode.ts","../src/enums/button-view.ts","../src/enums/icon-name.ts","../src/enums/loader-view.ts","../src/enums/orientation-mode.ts","../src/enums/theme-mode.ts","../src/enums/tooltip-container.ts","../src/hocs/with-tooltip/with-tooltip.tsx","../src/utils/get-class-name.ts","../src/utils/move-focus-on-element-by-id.ts","../src/utils/handle-dropdown-list-key-press.ts","../src/atoms/button/icon-button/IconButton.tsx","../src/atoms/button/inner-button/InnerButton.tsx","../src/atoms/button/primary-button/PrimaryButton.tsx","../src/atoms/button/secondary-button/SecondaryButton.tsx","../src/atoms/button/Button.tsx","../src/atoms/editable-text/EditView.tsx","../src/atoms/editable-text/ReadView.tsx","../src/atoms/editable-text/useEditModeState.ts","../src/atoms/editable-text/useInputFocus.ts","../src/atoms/editable-text/useValueState.ts","../src/atoms/editable-text/EditableText.tsx","../src/atoms/error-message/ErrorMessage.tsx","../src/atoms/header/Header.tsx","../src/assets/icons/svg/ArrowDownIcon.tsx","../src/assets/icons/svg/ArrowUpIcon.tsx","../src/assets/icons/svg/BackIcon.tsx","../src/assets/icons/svg/CancelIcon.tsx","../src/assets/icons/svg/CheckboxCheckedIcon.tsx","../src/assets/icons/svg/CheckboxUncheckedIcon.tsx","../src/assets/icons/svg/CheckMarkIcon.tsx","../src/assets/icons/svg/ChevronDownIcon.tsx","../src/assets/icons/svg/ChevronLeftIcon.tsx","../src/assets/icons/svg/ChevronRightIcon.tsx","../src/assets/icons/svg/ChevronUpIcon.tsx","../src/assets/icons/svg/ClearIcon.tsx","../src/assets/icons/svg/CopyIcon.tsx","../src/assets/icons/svg/CutIcon.tsx","../src/assets/icons/svg/DeleteIcon.tsx","../src/assets/icons/svg/DownloadIcon.tsx","../src/assets/icons/svg/ErrorIcon.tsx","../src/assets/icons/svg/ForwardIcon.tsx","../src/assets/icons/svg/GraduateIcon.tsx","../src/assets/icons/svg/HelpIcon.tsx","../src/assets/icons/svg/HideIcon.tsx","../src/assets/icons/svg/HomeIcon.tsx","../src/assets/icons/svg/InfoIcon.tsx","../src/assets/icons/svg/LoginIcon.tsx","../src/assets/icons/svg/PasteIcon.tsx","../src/assets/icons/svg/QuestionIcon.tsx","../src/assets/icons/svg/RemoveIcon.tsx","../src/assets/icons/svg/SaveIcon.tsx","../src/assets/icons/svg/ShowIcon.tsx","../src/assets/icons/svg/UploadIcon.tsx","../src/assets/icons/svg/WarningIcon.tsx","../src/assets/icons/index.tsx","../src/atoms/icon/Icon.tsx","../src/atoms/input/Input.tsx","../src/atoms/label/Label.tsx","../src/atoms/loader/Loader.tsx","../src/atoms/portal/Portal.tsx","../src/hooks/use-auto-close/use-auto-close.ts","../src/contexts/form/FormContext.tsx","../src/contexts/theme/ThemeContext.ts","../src/contexts/theme/ThemeProvider.tsx","../src/hooks/use-chop-logic-theme/use-chop-logic-theme.ts","../src/hooks/use-click-outside/use-click-outside.ts","../src/hooks/use-container-dimensions/use-container-dimensions.ts","../src/hooks/use-element-ids/use-element-ids.ts","../src/hooks/use-is-mounted/use-is-mounted.ts","../src/hooks/use-is-overflow/use-is-overflow.ts","../src/hooks/use-key-press/use-key-press.ts","../src/hooks/use-modal-focus-trap/use-modal-focus-trap.ts","../src/hooks/use-reset-form-input/use-reset-form-input.ts","../src/hooks/use-window-dimensions/use-window-dimensions.ts","../src/hooks/use-tooltip-position/use-tooltip-position.ts","../src/atoms/tooltip/Tooltip.controller.ts","../src/atoms/tooltip/Tooltip.tsx","../src/molecules/checkbox/Checkbox.helpers.ts","../src/molecules/checkbox/Checkbox.controller.ts","../src/molecules/checkbox/Checkbox.tsx","../src/molecules/multi-select/MultiSelect.Combobox.tsx","../src/molecules/multi-select/MultiSelect.helpers.ts","../src/molecules/multi-select/MultiSelect.controller.ts","../src/molecules/multi-select/Option.tsx","../src/molecules/multi-select/MultiSelect.Dropdown.tsx","../src/molecules/multi-select/MultiSelect.tsx","../src/molecules/numeric-input/NumericInput.helpers.ts","../src/molecules/numeric-input/NumericInput.controller.ts","../src/molecules/numeric-input/NumericInput.tsx","../src/molecules/select/combobox/Combobox.tsx","../src/molecules/select/option/Option.tsx","../src/molecules/select/dropdown/Dropdown.tsx","../src/molecules/select/Select.helpers.ts","../src/molecules/select/Select.controller.ts","../src/molecules/select/Select.tsx","../src/molecules/text-input/TextInput.helpers.ts","../src/molecules/text-input/TextInput.controller.ts","../src/molecules/text-input/TextInput.tsx","../src/organisms/alert/Alert.helpers.tsx","../src/organisms/alert/Alert.tsx","../src/organisms/dialog/Dialog.tsx","../src/organisms/form/Form.helpers.ts","../src/organisms/form/Form.controller.ts","../src/organisms/form/Form.tsx","../src/organisms/grid/Grid.helpers.ts","../src/organisms/grid/data-cell/GridDataCell.tsx","../src/organisms/grid/checkbox/GridCheckbox.tsx","../src/organisms/grid/select-grid-row-cell/SelectGridRowCell.tsx","../src/organisms/grid/grid-row/GridRow.tsx","../src/organisms/grid/body/GridBody.tsx","../src/organisms/grid/column-group/GridColumnGroup.tsx","../src/organisms/grid/Grid.controller.ts","../src/organisms/grid/header-cell/HeaderCell.tsx","../src/organisms/grid/select-all-grid-rows-cell/SelectAllGridRowsCell.tsx","../src/organisms/grid/head/GridHead.tsx","../src/organisms/grid/Grid.tsx","../src/organisms/menu/leaf/MenuLeaf.tsx","../src/organisms/menu/sub-menu/SubMenu.tsx","../src/organisms/menu/list-item/MenuListItem.tsx","../src/organisms/menu/Menu.tsx","../src/organisms/tabs/__elements__/content/TabContent.tsx","../src/organisms/tabs/__elements__/button/TabButton.tsx","../src/organisms/tabs/__elements__/list/TabList.tsx","../src/organisms/tabs/Tabs.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(\n type,\n key,\n self,\n source,\n owner,\n props,\n debugStack,\n debugTask\n ) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n self,\n source,\n getOwner(),\n maybeKey,\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_ELEMENT_TYPE &&\n node._store &&\n (node._store.validated = 1);\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n \"react-stack-bottom-frame\": function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React[\"react-stack-bottom-frame\"].bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","export enum AlertMode {\n Success = 'success',\n Error = 'error',\n Warning = 'warning',\n Info = 'info',\n Help = 'help',\n}\n","export enum ButtonView {\n Primary = 'primary',\n Secondary = 'secondary',\n Icon = 'icon',\n Inner = 'inner',\n}\n","export enum IconName {\n ArrowDown = 'arrow-down',\n ArrowUp = 'arrow-up',\n Back = 'back',\n Cancel = 'cancel',\n CheckboxChecked = 'checkbox-checked',\n CheckboxUnchecked = 'checkbox-unchecked',\n CheckMark = 'check-mark',\n ChevronDown = 'chevron-down',\n ChevronLeft = 'chevron-left',\n ChevronRight = 'chevron-right',\n ChevronUp = 'chevron-up',\n Clear = 'clear',\n Copy = 'copy',\n Cut = 'cut',\n Delete = 'delete',\n Download = 'download',\n Error = 'error',\n Forward = 'forward',\n Graduate = 'graduate',\n Help = 'help',\n Hide = 'hide',\n Home = 'home',\n Info = 'info',\n Login = 'login',\n Paste = 'paste',\n Question = 'question',\n Save = 'save',\n Show = 'show',\n Upload = 'upload',\n Warning = 'warning',\n Remove = 'remove',\n}\n","export enum LoaderView {\n Dots = 'dots',\n Brackets = 'brackets',\n Linear = 'linear',\n Square = 'square',\n Circle = 'circle',\n Pulse = 'pulse',\n Arrow = 'arrow',\n Filler = 'filler',\n Rotation = 'rotation',\n}\n","export enum OrientationMode {\n Vertical = 'vertical',\n Horizontal = 'horizontal',\n}\n","export enum ThemeMode {\n Light = 'cl-components-light-theme',\n Dark = 'cl-components-dark-theme',\n}\n","export enum TooltipContainer {\n Span = 'span',\n Div = 'div',\n P = 'p',\n Strong = 'strong',\n Em = 'em',\n}\n","import { Tooltip } from '@atoms';\nimport { ComponentType, FC } from 'react';\n\ntype WithTooltipProps = {\n tooltip?: string;\n visibleOn?: 'hover' | 'click' | 'focus' | 'contextmenu';\n};\n\nexport function withTooltip<P extends object>(Component: ComponentType<P>): FC<P & WithTooltipProps> {\n return ({ tooltip, visibleOn, ...props }: WithTooltipProps) =>\n tooltip?.length ? (\n <Tooltip tooltipContent={tooltip} visibleOn={visibleOn}>\n <Component {...(props as P)} />\n </Tooltip>\n ) : (\n <Component {...(props as P)} />\n );\n}\n","type ClassNameInput =\n | string\n | {\n [key in string]: boolean;\n }\n | undefined\n | null;\n\nexport function getClassName(input: ClassNameInput[]): string {\n const names = input\n .map((item) => {\n if (typeof item === 'string') {\n return item.trim();\n }\n if (typeof item === 'object') {\n const trueKeys = [];\n for (const key in item) {\n if (item[key]) {\n trueKeys.push(key.trim());\n }\n }\n\n return trueKeys.join(' ');\n }\n })\n .filter((item) => !!item);\n\n return names.join(' ');\n}\n","export function moveFocusOnElementById(id: string) {\n const element = document.getElementById(id);\n\n if (element) element.focus();\n}\n","import { SelectValue } from '@models';\nimport { KeyboardEvent } from 'react';\n\nimport { moveFocusOnElementById } from './move-focus-on-element-by-id';\n\nexport function handleDropdownListKeyPress({\n e,\n options,\n onClose,\n}: {\n e: KeyboardEvent<HTMLUListElement>;\n options: SelectValue[];\n onClose: () => void;\n}) {\n let focusedId: string = '';\n options.forEach((value) => {\n const element = document.getElementById(value.id);\n if (element === document.activeElement) {\n focusedId = value.id;\n }\n });\n\n const currentFocusIndex = options.findIndex((value) => value.id === focusedId);\n\n switch (e.key) {\n case 'Escape':\n e.preventDefault();\n onClose();\n break;\n case 'ArrowUp': {\n e.preventDefault();\n const previousOptionIndex = currentFocusIndex - 1 >= 0 ? currentFocusIndex - 1 : options.length - 1;\n const previousValue = options[previousOptionIndex];\n if (previousValue) moveFocusOnElementById(previousValue.id);\n break;\n }\n case 'ArrowDown':\n case 'Tab': {\n e.preventDefault();\n const nextOptionIndex = currentFocusIndex === options.length - 1 ? 0 : currentFocusIndex + 1;\n const nextValue = options[nextOptionIndex];\n if (nextValue) moveFocusOnElementById(nextValue.id);\n break;\n }\n }\n}\n","import { getClassName } from '@utils';\nimport { ButtonHTMLAttributes, FC, PropsWithChildren } from 'react';\n\nimport styles from './IconButton.module.scss';\n\ntype Props = ButtonHTMLAttributes<HTMLButtonElement> & PropsWithChildren;\n\nexport const IconButton: FC<Props> = ({ children, className, ...rest }) => (\n <button {...rest} className={getClassName([styles.button, className])}>\n {children}\n </button>\n);\n","import { Icon } from '@atoms';\nimport { IconName } from '@enums';\nimport { getClassName } from '@utils';\nimport { ButtonHTMLAttributes, FC, MouseEvent } from 'react';\n\nimport styles from './InnerButton.module.scss';\n\ntype Props = {\n label?: string;\n icon?: IconName;\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n} & ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport const InnerButton: FC<Props> = ({ onClick, label, icon, disabled, className, ...rest }) => {\n return (\n <button\n className={getClassName([styles.button, className])}\n onClick={onClick}\n aria-label={label}\n type='button'\n disabled={disabled}\n {...rest}\n >\n <Icon name={icon} />\n </button>\n );\n};\n","import { getClassName } from '@utils';\nimport { ButtonHTMLAttributes, FC, PropsWithChildren } from 'react';\n\nimport styles from './PrimaryButton.module.scss';\n\ntype Props = ButtonHTMLAttributes<HTMLButtonElement> & PropsWithChildren;\n\nexport const PrimaryButton: FC<Props> = ({ children, className, ...rest }) => (\n <button {...rest} className={getClassName([styles.button, className])}>\n <span className={styles.button_shadow}></span>\n <span className={styles.button_edge}></span>\n <span className={styles.button_front}>{children}</span>\n </button>\n);\n","import { getClassName } from '@utils';\nimport { ButtonHTMLAttributes, FC, PropsWithChildren } from 'react';\n\nimport styles from './SecondaryButton.module.scss';\n\ntype Props = ButtonHTMLAttributes<HTMLButtonElement> & PropsWithChildren;\n\nexport const SecondaryButton: FC<Props> = ({ children, className, ...rest }) => (\n <button {...rest} className={getClassName([styles.button, className])}>\n {children}\n </button>\n);\n","import { Icon } from '@atoms';\nimport { ButtonView } from '@enums';\nimport { withTooltip } from '@hocs';\nimport { ButtonProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC } from 'react';\n\nimport styles from './Button.module.scss';\nimport { IconButton } from './icon-button/IconButton';\nimport { InnerButton } from './inner-button/InnerButton';\nimport { PrimaryButton } from './primary-button/PrimaryButton';\nimport { SecondaryButton } from './secondary-button/SecondaryButton';\n\nconst ButtonSelector: FC<ButtonProps> = ({\n onClick,\n text,\n icon,\n label,\n disabled = false,\n extended = false,\n type = 'button',\n view = ButtonView.Primary,\n className,\n ...rest\n}) => {\n const extendedClass = getClassName([className, { [styles.extended]: extended }]);\n\n switch (view) {\n case ButtonView.Primary:\n return (\n <PrimaryButton aria-label={label} type={type} onClick={onClick} disabled={disabled} className={extendedClass} {...rest}>\n <Icon name={icon} />\n {text}\n </PrimaryButton>\n );\n case ButtonView.Secondary:\n return (\n <SecondaryButton aria-label={label} type={type} onClick={onClick} disabled={disabled} className={extendedClass} {...rest}>\n <Icon name={icon} />\n {text}\n </SecondaryButton>\n );\n case ButtonView.Icon:\n return (\n <IconButton aria-label={label} type={type} onClick={onClick} disabled={disabled} {...rest} className={className}>\n <Icon name={icon} />\n </IconButton>\n );\n case ButtonView.Inner:\n return <InnerButton label={label} icon={icon} onClick={onClick} disabled={disabled} {...rest} className={className}></InnerButton>;\n default:\n return null;\n }\n};\n\nconst Button = withTooltip(ButtonSelector);\n\nexport default Button;\n","import { ChopLogicComponentProps } from '@models';\nimport { FC, RefObject, useCallback } from 'react';\n\ninterface EditViewProps extends ChopLogicComponentProps {\n multiline: boolean;\n value: string;\n placeholder: string;\n onChange: (value: string) => void;\n onBlur: () => void;\n onKeyDown: (event: React.KeyboardEvent) => void;\n className: string;\n inputRef: RefObject<any>;\n}\n\nexport const EditView: FC<EditViewProps> = ({\n multiline,\n value,\n placeholder,\n onChange,\n onBlur,\n onKeyDown,\n className,\n inputRef,\n ...rest\n}) => {\n const InputComponent = multiline ? 'textarea' : 'input';\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLTextAreaElement | HTMLInputElement>) => {\n onChange(event.target.value);\n },\n [onChange],\n );\n\n return (\n <InputComponent\n ref={inputRef}\n value={value}\n onChange={handleChange}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n placeholder={placeholder}\n className={className}\n rows={multiline ? 3 : undefined}\n {...rest}\n />\n );\n};\n","import { ChopLogicComponentProps } from '@models';\nimport { FC } from 'react';\n\ninterface ReadViewProps extends ChopLogicComponentProps {\n value: string;\n placeholder: string;\n onClick: (event: React.MouseEvent) => void;\n className: string;\n}\n\nexport const ReadView: FC<ReadViewProps> = ({ value, placeholder, onClick, className, ...rest }) => {\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onClick(e as any);\n }\n };\n\n return (\n <span onClick={onClick} className={className} role='button' tabIndex={0} onKeyDown={handleKeyDown} aria-label='Editable text' {...rest}>\n {value || placeholder}\n </span>\n );\n};\n","import { useState } from 'react';\n\nexport const useEditModeState = (controlledEditMode?: boolean, readOnly?: boolean) => {\n const [isEditMode, setIsEditMode] = useState(false);\n const [isControlled] = useState(controlledEditMode !== undefined);\n\n const editMode = isControlled ? !!controlledEditMode : isEditMode;\n\n const enterEditMode = () => {\n if (!isControlled && !readOnly) {\n setIsEditMode(true);\n }\n };\n\n const exitEditMode = () => {\n if (!isControlled) {\n setIsEditMode(false);\n }\n };\n\n return {\n editMode,\n enterEditMode,\n exitEditMode,\n isControlled,\n };\n};\n","import { RefObject, useEffect } from 'react';\n\nexport const useInputFocus = (\n ref: RefObject<HTMLTextAreaElement | HTMLInputElement | null>,\n editMode: boolean,\n autoSelectTextOnEditMode?: boolean,\n readOnly?: boolean,\n) => {\n useEffect(() => {\n if (editMode && ref.current && !readOnly) {\n ref.current.focus();\n if (autoSelectTextOnEditMode) {\n ref.current.select();\n }\n }\n }, [editMode, autoSelectTextOnEditMode, readOnly, ref]);\n};\n","import { useEffect, useState } from 'react';\n\nexport const useValueState = (value: string, onChange?: (value: string) => void) => {\n const [internalValue, setInternalValue] = useState(value);\n\n useEffect(() => {\n setInternalValue(value);\n }, [value]);\n\n const updateValue = (newValue: string) => {\n setInternalValue(newValue);\n };\n\n const commitValue = () => {\n if (internalValue !== value) {\n onChange?.(internalValue);\n }\n };\n\n const resetValue = () => {\n setInternalValue(value);\n };\n\n return {\n internalValue,\n updateValue,\n commitValue,\n resetValue,\n };\n};\n","import { EditableTextProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC, useCallback, useRef } from 'react';\n\nimport styles from './EditableText.module.scss';\nimport { EditView } from './EditView';\nimport { ReadView } from './ReadView';\nimport { useEditModeState } from './useEditModeState';\nimport { useInputFocus } from './useInputFocus';\nimport { useValueState } from './useValueState';\n\nconst EditableText: FC<EditableTextProps> = ({\n value,\n isEditMode: controlledEditMode,\n onChange,\n onClick,\n className,\n autoSelectTextOnEditMode = false,\n multiline = false,\n placeholder = 'Click to edit...',\n readOnly = false,\n ...rest\n}) => {\n const inputRef = useRef<HTMLTextAreaElement | HTMLInputElement>(null);\n const { editMode, enterEditMode, exitEditMode } = useEditModeState(controlledEditMode, readOnly);\n const { internalValue, updateValue, commitValue, resetValue } = useValueState(value, onChange);\n\n useInputFocus(inputRef, editMode, autoSelectTextOnEditMode, readOnly);\n\n const handleClick = useCallback(\n (event: React.MouseEvent) => {\n onClick?.(event);\n enterEditMode();\n },\n [onClick, enterEditMode],\n );\n\n const handleBlur = useCallback(() => {\n exitEditMode();\n commitValue();\n }, [exitEditMode, commitValue]);\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' && !multiline) {\n event.preventDefault();\n handleBlur();\n }\n if (event.key === 'Escape') {\n resetValue();\n exitEditMode();\n }\n },\n [multiline, handleBlur, resetValue, exitEditMode],\n );\n\n const containerClass = getClassName([\n styles.editableText,\n className,\n {\n [styles.editableText__editMode]: editMode,\n [styles.editableText__readOnly]: readOnly,\n [styles.editableText__empty]: !internalValue,\n },\n ]);\n\n if (editMode && !readOnly) {\n return (\n <EditView\n multiline={multiline}\n value={internalValue}\n placeholder={placeholder}\n onChange={updateValue}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n className={containerClass}\n inputRef={inputRef}\n {...rest}\n />\n );\n }\n\n return <ReadView value={internalValue} placeholder={placeholder} onClick={handleClick} className={containerClass} {...rest} />;\n};\n\nexport default EditableText;\n","import { getClassName } from '@utils/get-class-name';\nimport { FC } from 'react';\n\nimport styles from './ErrorMessage.module.scss';\n\ntype ErrorMessageProps = {\n errorId: string;\n visible?: boolean;\n message?: string;\n testId?: string;\n className?: string;\n};\n\nconst ErrorMessage: FC<ErrorMessageProps> = ({ errorId, testId, message = 'Error!', visible = false, className }) => {\n const errorClass = getClassName([styles.errorMessage, className, { [styles.errorMessage__visible]: visible }]);\n\n return (\n <span id={errorId} className={errorClass} data-testid={testId} aria-hidden={!visible}>\n {message}\n </span>\n );\n};\n\nexport default ErrorMessage;\n","import { Icon } from '@atoms';\nimport { HeaderProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC } from 'react';\n\nimport styles from './Header.module.scss';\n\nconst Header: FC<HeaderProps> = ({ as = 'h1', icon, children, className, ...rest }) => {\n const HeaderTag = as;\n const headerClass = getClassName([\n className,\n styles.header,\n {\n [styles.header__h1]: as === 'h1',\n [styles.header__h2]: as === 'h2',\n [styles.header__h3]: as === 'h3',\n [styles.header__h4]: as === 'h4',\n [styles.header__h5]: as === 'h5',\n [styles.header__h6]: as === 'h6',\n },\n ]);\n\n return (\n <HeaderTag className={headerClass} {...rest}>\n {icon && <Icon name={icon} />}\n <span className={styles.header_text}>{children}</span>\n </HeaderTag>\n );\n};\n\nexport default Header;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ArrowDownIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg viewBox='0 0 24 24' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M21.886 5.536A1.002 1.002 0 0021 5H3a1.002 1.002 0 00-.822 1.569l9 13a.998.998 0 001.644 0l9-13a.998.998 0 00.064-1.033zM12 17.243L4.908 7h14.184L12 17.243z' />\n </svg>\n );\n}\n\nexport default ArrowDownIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ArrowUpIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg viewBox='0 0 24 24' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M3 19h18a1.002 1.002 0 00.823-1.569l-9-13c-.373-.539-1.271-.539-1.645 0l-9 13A.999.999 0 003 19zm9-12.243L19.092 17H4.908L12 6.757z' />\n </svg>\n );\n}\n\nexport default ArrowUpIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction BackIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg viewBox='0 0 512 512' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path fill='none' stroke='currentColor' strokeLinecap='round' strokeLinejoin='round' strokeWidth={48} d='M328 112L184 256l144 144' />\n </svg>\n );\n}\n\nexport default BackIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction CancelIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg viewBox='0 0 470 1000' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M452 656c12 12 18 26.333 18 43s-6 31-18 43c-12 10.667-26.333 16-43 16s-31-5.333-43-16L234 590 102 742c-12 10.667-26.333 16-43 16s-31-5.333-43-16C5.333 730 0 715.667 0 699s5.333-31 16-43l138-156L16 342C5.333 330 0 315.667 0 299s5.333-31 16-43c12-10.667 26.333-16 43-16s31 5.333 43 16l132 152 132-152c12-10.667 26.333-16 43-16s31 5.333 43 16c12 12 18 26.333 18 43s-6 31-18 43L314 500l138 156' />\n </svg>\n );\n}\n\nexport default CancelIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction CheckboxCheckedIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg viewBox='0 0 16 16' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path\n fill='currentColor'\n d='M14 0H2C.9 0 0 .9 0 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zM7 12.414L3.293 8.707l1.414-1.414L7 9.586l4.793-4.793 1.414 1.414L7 12.414z'\n />\n </svg>\n );\n}\n\nexport default CheckboxCheckedIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction CheckboxUncheckedIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg viewBox='0 0 16 16' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path fill='currentColor' d='M14 0H2C.9 0 0 .9 0 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zm0 14H2V2h12v12z' />\n </svg>\n );\n}\n\nexport default CheckboxUncheckedIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction CheckMarkIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg viewBox='0 0 512 512' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7l233.4-233.3c12.5-12.5 32.8-12.5 45.3 0z' />\n </svg>\n );\n}\n\nexport default CheckMarkIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ChevronDownIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg fill='currentColor' viewBox='0 0 16 16' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path\n fillRule='evenodd'\n d='M1.553 6.776a.5.5 0 01.67-.223L8 9.44l5.776-2.888a.5.5 0 11.448.894l-6 3a.5.5 0 01-.448 0l-6-3a.5.5 0 01-.223-.67z'\n />\n </svg>\n );\n}\n\nexport default ChevronDownIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ChevronLeftIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg fill='currentColor' viewBox='0 0 16 16' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path\n fillRule='evenodd'\n d='M9.224 1.553a.5.5 0 01.223.67L6.56 8l2.888 5.776a.5.5 0 11-.894.448l-3-6a.5.5 0 010-.448l3-6a.5.5 0 01.67-.223z'\n />\n </svg>\n );\n}\n\nexport default ChevronLeftIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ChevronRightIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg fill='currentColor' viewBox='0 0 16 16' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path\n fillRule='evenodd'\n d='M6.776 1.553a.5.5 0 01.671.223l3 6a.5.5 0 010 .448l-3 6a.5.5 0 11-.894-.448L9.44 8 6.553 2.224a.5.5 0 01.223-.671z'\n />\n </svg>\n );\n}\n\nexport default ChevronRightIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ChevronUpIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg fill='currentColor' viewBox='0 0 16 16' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path fillRule='evenodd' d='M7.776 5.553a.5.5 0 01.448 0l6 3a.5.5 0 11-.448.894L8 6.56 2.224 9.447a.5.5 0 11-.448-.894l6-3z' />\n </svg>\n );\n}\n\nexport default ChevronUpIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ClearIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg viewBox='0 0 1024 1024' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <defs>\n <style />\n </defs>\n <path d='M899.1 869.6l-53-305.6H864c14.4 0 26-11.6 26-26V346c0-14.4-11.6-26-26-26H618V138c0-14.4-11.6-26-26-26H432c-14.4 0-26 11.6-26 26v182H160c-14.4 0-26 11.6-26 26v192c0 14.4 11.6 26 26 26h17.9l-53 305.6c-.3 1.5-.4 3-.4 4.4 0 14.4 11.6 26 26 26h723c1.5 0 3-.1 4.4-.4 14.2-2.4 23.7-15.9 21.2-30zM204 390h272V182h72v208h272v104H204V390zm468 440V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H416V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H202.8l45.1-260H776l45.1 260H672z' />\n </svg>\n );\n}\n\nexport default ClearIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction CopyIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n fill='none'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth={2}\n viewBox='0 0 24 24'\n height='1em'\n width='1em'\n {...rest}\n >\n {title && <title>{title}</title>}\n <path d='M11 9 H20 A2 2 0 0 1 22 11 V20 A2 2 0 0 1 20 22 H11 A2 2 0 0 1 9 20 V11 A2 2 0 0 1 11 9 z' />\n <path d='M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1' />\n </svg>\n );\n}\n\nexport default CopyIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction CutIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n fill='none'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth={2}\n viewBox='0 0 24 24'\n height='1em'\n width='1em'\n role='img'\n {...rest}\n >\n {title && <title>{title}</title>}\n <path stroke='none' d='M0 0h24v24H0z' />\n <path d='M10 17 A3 3 0 0 1 7 20 A3 3 0 0 1 4 17 A3 3 0 0 1 10 17 z' />\n <path d='M20 17 A3 3 0 0 1 17 20 A3 3 0 0 1 14 17 A3 3 0 0 1 20 17 z' />\n <path d='M9.15 14.85L18 4M6 4l8.85 10.85' />\n </svg>\n );\n}\n\nexport default CutIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction DeleteIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg viewBox='0 0 1024 1024' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z' />\n </svg>\n );\n}\n\nexport default DeleteIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction DownloadIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg viewBox='0 0 1024 1024' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z' />\n </svg>\n );\n}\n\nexport default DownloadIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ErrorIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg viewBox='0 0 24 24' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M11 7h2v7h-2zm0 8h2v2h-2z' />\n <path d='M21.707 7.293l-5-5A.996.996 0 0016 2H8a.996.996 0 00-.707.293l-5 5A.996.996 0 002 8v8c0 .266.105.52.293.707l5 5A.996.996 0 008 22h8c.266 0 .52-.105.707-.293l5-5A.996.996 0 0022 16V8a.996.996 0 00-.293-.707zM20 15.586L15.586 20H8.414L4 15.586V8.414L8.414 4h7.172L20 8.414v7.172z' />\n </svg>\n );\n}\n\nexport default ErrorIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ForwardIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg viewBox='0 0 512 512' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path fill='none' stroke='currentColor' strokeLinecap='round' strokeLinejoin='round' strokeWidth={48} d='M184 112l144 144-144 144' />\n </svg>\n );\n}\n\nexport default ForwardIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nconst GraduateIcon = ({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) => (\n <svg width='1em' height='1em' fill='currentColor' viewBox='0 0 448 512' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M219.3.5c3.1-.6 6.3-.6 9.4 0l200 40C439.9 42.7 448 52.6 448 64s-8.1 21.3-19.3 23.5L352 102.9V160c0 70.7-57.3 128-128 128S96 230.7 96 160v-57.1l-48-9.6v65.1l15.7 78.4c.9 4.7-.3 9.6-3.3 13.3S52.8 256 48 256H16c-4.8 0-9.3-2.1-12.4-5.9s-4.3-8.6-3.3-13.3L16 158.4V86.6C6.5 83.3 0 74.3 0 64c0-11.4 8.1-21.3 19.3-23.5l200-40zM111.9 327.7c10.5-3.4 21.8.4 29.4 8.5l71 75.5c6.3 6.7 17 6.7 23.3 0l71-75.5c7.6-8.1 18.9-11.9 29.4-8.5 65 20.9 112 81.7 112 153.6 0 17-13.8 30.7-30.7 30.7H30.7C13.8 512 0 498.2 0 481.3c0-71.9 47-132.7 111.9-153.6z' />\n </svg>\n);\n\nexport default GraduateIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction HelpIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg viewBox='0 0 512 512' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM192.13 260.18a64 64 0 1159.69 59.69 64.07 64.07 0 01-59.69-59.69zm240-66.64l-96.37 5.84a4.06 4.06 0 01-3.44-1.59 96 96 0 00-18.07-18.07 4.06 4.06 0 01-1.59-3.44l5.84-96.37a4 4 0 015.42-3.51A193 193 0 01435.6 188.12a4 4 0 01-3.51 5.42zM193.54 79.91l5.84 96.37a4.06 4.06 0 01-1.59 3.44 96 96 0 00-18.07 18.07 4.06 4.06 0 01-3.44 1.59l-96.37-5.84a4 4 0 01-3.51-5.42A193 193 0 01188.12 76.4a4 4 0 015.42 3.51zM79.91 318.46l96.37-5.84a4.06 4.06 0 013.44 1.59 96 96 0 0018.07 18.07 4.06 4.06 0 011.59 3.44l-5.84 96.37a4 4 0 01-5.42 3.51A193 193 0 0176.4 323.88a4 4 0 013.51-5.42zm238.55 113.63l-5.84-96.37a4.06 4.06 0 011.59-3.44 96 96 0 0018.07-18.07 4.06 4.06 0 013.44-1.59l96.37 5.84a4 4 0 013.51 5.42A193 193 0 01323.88 435.6a4 4 0 01-5.42-3.51z' />\n </svg>\n );\n}\n\nexport default HelpIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction HideIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg viewBox='0 0 24 24' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M12 19c.946 0 1.81-.103 2.598-.281l-1.757-1.757c-.273.021-.55.038-.841.038-5.351 0-7.424-3.846-7.926-5a8.642 8.642 0 011.508-2.297L4.184 8.305c-1.538 1.667-2.121 3.346-2.132 3.379a.994.994 0 000 .633C2.073 12.383 4.367 19 12 19zm0-14c-1.837 0-3.346.396-4.604.981L3.707 2.293 2.293 3.707l18 18 1.414-1.414-3.319-3.319c2.614-1.951 3.547-4.615 3.561-4.657a.994.994 0 000-.633C21.927 11.617 19.633 5 12 5zm4.972 10.558l-2.28-2.28c.19-.39.308-.819.308-1.278 0-1.641-1.359-3-3-3-.459 0-.888.118-1.277.309L8.915 7.501A9.26 9.26 0 0112 7c5.351 0 7.424 3.846 7.926 5-.302.692-1.166 2.342-2.954 3.558z' />\n </svg>\n );\n}\n\nexport default HideIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nconst HomeIcon = ({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) => (\n <svg width='1em' height='1em' fill='currentColor' viewBox='0 0 1024 1024' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M946.5 505 560.1 118.8l-25.9-25.9a31.5 31.5 0 0 0-44.4 0L77.5 505a63.9 63.9 0 0 0-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0 0 18.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z' />\n </svg>\n);\n\nexport default HomeIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction InfoIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg viewBox='0 0 1024 1024' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z' />\n <path d='M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z' />\n </svg>\n );\n}\n\nexport default InfoIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nconst LoginIcon = ({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) => (\n <svg width='1em' height='1em' fill='currentColor' viewBox='0 0 1024 1024' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M521.7 82c-152.5-.4-286.7 78.5-363.4 197.7-3.4 5.3.4 12.3 6.7 12.3h70.3c4.8 0 9.3-2.1 12.3-5.8 7-8.5 14.5-16.7 22.4-24.5 32.6-32.5 70.5-58.1 112.7-75.9 43.6-18.4 90-27.8 137.9-27.8 47.9 0 94.3 9.3 137.9 27.8 42.2 17.8 80.1 43.4 112.7 75.9 32.6 32.5 58.1 70.4 76 112.5C865.7 417.8 875 464.1 875 512c0 47.9-9.4 94.2-27.8 137.8-17.8 42.1-43.4 80-76 112.5s-70.5 58.1-112.7 75.9A352.8 352.8 0 0 1 520.6 866c-47.9 0-94.3-9.4-137.9-27.8A353.84 353.84 0 0 1 270 762.3c-7.9-7.9-15.3-16.1-22.4-24.5-3-3.7-7.6-5.8-12.3-5.8H165c-6.3 0-10.2 7-6.7 12.3C234.9 863.2 368.5 942 520.6 942c236.2 0 428-190.1 430.4-425.6C953.4 277.1 761.3 82.6 521.7 82zM395.02 624v-76h-314c-4.4 0-8-3.6-8-8v-56c0-4.4 3.6-8 8-8h314v-76c0-6.7 7.8-10.5 13-6.3l141.9 112a8 8 0 0 1 0 12.6l-141.9 112c-5.2 4.1-13 .4-13-6.3z' />\n </svg>\n);\n\nexport default LoginIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction PasteIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg viewBox='0 0 24 24' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M20 11V5c0-1.103-.897-2-2-2h-3a1 1 0 00-1-1H8a1 1 0 00-1 1H4c-1.103 0-2 .897-2 2v13c0 1.103.897 2 2 2h7c0 1.103.897 2 2 2h7c1.103 0 2-.897 2-2v-7c0-1.103-.897-2-2-2zm-9 2v5H4V5h3v2h8V5h3v6h-5c-1.103 0-2 .897-2 2zm2 7v-7h7l.001 7H13z' />\n </svg>\n );\n}\n\nexport default PasteIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction QuestionIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg viewBox='0 0 512 512' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path fill='none' stroke='currentColor' strokeMiterlimit={10} strokeWidth={32} d='M256 80a176 176 0 10176 176A176 176 0 00256 80z' />\n <path\n fill='none'\n stroke='currentColor'\n strokeLinecap='round'\n strokeMiterlimit={10}\n strokeWidth={28}\n d='M200 202.29s.84-17.5 19.57-32.57C230.68 160.77 244 158.18 256 158c10.93-.14 20.69 1.67 26.53 4.45 10 4.76 29.47 16.38 29.47 41.09 0 26-17 37.81-36.37 50.8S251 281.43 251 296'\n />\n <path d='M270 348 A20 20 0 0 1 250 368 A20 20 0 0 1 230 348 A20 20 0 0 1 270 348 z' />\n </svg>\n );\n}\n\nexport default QuestionIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction RemoveIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg viewBox='0 0 512 512' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path\n fill='none'\n stroke='currentColor'\n strokeLinejoin='round'\n strokeWidth={32}\n d='M135.19 390.14a28.79 28.79 0 0021.68 9.86h246.26A29 29 0 00432 371.13V140.87A29 29 0 00403.13 112H156.87a28.84 28.84 0 00-21.67 9.84v0L46.33 256l88.86 134.11z'\n />\n <path\n fill='none'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth={32}\n d='M336.67 192.33L206.66 322.34M336.67 322.34L206.66 192.33M336.67 192.33L206.66 322.34M336.67 322.34L206.66 192.33'\n />\n </svg>\n );\n}\n\nexport default RemoveIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction SaveIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg viewBox='0 0 1024 1024' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z' />\n </svg>\n );\n}\n\nexport default SaveIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ShowIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg viewBox='0 0 24 24' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M12 9a3.02 3.02 0 00-3 3c0 1.642 1.358 3 3 3 1.641 0 3-1.358 3-3 0-1.641-1.359-3-3-3z' />\n <path d='M12 5c-7.633 0-9.927 6.617-9.948 6.684L1.946 12l.105.316C2.073 12.383 4.367 19 12 19s9.927-6.617 9.948-6.684l.106-.316-.105-.316C21.927 11.617 19.633 5 12 5zm0 12c-5.351 0-7.424-3.846-7.926-5C4.578 10.842 6.652 7 12 7c5.351 0 7.424 3.846 7.926 5-.504 1.158-2.578 5-7.926 5z' />\n </svg>\n );\n}\n\nexport default ShowIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction UploadIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg fill='currentColor' viewBox='0 0 16 16' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M.5 9.9a.5.5 0 01.5.5v2.5a1 1 0 001 1h12a1 1 0 001-1v-2.5a.5.5 0 011 0v2.5a2 2 0 01-2 2H2a2 2 0 01-2-2v-2.5a.5.5 0 01.5-.5z' />\n <path d='M7.646 1.146a.5.5 0 01.708 0l3 3a.5.5 0 01-.708.708L8.5 2.707V11.5a.5.5 0 01-1 0V2.707L5.354 4.854a.5.5 0 11-.708-.708l3-3z' />\n </svg>\n );\n}\n\nexport default UploadIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction WarningIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg viewBox='0 0 24 24' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path fill='none' d='M0 0h24v24H0z' />\n <path d='M4 20v-6a8 8 0 1116 0v6h1v2H3v-2h1zm2 0h12v-6a6 6 0 10-12 0v6zm5-18h2v3h-2V2zm8.778 2.808l1.414 1.414-2.12 2.121-1.415-1.414 2.121-2.121zM2.808 6.222l1.414-1.414 2.121 2.12L4.93 8.344 2.808 6.222zM7 14a5 5 0 015-5v2a3 3 0 00-3 3H7z' />\n </svg>\n );\n}\n\nexport default WarningIcon;\n","import { IconName } from '@enums';\nimport { ChopLogicSVGElementProps } from '@models';\nimport { ReactElement } from 'react';\n\nimport ArrowDownIcon from './svg/ArrowDownIcon';\nimport ArrowUpIcon from './svg/ArrowUpIcon';\nimport BackIcon from './svg/BackIcon';\nimport CancelIcon from './svg/CancelIcon';\nimport CheckboxCheckedIcon from './svg/CheckboxCheckedIcon';\nimport CheckboxUncheckedIcon from './svg/CheckboxUncheckedIcon';\nimport CheckMarkIcon from './svg/CheckMarkIcon';\nimport ChevronDownIcon from './svg/ChevronDownIcon';\nimport ChevronLeftIcon from './svg/ChevronLeftIcon';\nimport ChevronRightIcon from './svg/ChevronRightIcon';\nimport ChevronUpIcon from './svg/ChevronUpIcon';\nimport ClearIcon from './svg/ClearIcon';\nimport CopyIcon from './svg/CopyIcon';\nimport CutIcon from './svg/CutIcon';\nimport DeleteIcon from './svg/DeleteIcon';\nimport DownloadIcon from './svg/DownloadIcon';\nimport ErrorIcon from './svg/ErrorIcon';\nimport ForwardIcon from './svg/ForwardIcon';\nimport GraduateIcon from './svg/GraduateIcon';\nimport HelpIcon from './svg/HelpIcon';\nimport HideIcon from './svg/HideIcon';\nimport HomeIcon from './svg/HomeIcon';\nimport InfoIcon from './svg/InfoIcon';\nimport LoginIcon from './svg/LoginIcon';\nimport PasteIcon from './svg/PasteIcon';\nimport QuestionIcon from './svg/QuestionIcon';\nimport RemoveIcon from './svg/RemoveIcon';\nimport SaveIcon from './svg/SaveIcon';\nimport ShowIcon from './svg/ShowIcon';\nimport UploadIcon from './svg/UploadIcon';\nimport WarningIcon from './svg/WarningIcon';\n\ntype Icons = { [key in IconName]: ({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) => ReactElement };\n\nexport const IconDictionary: Icons = {\n [IconName.ArrowDown]: ArrowDownIcon,\n [IconName.ArrowUp]: ArrowUpIcon,\n [IconName.Back]: BackIcon,\n [IconName.Cancel]: CancelIcon,\n [IconName.CheckboxChecked]: CheckboxCheckedIcon,\n [IconName.CheckboxUnchecked]: CheckboxUncheckedIcon,\n [IconName.CheckMark]: CheckMarkIcon,\n [IconName.ChevronDown]: ChevronDownIcon,\n [IconName.ChevronUp]: ChevronUpIcon,\n [IconName.ChevronLeft]: ChevronLeftIcon,\n [IconName.ChevronRight]: ChevronRightIcon,\n [IconName.Clear]: ClearIcon,\n [IconName.Copy]: CopyIcon,\n [IconName.Cut]: CutIcon,\n [IconName.Delete]: DeleteIcon,\n [IconName.Download]: DownloadIcon,\n [IconName.Error]: ErrorIcon,\n [IconName.Forward]: ForwardIcon,\n [IconName.Graduate]: GraduateIcon,\n [IconName.Help]: HelpIcon,\n [IconName.Hide]: HideIcon,\n [IconName.Home]: HomeIcon,\n [IconName.Info]: InfoIcon,\n [IconName.Login]: LoginIcon,\n [IconName.Paste]: PasteIcon,\n [IconName.Question]: QuestionIcon,\n [IconName.Save]: SaveIcon,\n [IconName.Show]: ShowIcon,\n [IconName.Upload]: UploadIcon,\n [IconName.Warning]: WarningIcon,\n [IconName.Remove]: RemoveIcon,\n};\n","import { IconDictionary } from '@assets/icons';\nimport { IconProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC } from 'react';\n\nimport styles from './Icon.module.scss';\n\nconst Icon: FC<IconProps> = ({ name, testId, className, ...rest }) => {\n if (!name) return null;\n const Component = IconDictionary[name];\n const iconClass = getClassName([className, styles.icon]);\n\n return <Component data-testid={testId} className={iconClass} {...rest} />;\n};\n\nexport default Icon;\n","import { FC, InputHTMLAttributes, PropsWithChildren } from 'react';\n\nimport styles from './Input.module.scss';\n\ntype Props = InputHTMLAttributes<HTMLInputElement> & PropsWithChildren;\n\nconst Input: FC<Props> = ({ children, ...rest }) => {\n return (\n <div className={styles.wrapper}>\n <input {...rest} className={styles.input} />\n {children}\n </div>\n );\n};\n\nexport default Input;\n","import { FC, ReactElement } from 'react';\n\nimport styles from './Label.module.scss';\n\ntype LabelProps = {\n label: string;\n required: boolean;\n inputId: string;\n isTextHidden?: boolean;\n icon?: ReactElement;\n iconPosition?: 'left' | 'right';\n};\n\nconst Label: FC<LabelProps> = ({ label, required, inputId, icon, iconPosition, isTextHidden = false }) => {\n const isLeftIconVisible = !!icon && iconPosition === 'left';\n const isRightIconVisible = !!icon && iconPosition === 'right';\n\n return (\n <label className={styles.label} htmlFor={inputId}>\n {isLeftIconVisible && icon}\n {!isTextHidden && (\n <span>\n {label}\n {required && <abbr title='required'>*</abbr>}\n </span>\n )}\n {isRightIconVisible && icon}\n </label>\n );\n};\n\nexport default Label;\n","import { LoaderView } from '@enums';\nimport { LoaderProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC } from 'react';\n\nimport Arrow from './views/Arrow.module.scss';\nimport Brackets from './views/Brackets.module.scss';\nimport Circle from './views/Circle.module.scss';\nimport Dots from './views/Dots.module.scss';\nimport Filler from './views/Filler.module.scss';\nimport Linear from './views/Linear.module.scss';\nimport Pulse from './views/Pulse.module.scss';\nimport Rotation from './views/Rotation.module.scss';\nimport Square from './views/Square.module.scss';\n\nconst Loader: FC<LoaderProps> = ({ view = LoaderView.Circle, ...rest }) => {\n const className = getClassName([\n {\n [Arrow.loader]: view === LoaderView.Arrow,\n [Brackets.loader]: view === LoaderView.Brackets,\n [Circle.loader]: view === LoaderView.Circle,\n [Dots.loader]: view === LoaderView.Dots,\n [Filler.loader]: view === LoaderView.Filler,\n [Pulse.loader]: view === LoaderView.Pulse,\n [Linear.loader]: view === LoaderView.Linear,\n [Rotation.loader]: view === LoaderView.Rotation,\n [Square.loader]: view === LoaderView.Square,\n },\n ]);\n\n return <span className={className} role='status' {...rest}></span>;\n};\n\nexport default Loader;\n","import { ReactElement, ReactPortal, useEffect, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\nconst Portal = ({ children }: { children: ReactElement }): ReactPortal => {\n const [container] = useState(() => document.createElement('div'));\n\n useEffect(() => {\n // Append a new portal at the end of the body element on mount\n document.body.appendChild(container);\n\n // Remove the portal on unmount\n return () => {\n document.body.removeChild(container);\n };\n }, [container]);\n\n return ReactDOM.createPortal(children, container);\n};\n\nexport default Portal;\n","import { useEffect } from 'react';\n\nexport const useAutoClose = ({\n isOpened,\n onClose,\n autoClose = true,\n autoCloseDelay = 3000,\n}: {\n isOpened: boolean;\n onClose: () => void;\n autoClose?: boolean;\n autoCloseDelay?: number;\n}) => {\n useEffect(() => {\n if (!isOpened || !autoClose) return;\n\n const timer = setTimeout(() => {\n onClose();\n }, autoCloseDelay);\n\n return () => clearTimeout(timer);\n }, [isOpened, autoClose, autoCloseDelay, onClose]);\n};\n","import { FormContextProps } from '@models';\nimport { createContext } from 'react';\n\nexport const FormContext = createContext<FormContextProps>({});\n","import { ThemeMode } from '@enums';\nimport { ThemeContextProps } from '@models';\nimport { createContext } from 'react';\n\nexport const ThemeContext = createContext<ThemeContextProps>({\n mode: ThemeMode.Light,\n setMode: () => {},\n});\n","import '@styles/root.scss';\n\nimport { ThemeMode } from '@enums';\nimport { FC, ReactNode, useEffect, useState } from 'react';\n\nimport { ThemeContext } from './ThemeContext';\n\nexport const ThemeProvider: FC<{ children: ReactNode; injectedMode?: ThemeMode }> = ({ children, injectedMode }) => {\n const [mode, setMode] = useState(ThemeMode.Light);\n\n useEffect(() => {\n if (mode && typeof mode === 'string') {\n document.body.classList.remove(ThemeMode.Light, ThemeMode.Dark);\n document.body.classList.add(mode);\n }\n }, [mode]);\n\n useEffect(() => {\n if (injectedMode && typeof injectedMode === 'string') {\n document.body.classList.remove(ThemeMode.Light, ThemeMode.Dark);\n document.body.classList.add(injectedMode);\n }\n }, [injectedMode]);\n\n return <ThemeContext.Provider value={{ mode, setMode }}>{children}</ThemeContext.Provider>;\n};\n","import { ThemeContext } from '@contexts';\nimport { useContext } from 'react';\n\nexport const useChopLogicTheme = () => useContext(ThemeContext);\n","import { RefObject, useEffect } from 'react';\n\ntype UseClickOutsideParams = {\n ref: RefObject<HTMLElement | null>;\n onClickOutsideHandler: () => void;\n dependentRef?: RefObject<HTMLElement | null>;\n};\n\nexport const useClickOutside = ({ ref, onClickOutsideHandler, dependentRef }: UseClickOutsideParams): void => {\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n const isOutsideRef = ref?.current && !ref.current.contains(event.target as Node);\n const isOutsideDependentRef = !dependentRef?.current ? true : !dependentRef.current.contains(event.target as Node);\n if (isOutsideRef && isOutsideDependentRef) {\n onClickOutsideHandler();\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [ref, dependentRef, onClickOutsideHandler]);\n};\n","import { Dimensions } from '@models';\nimport { RefObject, useEffect, useState } from 'react';\n\ntype useContainerDimensionsParams = {\n ref: RefObject<HTMLElement | null>;\n isVisible?: boolean;\n};\n\nexport const useContainerDimensions = ({ ref, isVisible }: useContainerDimensionsParams): Dimensions => {\n const [dimensions, setDimensions] = useState<Dimensions>({ width: 0, height: 0 });\n\n useEffect(() => {\n if (ref?.current && isVisible) {\n setDimensions({\n width: ref.current.offsetWidth,\n height: ref.current.offsetHeight,\n });\n }\n }, [ref, isVisible]);\n\n return dimensions;\n};\n","import { useId } from 'react';\n\nexport function useElementIds(id?: string) {\n const randomId = useId();\n const elementId = id ?? randomId;\n const errorId = `${elementId}_error`;\n const dropdownId = `${elementId}_dropdown`;\n\n return {\n elementId,\n errorId,\n dropdownId,\n };\n}\n","import { useEffect, useState } from 'react';\n\nexport const useIsMounted = (isOpened: boolean, delay: number = 300): boolean => {\n const [isMounted, setIsMounted] = useState(false);\n\n useEffect(() => {\n if (isOpened && !isMounted) {\n setIsMounted(true);\n } else if (!isOpened && isMounted) {\n setTimeout(() => {\n setIsMounted(false);\n }, delay);\n }\n }, [isOpened]);\n\n return isMounted;\n};\n","import { RefObject, useEffect, useState } from 'react';\n\nexport const useIsOverflow = ({\n ref,\n dimension,\n isMounted,\n}: {\n ref: RefObject<HTMLElement | null>;\n dimension: 'width' | 'height';\n isMounted?: boolean;\n}) => {\n const [isOverflow, setIsOverflow] = useState(false);\n\n useEffect(() => {\n const checkIsOverflow = () => {\n const { current } = ref;\n\n if (current) {\n if (dimension === 'width') {\n const { scrollWidth = 0, clientWidth = 0 } = current as HTMLElement;\n setIsOverflow(scrollWidth > clientWidth);\n }\n\n if (dimension === 'height') {\n const { scrollHeight = 0, clientHeight = 0 } = current as HTMLElement;\n setIsOverflow(scrollHeight > clientHeight);\n }\n }\n };\n\n if (isMounted) {\n checkIsOverflow();\n }\n\n window.addEventListener('resize', checkIsOverflow);\n\n return () => window.removeEventListener('resize', checkIsOverflow);\n }, [ref, dimension, isMounted]);\n\n return isOverflow;\n};\n","import { RefObject, useEffect } from 'react';\n\ntype useKeyPressParams = {\n keyCode: string;\n ref: RefObject<HTMLDivElement | null>;\n onKeyPress: () => void;\n};\n\nexport const useKeyPress = ({ ref, keyCode, onKeyPress }: useKeyPressParams) => {\n useEffect(() => {\n const handleKeyPress = (e: KeyboardEvent) => {\n if (e?.code === keyCode && ref?.current) {\n onKeyPress();\n }\n };\n\n document.addEventListener('keydown', handleKeyPress, false);\n return () => {\n document.removeEventListener('keydown', handleKeyPress, false);\n };\n }, [ref, keyCode, onKeyPress]);\n};\n","import { RefObject, useEffect } from 'react';\n\ntype ModalFocusTrapParams = {\n modalRef: RefObject<HTMLDivElement | null>;\n isOpened: boolean;\n};\n\nexport const useModalFocusTrap = ({ modalRef, isOpened }: ModalFocusTrapParams) => {\n useEffect(() => {\n const modalElement = modalRef.current;\n if (!isOpened || !modalElement) return;\n\n const focusableElements = modalElement.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])');\n const firstElement = focusableElements[0] as HTMLElement;\n const lastElement = focusableElements[focusableElements.length - 1] as HTMLElement;\n\n const handleTabKeyPress = (event: KeyboardEvent) => {\n if (event.key === 'Tab') {\n if (event.shiftKey && document.activeElement === firstElement) {\n event.preventDefault();\n lastElement.focus();\n } else if (!event.shiftKey && document.activeElement === lastElement) {\n event.preventDefault();\n firstElement.focus();\n }\n }\n };\n\n modalElement.addEventListener('keydown', handleTabKeyPress);\n\n return () => {\n modalElement.removeEventListener('keydown', handleTabKeyPress);\n };\n }, [modalRef, isOpened]);\n};\n","import { FormContext } from '@contexts';\nimport { useContext, useEffect } from 'react';\n\nexport const useResetFormInput = (onReset: () => void) => {\n const { resetSignal } = useContext(FormContext);\n\n useEffect(() => {\n if (resetSignal) {\n onReset();\n }\n }, [resetSignal, onReset]);\n};\n","import { Dimensions } from '@models';\nimport { useEffect, useState } from 'react';\n\nfunction getWindowDimensions(): Dimensions {\n const { innerWidth: width, innerHeight: height } = window;\n\n return { width, height };\n}\n\nexport function useWindowDimensions(): Dimensions {\n const [windowDimensions, setWindowDimensions] = useState<Dimensions>(getWindowDimensions());\n\n useEffect(() => {\n function handleResize() {\n setWindowDimensions(getWindowDimensions());\n }\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n return windowDimensions;\n}\n","import { RefObject, useEffect, useState } from 'react';\n\nimport { useContainerDimensions } from '../use-container-dimensions/use-container-dimensions';\nimport { useWindowDimensions } from '../use-window-dimensions/use-window-dimensions';\n\ntype useTooltipPositionParams = {\n wrapperRef: RefObject<HTMLElement | null>;\n tooltipRef: RefObject<HTMLElement | null>;\n isOpened: boolean;\n spacing?: number;\n};\n\nexport const useTooltipPosition = ({ wrapperRef, tooltipRef, isOpened, spacing = 4 }: useTooltipPositionParams) => {\n const [position, setPosition] = useState({ top: 0, left: 0 });\n const { width: tooltipWidth, height: tooltipHeight } = useContainerDimensions({\n ref: tooltipRef,\n isVisible: isOpened,\n });\n const { width: windowWidth, height: windowHeight } = useWindowDimensions();\n\n useEffect(() => {\n if (isOpened && wrapperRef?.current) {\n const rect = wrapperRef?.current.getBoundingClientRect();\n\n let top = Math.round(rect.bottom + spacing);\n let left = Math.round(rect.left);\n\n // Adjust position if tooltip goes beyond the viewport\n if (top + tooltipHeight > window.innerHeight) {\n top = Math.round(rect.top - tooltipHeight - spacing);\n }\n if (left + tooltipWidth > window.innerWidth) {\n left = Math.round(window.innerWidth - tooltipWidth - spacing);\n }\n if (left < 0) {\n left = spacing;\n }\n\n setPosition({ top, left });\n }\n }, [isOpened, wrapperRef, tooltipHeight, tooltipWidth, spacing, windowWidth, windowHeight]);\n\n return position;\n};\n","import { useAutoClose, useClickOutside, useElementIds, useKeyPress, useTooltipPosition } from '@hooks';\nimport { MouseEvent, useRef, useState } from 'react';\n\ntype Params = {\n autoClose: boolean;\n autoCloseDelay: number;\n id?: string;\n};\n\nexport const useTooltipController = ({ id, autoClose, autoCloseDelay }: Params) => {\n const [isOpened, setIsOpened] = useState(false);\n const wrapperRef = useRef(null);\n const tooltipRef = useRef<HTMLDivElement>(null);\n const { top, left } = useTooltipPosition({ wrapperRef, tooltipRef, isOpened });\n const { elementId } = useElementIds(id);\n\n const closeTooltip = () => setIsOpened(false);\n const openTooltip = () => setIsOpened(true);\n const toggleTooltip = () => setIsOpened(!isOpened);\n const handleContextMenu = (e: MouseEvent) => {\n e.preventDefault();\n toggleTooltip();\n };\n\n useKeyPress({ keyCode: 'Escape', ref: tooltipRef, onKeyPress: closeTooltip });\n useClickOutside({ ref: tooltipRef, onClickOutsideHandler: closeTooltip, dependentRef: wrapperRef });\n useAutoClose({\n isOpened,\n onClose: closeTooltip,\n autoClose,\n autoCloseDelay,\n });\n\n return {\n elementId,\n openTooltip,\n closeTooltip,\n toggleTooltip,\n handleContextMenu,\n top,\n left,\n isOpened,\n wrapperRef,\n tooltipRef,\n };\n};\n","import { Portal } from '@atoms';\nimport { TooltipContainer } from '@enums';\nimport { TooltipProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC, MouseEvent } from 'react';\n\nimport { useTooltipController } from './Tooltip.controller';\nimport styles from './Tooltip.module.scss';\n\nconst Tooltip: FC<TooltipProps> = ({\n children,\n tooltipContent,\n id,\n style,\n className,\n containerTag = TooltipContainer.Span,\n visibleOn = 'hover',\n autoClose = false,\n autoCloseDelay = 3000,\n ...rest\n}) => {\n const ContainerComponent = containerTag;\n const { openTooltip, closeTooltip, toggleTooltip, handleContextMenu, elementId, top, left, isOpened, wrapperRef, tooltipRef } =\n useTooltipController({ id, autoClose, autoCloseDelay });\n const tooltipClass = getClassName([styles.tooltip, className]);\n\n return (\n <ContainerComponent\n style={{ position: 'relative', cursor: 'pointer' }}\n onClick={visibleOn === 'click' ? toggleTooltip : undefined}\n onMouseOver={visibleOn === 'hover' ? openTooltip : undefined}\n onMouseLeave={visibleOn === 'hover' ? closeTooltip : undefined}\n onFocus={visibleOn === 'focus' ? openTooltip : undefined}\n onBlur={visibleOn === 'focus' ? closeTooltip : undefined}\n onContextMenu={visibleOn === 'contextmenu' ? (e: MouseEvent) => handleContextMenu(e) : undefined}\n tabIndex={-1}\n ref={wrapperRef}\n aria-describedby={elementId}\n >\n {children}\n {isOpened && (\n <Portal>\n <div style={{ ...style, top, left }} ref={tooltipRef} role='tooltip' id={elementId} {...rest} className={tooltipClass}>\n {tooltipContent}\n </div>\n </Portal>\n )}\n </ContainerComponent>\n );\n};\n\nexport default Tooltip;\n","import { FormValues } from '@models';\n\nexport function getCheckboxInitialValue({\n defaultChecked,\n initialValues,\n name,\n}: {\n defaultChecked?: boolean;\n initialValues?: FormValues;\n name: string;\n}): boolean {\n if (initialValues && initialValues?.[name] !== undefined) {\n return !!initialValues?.[name];\n }\n\n return Boolean(defaultChecked);\n}\n","import { FormContext } from '@contexts';\nimport { useResetFormInput } from '@hooks';\nimport { ChangeEvent, ChangeEventHandler, useCallback, useContext, useState } from 'react';\n\nimport { getCheckboxInitialValue } from './Checkbox.helpers';\n\nexport function useCheckboxController({\n name,\n defaultChecked,\n onChange,\n}: {\n name: string;\n defaultChecked?: boolean;\n onChange?: ChangeEventHandler<HTMLInputElement>;\n}) {\n const { onChangeFormInput, initialValues } = useContext(FormContext);\n const initialValue = getCheckboxInitialValue({ initialValues, name, defaultChecked });\n const [isChecked, setIsChecked] = useState<boolean>(initialValue);\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n const checked = e.target.checked;\n setIsChecked(checked);\n onChange?.(e);\n onChangeFormInput?.({ name, value: checked });\n };\n\n const handleReset = useCallback(() => {\n setIsChecked(initialValue);\n onChangeFormInput?.({ name, value: initialValue });\n }, [name]);\n\n useResetFormInput(handleReset);\n\n return {\n handleChange,\n checked: isChecked,\n };\n}\n","import CheckboxCheckedIcon from '@assets/icons/svg/CheckboxCheckedIcon';\nimport CheckboxUncheckedIcon from '@assets/icons/svg/CheckboxUncheckedIcon';\nimport { Label } from '@atoms';\nimport { useElementIds } from '@hooks';\nimport { CheckboxProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC } from 'react';\n\nimport { useCheckboxController } from './Checkbox.controller';\nimport styles from './Checkbox.module.scss';\n\nconst Checkbox: FC<CheckboxProps> = ({\n name,\n label,\n disabled,\n noLabel,\n required = false,\n iconPosition = 'left',\n defaultChecked,\n onChange,\n id,\n className,\n ...rest\n}) => {\n const { handleChange, checked } = useCheckboxController({ name, defaultChecked, onChange });\n const { elementId } = useElementIds(id);\n const checkboxClass = getClassName([\n styles.checkbox,\n className,\n {\n [styles.checkbox__disabled]: !!disabled,\n [styles.checkbox__checked]: checked,\n },\n ]);\n\n return (\n <div {...rest} className={checkboxClass}>\n <input\n id={elementId}\n name={name}\n type='checkbox'\n disabled={disabled}\n required={required}\n checked={checked}\n onChange={handleChange}\n aria-label={noLabel ? label : undefined}\n />\n <Label\n label={label}\n required={required}\n inputId={elementId}\n isTextHidden={noLabel}\n icon={checked ? <CheckboxCheckedIcon /> : <CheckboxUncheckedIcon />}\n iconPosition={iconPosition}\n />\n </div>\n );\n};\n\nexport default Checkbox;\n","import ArrowDownIcon from '@assets/icons/svg/ArrowDownIcon';\nimport ArrowUpIcon from '@assets/icons/svg/ArrowUpIcon';\nimport { MultiSelectValue } from '@models';\nimport { FC } from 'react';\n\nimport styles from '../select/combobox/Combobox.module.scss';\n\ntype Props = {\n opened: boolean;\n disabled: boolean;\n required: boolean;\n onClick: () => void;\n comboboxId: string;\n dropdownId: string;\n values?: MultiSelectValue[];\n placeholder?: string;\n name: string;\n};\n\nexport const MultiSelectCombobox: FC<Props> = ({\n opened,\n onClick,\n comboboxId,\n dropdownId,\n name,\n placeholder,\n disabled,\n required,\n values,\n}) => {\n const selectedLabels = values?.filter((value) => value.selected).map((value) => value.label);\n const selectedIds = values?.filter((value) => value.selected).map((value) => value.id);\n let selectedValues = <span>{placeholder}</span>;\n\n if (selectedLabels && selectedLabels.length === values?.length) {\n selectedValues = <span>All items selected</span>;\n } else if (selectedLabels && selectedLabels.length === 1) {\n selectedValues = <span>{selectedLabels[0]}</span>;\n } else if (selectedLabels && selectedLabels.length > 1) {\n selectedValues = <span>{`${selectedLabels.length} items selected`}</span>;\n }\n\n return (\n <button\n type='button'\n name={name}\n value={selectedIds}\n role='combobox'\n aria-haspopup='listbox'\n aria-expanded={opened}\n aria-controls={dropdownId}\n id={comboboxId}\n onClick={onClick}\n disabled={disabled}\n aria-required={required}\n className={styles.combobox}\n >\n {selectedValues}\n {opened ? <ArrowUpIcon /> : <ArrowDownIcon />}\n </button>\n );\n};\n","import { FormValues, MultiSelectValue, SelectValue } from '@models';\n\nexport function getMultiSelectInitialValues({\n name,\n options,\n initialValues,\n defaultValue,\n}: {\n name: string;\n options: SelectValue[];\n initialValues?: FormValues;\n defaultValue?: string | number | readonly string[];\n}): MultiSelectValue[] {\n return options.map((option) => {\n let selected = false;\n\n if (initialValues && initialValues?.[name] && Array.isArray(initialValues[name])) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const selectedId = (initialValues[name] as Array<any>).find((item) => item === option.id || item?.id === option.id);\n if (selectedId) selected = true;\n }\n\n if (!initialValues?.[name] && Array.isArray(defaultValue)) {\n const selectedId = defaultValue.find((item) => item === option.id);\n if (selectedId) selected = true;\n }\n\n return { ...option, selected };\n });\n}\n\nexport const getMultiSelectFormValues = (options: MultiSelectValue[]): string[] => {\n return options.filter((item) => item.selected).map((item) => item.id);\n};\n\nexport const getMultiSelectUpdatedValues = (options: MultiSelectValue[], id: string): MultiSelectValue[] => {\n const targetItem = options.find((item) => item.id === id);\n return options.map((item) => {\n return item.id === id ? { ...item, selected: !targetItem?.selected } : item;\n });\n};\n","import { FormContext } from '@contexts';\nimport { useResetFormInput } from '@hooks';\nimport { MultiSelectValue, SelectValue } from '@models';\nimport { useCallback, useContext, useState } from 'react';\n\nimport { getMultiSelectFormValues, getMultiSelectInitialValues, getMultiSelectUpdatedValues } from './MultiSelect.helpers';\n\nexport function useMultiSelectController({\n name,\n defaultValue,\n onChange,\n options,\n}: {\n name: string;\n defaultValue?: string | number | readonly string[];\n onChange?: (values?: SelectValue[]) => void;\n options: SelectValue[];\n}) {\n const [opened, setOpened] = useState(false);\n const { onChangeFormInput, initialValues } = useContext(FormContext);\n const initialOptions = getMultiSelectInitialValues({ name, options, initialValues, defaultValue });\n const [values, setValues] = useState<MultiSelectValue[]>(initialOptions);\n\n const handleClose = () => setOpened(false);\n\n const handleToggle = () => setOpened(!opened);\n\n const handleSelect = (id: string) => {\n const newValues = getMultiSelectUpdatedValues(values, id);\n\n setValues(newValues);\n onChange?.(newValues);\n onChangeFormInput?.({ name, value: getMultiSelectFormValues(newValues) });\n };\n\n const handleReset = useCallback(() => {\n setOpened(false);\n setValues(initialOptions);\n onChangeFormInput?.({ name, value: getMultiSelectFormValues(initialOptions) });\n }, [name]);\n\n useResetFormInput(handleReset);\n\n return {\n handleClose,\n handleToggle,\n handleSelect,\n opened,\n values,\n };\n}\n","import CheckboxCheckedIcon from '@assets/icons/svg/CheckboxCheckedIcon';\nimport CheckboxUncheckedIcon from '@assets/icons/svg/CheckboxUncheckedIcon';\nimport { MultiSelectValue } from '@models';\nimport { getClassName } from '@utils';\nimport { FC, KeyboardEvent } from 'react';\n\nimport styles from '../select/option/Option.module.scss';\n\ntype Props = {\n value: MultiSelectValue;\n onSelect: (id: string) => void;\n};\n\nexport const MultiSelectOption: FC<Props> = ({ value, onSelect }) => {\n const { id, label, selected } = value;\n const optionClass = getClassName([styles.option, styles.option__multi, { [styles.option__selected]: selected }]);\n\n const handleKeyDown = (id: string) => (e: KeyboardEvent<HTMLLIElement>) => {\n switch (e.key) {\n case ' ':\n case 'SpaceBar':\n case 'Enter':\n e.preventDefault();\n onSelect(id);\n break;\n default:\n break;\n }\n };\n\n return (\n <li\n id={id}\n role='option'\n aria-selected={selected}\n tabIndex={0}\n onKeyDown={handleKeyDown(id)}\n onClick={() => onSelect(id)}\n className={optionClass}\n >\n {selected ? <CheckboxCheckedIcon /> : <CheckboxUncheckedIcon />}\n <span>{label}</span>\n </li>\n );\n};\n","import { MultiSelectValue } from '@models';\nimport { getClassName, handleDropdownListKeyPress } from '@utils';\nimport { FC } from 'react';\n\nimport styles from '../select/dropdown/Dropdown.module.scss';\nimport { MultiSelectOption } from './Option';\n\ntype Props = {\n options: MultiSelectValue[];\n opened: boolean;\n dropdownId: string;\n onClose: () => void;\n onSelect: (id: string) => void;\n};\n\nexport const MultiSelectDropdown: FC<Props> = ({ options, opened, onClose, onSelect, dropdownId }) => {\n const dropdownClass = getClassName([styles.dropdown, { [styles.dropdown__opened]: opened }]);\n\n return (\n <ul\n role='listbox'\n id={dropdownId}\n tabIndex={-1}\n onKeyDown={(e) => handleDropdownListKeyPress({ e, options, onClose })}\n className={dropdownClass}\n >\n {options.map((item) => (\n <MultiSelectOption key={item.id} value={item} onSelect={() => onSelect(item.id)} />\n ))}\n </ul>\n );\n};\n","import { Label } from '@atoms';\nimport { useClickOutside, useElementIds, useKeyPress } from '@hooks';\nimport { MultiSelectProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC, useRef } from 'react';\n\nimport styles from '../select/Select.module.scss';\nimport { MultiSelectCombobox } from './MultiSelect.Combobox';\nimport { useMultiSelectController } from './MultiSelect.controller';\nimport { MultiSelectDropdown } from './MultiSelect.Dropdown';\n\nconst MultiSelect: FC<MultiSelectProps> = ({\n options,\n name,\n label,\n required = false,\n placeholder = 'Not selected',\n disabled = false,\n onChange,\n defaultValue,\n id,\n className,\n ...rest\n}) => {\n const ref = useRef(null);\n const { elementId, dropdownId } = useElementIds(id);\n const { handleClose, handleSelect, handleToggle, opened, values } = useMultiSelectController({\n name,\n options,\n defaultValue,\n onChange,\n });\n const multiSelectClass = getClassName([styles.wrapper, className]);\n\n useClickOutside({ ref, onClickOutsideHandler: handleClose });\n useKeyPress({ keyCode: 'Escape', ref, onKeyPress: handleClose });\n\n return (\n <div ref={ref} {...rest} className={multiSelectClass}>\n <Label label={label} required={required} inputId={elementId} />\n <MultiSelectCombobox\n name={name}\n opened={opened}\n comboboxId={elementId}\n dropdownId={dropdownId}\n onClick={handleToggle}\n values={values}\n placeholder={placeholder}\n disabled={disabled}\n required={required}\n />\n <MultiSelectDropdown options={values} opened={opened} onClose={handleClose} dropdownId={dropdownId} onSelect={handleSelect} />\n </div>\n );\n};\n\nexport default MultiSelect;\n","import { FormValues, NumericInputValidator } from '@models';\n\nexport function getNumericInputInitialValue({\n name,\n initialValues,\n defaultValue,\n}: {\n name: string;\n initialValues?: FormValues;\n defaultValue?: string | number | readonly string[];\n}): number {\n if (initialValues && initialValues[name]) {\n return Number(initialValues[name]);\n }\n\n if (defaultValue && typeof defaultValue === 'number') {\n return defaultValue;\n }\n\n return 0;\n}\n\nexport function validateNumericInputValue({\n value,\n required,\n validator,\n maxValue,\n minValue,\n}: {\n value?: number;\n required?: boolean;\n validator?: NumericInputValidator;\n maxValue?: number;\n minValue?: number;\n}): boolean {\n if (required && !validator && value === undefined) {\n return false;\n }\n\n if (validator && typeof validator === 'function') {\n return validator(value);\n }\n\n if (maxValue && minValue && value && !validator) {\n return value <= maxValue && value >= minValue;\n }\n\n return true;\n}\n","import { FormContext } from '@contexts';\nimport { useResetFormInput } from '@hooks';\nimport { NumericInputValidator } from '@models';\nimport { ChangeEvent, ChangeEventHandler, useCallback, useContext, useState } from 'react';\n\nimport { getNumericInputInitialValue, validateNumericInputValue } from './NumericInput.helpers';\n\nexport function useNumericInputController({\n name,\n defaultValue,\n onChange,\n onSpinButtonClick,\n min,\n max,\n step,\n required,\n validator,\n}: {\n name: string;\n defaultValue?: string | number | readonly string[];\n onChange?: ChangeEventHandler<HTMLInputElement>;\n onSpinButtonClick?: (value?: number) => void;\n min?: string | number;\n max?: string | number;\n step: number;\n required: boolean;\n validator?: NumericInputValidator;\n}) {\n const { onChangeFormInput, initialValues } = useContext(FormContext);\n const initialValue = getNumericInputInitialValue({ initialValues, defaultValue, name });\n const maxValue = max ? Number(max) : Number.MAX_SAFE_INTEGER;\n const minValue = min ? Number(min) : Number.MIN_SAFE_INTEGER;\n const [value, setValue] = useState<number>(initialValue);\n const [valid, setValid] = useState<boolean>(true);\n\n const updateValue = (value: number) => {\n setValue(value);\n const valid = validateNumericInputValue({ value, required, validator, maxValue, minValue });\n setValid(valid);\n onChangeFormInput?.({ name, value, valid });\n };\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const value = Number(event.target.value);\n updateValue(value);\n onChange?.(event);\n };\n\n const increment = () => {\n updateValue(value + step);\n onSpinButtonClick?.(value + step);\n };\n\n const decrement = () => {\n updateValue(value - step);\n onSpinButtonClick?.(value - step);\n };\n\n const handleReset = useCallback(() => {\n setValue(initialValue);\n setValid(true);\n onChangeFormInput?.({ name, value: initialValue, valid: true });\n }, [name]);\n\n useResetFormInput(handleReset);\n\n return {\n handleChange,\n value,\n valid,\n minValue,\n maxValue,\n increment,\n decrement,\n };\n}\n","import { ErrorMessage, Input, Label } from '@atoms';\nimport Button from '@atoms/button/Button';\nimport { ButtonView, IconName } from '@enums';\nimport { useElementIds } from '@hooks';\nimport { NumericInputProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC } from 'react';\n\nimport { useNumericInputController } from './NumericInput.controller';\nimport styles from './NumericInput.module.scss';\n\nconst NumericInput: FC<NumericInputProps> = ({\n name,\n label,\n errorMessage,\n onChange,\n onBlur,\n onFocus,\n onSpinButtonClick,\n validator,\n min,\n max,\n id,\n tabIndex,\n disabled = false,\n required = false,\n readOnly = false,\n hasSpinButtons = true,\n defaultValue = 0,\n step = 1,\n className,\n ...rest\n}) => {\n const { elementId, errorId } = useElementIds(id);\n const { value, valid, handleChange, increment, decrement, minValue, maxValue } = useNumericInputController({\n name,\n defaultValue,\n min,\n max,\n onChange,\n required,\n validator,\n step,\n onSpinButtonClick,\n });\n const inputClass = getClassName([styles.numeric, className]);\n\n return (\n <div {...rest} className={inputClass}>\n <Label label={label} required={required} inputId={elementId} />\n <Input\n id={elementId}\n name={name}\n type='number'\n disabled={disabled}\n required={required}\n readOnly={readOnly}\n placeholder='0'\n aria-invalid={!valid}\n aria-errormessage={errorId}\n value={value.toString()}\n onChange={handleChange}\n min={minValue}\n max={maxValue}\n step={step}\n onBlur={onBlur}\n onFocus={onFocus}\n tabIndex={tabIndex}\n >\n {hasSpinButtons && (\n <span>\n <Button\n onClick={decrement}\n view={ButtonView.Inner}\n label={`Decrement value for ${label}`}\n icon={IconName.ChevronLeft}\n disabled={disabled}\n />\n <Button\n onClick={increment}\n view={ButtonView.Inner}\n label={`Increment value for ${label}`}\n icon={IconName.ChevronRight}\n disabled={disabled}\n />\n </span>\n )}\n <ErrorMessage errorId={errorId} message={errorMessage} visible={!valid} className={styles.errorMessage} />\n </Input>\n </div>\n );\n};\n\nexport default NumericInput;\n","import ArrowDownIcon from '@assets/icons/svg/ArrowDownIcon';\nimport ArrowUpIcon from '@assets/icons/svg/ArrowUpIcon';\nimport { SelectValue } from '@models';\nimport { FC } from 'react';\n\nimport styles from './Combobox.module.scss';\n\ntype Props = {\n opened: boolean;\n disabled: boolean;\n required: boolean;\n onClick: () => void;\n comboboxId: string;\n dropdownId: string;\n selected?: SelectValue;\n placeholder?: string;\n name: string;\n};\n\nexport const SelectCombobox: FC<Props> = ({ opened, onClick, comboboxId, dropdownId, selected, name, placeholder, disabled, required }) => {\n return (\n <button\n type='button'\n name={name}\n value={selected?.id}\n role='combobox'\n aria-haspopup='listbox'\n aria-expanded={opened}\n aria-controls={dropdownId}\n id={comboboxId}\n onClick={onClick}\n disabled={disabled}\n aria-required={required}\n className={styles.combobox}\n >\n {selected?.label ? <span>{selected?.label}</span> : <span>{placeholder}</span>}\n {opened ? <ArrowUpIcon /> : <ArrowDownIcon />}\n </button>\n );\n};\n","import CheckMarkIcon from '@assets/icons/svg/CheckMarkIcon';\nimport { SelectValue } from '@models';\nimport { getClassName } from '@utils';\nimport { FC, KeyboardEvent } from 'react';\n\nimport styles from './Option.module.scss';\n\ntype Props = {\n value: SelectValue;\n selected: boolean;\n onSelect: (id: string) => void;\n onClear: () => void;\n};\n\nexport const SelectOption: FC<Props> = ({ value, selected, onSelect, onClear }) => {\n const { id, label } = value;\n const optionClass = getClassName([styles.option, { [styles.option__selected]: selected }]);\n\n const handleOptionSelect = (id: string) => {\n if (selected) {\n onClear();\n } else {\n onSelect(id);\n }\n };\n\n const handleKeyDown = (id: string) => (e: KeyboardEvent<HTMLLIElement>) => {\n switch (e.key) {\n case ' ':\n case 'SpaceBar':\n case 'Enter':\n e.preventDefault();\n handleOptionSelect(id);\n break;\n default:\n break;\n }\n };\n\n return (\n <li\n id={id}\n role='option'\n aria-selected={selected}\n tabIndex={0}\n onKeyDown={handleKeyDown(id)}\n onClick={() => handleOptionSelect(id)}\n className={optionClass}\n >\n <span>{label}</span>\n {selected && <CheckMarkIcon />}\n </li>\n );\n};\n","import { SelectValue } from '@models';\nimport { getClassName, handleDropdownListKeyPress, moveFocusOnElementById } from '@utils';\nimport { FC } from 'react';\n\nimport { SelectOption } from '../option/Option';\nimport styles from './Dropdown.module.scss';\n\ntype Props = {\n options: SelectValue[];\n opened: boolean;\n dropdownId: string;\n comboboxId: string;\n onClose: () => void;\n selected?: SelectValue;\n onSelect: (id: string) => void;\n onClear: () => void;\n};\n\nexport const SelectDropdown: FC<Props> = ({ options, opened, onClose, onSelect, dropdownId, comboboxId, selected, onClear }) => {\n const handleOptionSelect = (id: string) => {\n onSelect(id);\n onClose();\n moveFocusOnElementById(comboboxId);\n };\n const dropdownClass = getClassName([styles.dropdown, { [styles.dropdown__opened]: opened }]);\n\n return (\n <ul\n role='listbox'\n id={dropdownId}\n tabIndex={-1}\n onKeyDown={(e) => handleDropdownListKeyPress({ e, options, onClose })}\n className={dropdownClass}\n >\n {options.map((item) => (\n <SelectOption\n key={item.id}\n value={item}\n onSelect={() => handleOptionSelect(item.id)}\n onClear={onClear}\n selected={item.id === selected?.id}\n />\n ))}\n </ul>\n );\n};\n","import { FormValues, SelectValue } from '@models';\n\nexport function getSelectInitialValue({\n name,\n options,\n initialValues,\n defaultValue,\n}: {\n name: string;\n options: SelectValue[];\n initialValues?: FormValues;\n defaultValue?: string | number | readonly string[];\n}): SelectValue | undefined {\n let valueId: string;\n\n if (initialValues && initialValues[name]) {\n valueId = ((initialValues[name] as SelectValue)?.id as string) ?? (initialValues[name] as string);\n }\n\n if (!initialValues?.[name] && defaultValue && typeof defaultValue === 'string') {\n valueId = defaultValue;\n }\n\n return options.find((item) => item.id === valueId);\n}\n","import { FormContext } from '@contexts';\nimport { useResetFormInput } from '@hooks';\nimport { SelectValue } from '@models';\nimport { useCallback, useContext, useState } from 'react';\n\nimport { getSelectInitialValue } from './Select.helpers';\n\nexport function useSelectController({\n name,\n defaultValue,\n onChange,\n options,\n}: {\n name: string;\n defaultValue?: string | number | readonly string[];\n onChange?: (value?: SelectValue) => void;\n options: SelectValue[];\n}) {\n const { onChangeFormInput, initialValues } = useContext(FormContext);\n const initialValue = getSelectInitialValue({ name, options, defaultValue, initialValues });\n const [opened, setOpened] = useState(false);\n const [selected, setSelected] = useState<SelectValue | undefined>(initialValue);\n\n const handleClose = () => setOpened(false);\n\n const handleToggle = () => setOpened(!opened);\n\n const handleSelect = (id: string) => {\n const newValue = options.find((item) => item.id === id);\n setSelected(newValue);\n onChange?.(newValue);\n onChangeFormInput?.({ name, value: newValue?.id });\n };\n\n const handleClear = () => {\n setSelected(undefined);\n onChange?.(undefined);\n };\n\n const handleReset = useCallback(() => {\n setOpened(false);\n setSelected(initialValue);\n onChangeFormInput?.({ name, value: initialValue?.id });\n }, [name]);\n\n useResetFormInput(handleReset);\n\n return {\n selected,\n opened,\n handleClear,\n handleClose,\n handleToggle,\n handleSelect,\n };\n}\n","import { Label } from '@atoms';\nimport { useClickOutside, useElementIds, useKeyPress } from '@hooks';\nimport { SelectProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC, useRef } from 'react';\n\nimport { SelectCombobox } from './combobox/Combobox';\nimport { SelectDropdown } from './dropdown/Dropdown';\nimport { useSelectController } from './Select.controller';\nimport styles from './Select.module.scss';\n\nconst Select: FC<SelectProps> = ({\n options,\n onChange,\n name,\n label,\n defaultValue,\n id,\n placeholder = 'Not selected',\n required = false,\n disabled = false,\n className,\n ...rest\n}) => {\n const ref = useRef<HTMLDivElement>(null);\n const { elementId, dropdownId } = useElementIds(id);\n const { handleClear, handleClose, handleSelect, handleToggle, selected, opened } = useSelectController({\n options,\n onChange,\n defaultValue,\n name,\n });\n const selectClass = getClassName([styles.wrapper, className]);\n\n useClickOutside({ ref, onClickOutsideHandler: handleClose });\n useKeyPress({ keyCode: 'Escape', ref, onKeyPress: handleClose });\n\n return (\n <div ref={ref} {...rest} className={selectClass}>\n <Label label={label} required={required} inputId={elementId} />\n <SelectCombobox\n name={name}\n opened={opened}\n comboboxId={elementId}\n dropdownId={dropdownId}\n onClick={handleToggle}\n selected={selected}\n placeholder={placeholder}\n disabled={disabled}\n required={required}\n />\n <SelectDropdown\n options={options}\n selected={selected}\n opened={opened}\n onClose={handleClose}\n dropdownId={dropdownId}\n comboboxId={elementId}\n onSelect={handleSelect}\n onClear={handleClear}\n />\n </div>\n );\n};\n\nexport default Select;\n","import { ChopLogicRegExpWithFlags, FormValues, TextInputValidator } from '@models';\n\nexport function validateTextInputValue({\n value,\n required,\n validator,\n}: {\n value: string;\n required: boolean;\n validator?: ChopLogicRegExpWithFlags | TextInputValidator;\n}): boolean {\n if (required && !validator && !value.length) {\n return false;\n }\n\n if (validator && typeof validator === 'function') {\n return validator(value);\n }\n\n if (validator && typeof validator === 'object') {\n return new RegExp(validator.regexp, validator?.flags).test(value);\n }\n\n return true;\n}\n\nexport function getTextInputInitialValue({\n name,\n initialValues,\n defaultValue,\n}: {\n name: string;\n initialValues?: FormValues;\n defaultValue?: string | number | readonly string[];\n}): string {\n if (initialValues && initialValues?.[name]) {\n return (initialValues[name] as string).toString();\n }\n\n if (defaultValue && typeof defaultValue === 'string') {\n return defaultValue;\n }\n\n return '';\n}\n","import { FormContext } from '@contexts';\nimport { useResetFormInput } from '@hooks';\nimport { ChopLogicRegExpWithFlags, TextInputValidator } from '@models';\nimport { ChangeEvent, ChangeEventHandler, useCallback, useContext, useState } from 'react';\n\nimport { getTextInputInitialValue, validateTextInputValue } from './TextInput.helpers';\n\nexport function useTextInputController({\n name,\n defaultValue,\n onChange,\n onClear,\n required,\n validator,\n}: {\n name: string;\n required: boolean;\n validator?: ChopLogicRegExpWithFlags | TextInputValidator;\n defaultValue?: string | number | readonly string[];\n onChange?: ChangeEventHandler<HTMLInputElement>;\n onClear?: () => void;\n}) {\n const { onChangeFormInput, initialValues } = useContext(FormContext);\n const initialValue = getTextInputInitialValue({ initialValues, defaultValue, name });\n const [value, setValue] = useState<string>(initialValue);\n const [valid, setValid] = useState<boolean>(true);\n const [passwordShown, setPasswordShown] = useState<boolean>(false);\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const value = event.target.value;\n const valid = validateTextInputValue({ value, required, validator });\n\n setValue(value);\n setValid(valid);\n onChangeFormInput?.({ name, value, valid });\n onChange?.(event);\n };\n\n const handleClear = () => {\n setValue('');\n setValid(true);\n onChangeFormInput?.({ name, value: '', valid: true });\n onClear?.();\n };\n\n const handleReset = useCallback(() => {\n setValue(initialValue);\n setValid(true);\n onChangeFormInput?.({ name, value: initialValue, valid: true });\n }, [name]);\n\n const togglePassword = () => {\n setPasswordShown(!passwordShown);\n };\n\n useResetFormInput(handleReset);\n\n return {\n value,\n valid,\n passwordShown,\n handleChange,\n handleClear,\n togglePassword,\n };\n}\n","import { ErrorMessage, Input, Label } from '@atoms';\nimport { Button } from '@atoms';\nimport { ButtonView, IconName } from '@enums';\nimport { useElementIds } from '@hooks';\nimport { TextInputProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC } from 'react';\n\nimport { useTextInputController } from './TextInput.controller';\nimport styles from './TextInput.module.scss';\n\nconst TextInput: FC<TextInputProps> = ({\n name,\n label,\n errorMessage,\n defaultValue,\n onChange,\n onBlur,\n onFocus,\n onClear,\n validator,\n maxLength,\n id,\n tabIndex,\n placeholder = 'Type here...',\n disabled = false,\n required = false,\n clearable = true,\n readOnly = false,\n autoComplete = 'off',\n type = 'text',\n className,\n ...rest\n}) => {\n const { value, valid, handleChange, handleClear, passwordShown, togglePassword } = useTextInputController({\n defaultValue,\n name,\n onChange,\n onClear,\n required,\n validator,\n });\n const { elementId, errorId } = useElementIds(id);\n const isPasswordButtonVisible = type === 'password';\n const inputClass = getClassName([styles.wrapper, className]);\n\n return (\n <div {...rest} className={inputClass}>\n <Label label={label} required={required} inputId={elementId} />\n <Input\n id={elementId}\n name={name}\n type={passwordShown ? 'text' : type}\n disabled={disabled}\n placeholder={placeholder}\n required={required}\n readOnly={readOnly}\n autoComplete={autoComplete}\n aria-invalid={!valid}\n aria-errormessage={errorId}\n aria-readonly={readOnly}\n value={value}\n onChange={handleChange}\n maxLength={maxLength}\n onBlur={onBlur}\n onFocus={onFocus}\n tabIndex={tabIndex}\n >\n <span>\n {clearable && (\n <Button\n view={ButtonView.Inner}\n onClick={handleClear}\n label={`Clear input for ${label}`}\n icon={IconName.Remove}\n disabled={disabled}\n />\n )}\n {isPasswordButtonVisible && (\n <Button\n onClick={togglePassword}\n view={ButtonView.Inner}\n label='Toggle password visibility'\n icon={passwordShown ? IconName.Hide : IconName.Show}\n disabled={disabled}\n />\n )}\n </span>\n <ErrorMessage errorId={errorId} message={errorMessage} visible={!valid} className={styles.errorMessage} />\n </Input>\n </div>\n );\n};\n\nexport default TextInput;\n","import { AlertMode, IconName } from '@enums';\n\nexport function getAlertTitle(mode: AlertMode, title?: string): string {\n if (title) return title;\n\n switch (mode) {\n case AlertMode.Info:\n return 'For your information';\n case AlertMode.Warning:\n return 'Please pay attention';\n case AlertMode.Error:\n return 'Something went wrong';\n case AlertMode.Success:\n return 'Everything is okay';\n case AlertMode.Help:\n return 'Useful tip';\n default:\n return 'Alert';\n }\n}\n\nexport function getAlertIcon(mode: AlertMode, icon?: IconName): IconName | undefined {\n if (icon) {\n return icon;\n }\n\n switch (mode) {\n case AlertMode.Info:\n return IconName.Info;\n case AlertMode.Warning:\n return IconName.Warning;\n case AlertMode.Error:\n return IconName.Error;\n case AlertMode.Success:\n return IconName.CheckboxChecked;\n case AlertMode.Help:\n return IconName.Help;\n default:\n return;\n }\n}\n","import { Header, Portal } from '@atoms';\nimport { Button } from '@atoms';\nimport { AlertMode, ButtonView, IconName } from '@enums';\nimport { useAutoClose, useIsMounted } from '@hooks';\nimport { AlertProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC } from 'react';\n\nimport { getAlertIcon, getAlertTitle } from './Alert.helpers';\nimport styles from './Alert.module.scss';\n\nconst Alert: FC<AlertProps> = ({\n isOpened,\n onClose,\n title,\n message,\n mode = AlertMode.Info,\n icon,\n autoClose = false,\n autoCloseDelay = 3000,\n ...rest\n}) => {\n const isMounted = useIsMounted(isOpened);\n const isClosing = isMounted && !isOpened;\n\n useAutoClose({\n isOpened,\n onClose,\n autoClose,\n autoCloseDelay,\n });\n\n if (!isMounted) return null;\n\n const alertTitle = getAlertTitle(mode, title);\n const alertTitleIcon = getAlertIcon(mode, icon);\n\n return (\n <Portal>\n <div className={getClassName([styles.wrapper, { [styles.wrapper__closing]: isClosing }])}>\n <div {...rest} className={styles.content}>\n <Button\n icon={IconName.Cancel}\n view={ButtonView.Icon}\n label='Close alert popup'\n onClick={onClose}\n className={styles.content_button}\n />\n <header>\n <Header icon={alertTitleIcon} as='h3'>\n {alertTitle}\n </Header>\n </header>\n <p>{message}</p>\n </div>\n </div>\n </Portal>\n );\n};\n\nexport default Alert;\n","import { Header, Portal } from '@atoms';\nimport { Button } from '@atoms';\nimport { ButtonView, IconName } from '@enums';\nimport { useIsMounted, useKeyPress, useModalFocusTrap } from '@hooks';\nimport { DialogProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC, useRef } from 'react';\n\nimport styles from './Dialog.module.scss';\n\nconst Dialog: FC<DialogProps> = ({ isOpened, onClose, title, children, icon, ...rest }) => {\n const isMounted = useIsMounted(isOpened);\n const isClosing = isMounted && !isOpened;\n\n const modalRef = useRef<HTMLDivElement>(null);\n\n useModalFocusTrap({ modalRef, isOpened });\n useKeyPress({ keyCode: 'Escape', ref: modalRef, onKeyPress: onClose });\n\n if (!isMounted) {\n return null;\n }\n\n return (\n <Portal>\n <div className={getClassName([styles.dialog, { [styles.dialog__closing]: isClosing }])}>\n <div ref={modalRef} role='dialog' aria-modal='true' {...rest} className={styles.layout}>\n <Button\n icon={IconName.Cancel}\n view={ButtonView.Icon}\n label='Close modal window'\n onClick={onClose}\n className={styles.layout_button}\n />\n <header>\n <Header as='h3' icon={icon}>\n {title}\n </Header>\n </header>\n <div>{children}</div>\n </div>\n </div>\n </Portal>\n );\n};\n\nexport default Dialog;\n","import { FormInputParams, FormValidationState, FormValues } from '@models';\n\nexport function getInitialValidationState(data?: FormValues): FormValidationState {\n if (!data) return [];\n\n return Object.keys(data).map((key) => [key, true]);\n}\n\nexport function updateValidationState(state: FormValidationState, params: FormInputParams): FormValidationState {\n if (params?.valid === undefined) return state;\n\n return state.map((item) => {\n if (item[0] !== params.name) return item;\n return [item[0], !!params?.valid];\n });\n}\n\nexport function isFormDataValid(state: FormValidationState): boolean {\n return state.every((item) => item[1]);\n}\n","import { FormInputParams, FormValues } from '@models';\nimport { FormEvent, FormEventHandler, useState } from 'react';\n\nimport { getInitialValidationState, isFormDataValid, updateValidationState } from './Form.helpers';\n\nexport function useFormController({\n initialValues,\n onReset,\n onSubmit,\n onClickSubmit,\n}: {\n initialValues?: FormValues;\n onReset?: FormEventHandler<HTMLFormElement>;\n onSubmit?: FormEventHandler<HTMLFormElement>;\n onClickSubmit?: (data: FormValues) => void;\n}) {\n const [formData, setFormData] = useState(initialValues);\n const [validationState, setValidationState] = useState(getInitialValidationState(initialValues));\n const [resetSignal, setResetSignal] = useState(0);\n\n const handleInputChange = (params: FormInputParams) => {\n const newData = { ...formData, [params.name]: params.value };\n setFormData(newData);\n setValidationState(updateValidationState(validationState, params));\n };\n\n const handleSubmit = (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n\n const uncontrolledData = Object.fromEntries(new FormData(event.target as HTMLFormElement));\n const resultData = { ...uncontrolledData, ...formData };\n\n onSubmit?.(event);\n onClickSubmit?.(resultData);\n };\n\n const handleReset = (event: FormEvent<HTMLFormElement>) => {\n onReset?.(event);\n setFormData(initialValues);\n setResetSignal(resetSignal + 1);\n };\n\n return {\n handleInputChange,\n handleSubmit,\n handleReset,\n resetSignal,\n valid: isFormDataValid(validationState),\n };\n}\n","import { Button } from '@atoms';\nimport { FormContext } from '@contexts';\nimport { ButtonView, IconName } from '@enums';\nimport { FormProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC } from 'react';\n\nimport { useFormController } from './Form.controller';\nimport styles from './Form.module.scss';\n\nconst Form: FC<FormProps> = ({\n children,\n initialValues,\n onReset,\n onSubmit,\n onClickSubmit,\n columns = 1,\n hasReset = true,\n className,\n ...rest\n}) => {\n const { handleInputChange, handleSubmit, handleReset, resetSignal, valid } = useFormController({\n initialValues,\n onReset,\n onSubmit,\n onClickSubmit,\n });\n const columnsNumber = columns <= 6 && columns >= 1 ? columns : 1;\n const formClass = getClassName([styles.form, className]);\n\n return (\n <form onSubmit={handleSubmit} onReset={handleReset} {...rest} className={`${formClass} ${styles[`columns-${columnsNumber}`]}`}>\n <FormContext.Provider value={{ onChangeFormInput: handleInputChange, initialValues, resetSignal }}>\n {children}\n <div className={`${styles.buttons} ${styles[`buttons-${columnsNumber}`]}`}>\n {hasReset && <Button type='reset' text='Reset' icon={IconName.Clear} view={ButtonView.Secondary} />}\n <Button type='submit' text='Submit' icon={IconName.Forward} extended={!hasReset} disabled={!valid} />\n </div>\n </FormContext.Provider>\n </form>\n );\n};\n\nexport default Form;\n","import { GridColumn, GridItem, RenderDataItemCallback } from '@models';\nimport { ReactElement } from 'react';\n\nexport function getGridRowValues({\n item,\n columns,\n renderDataItem,\n}: {\n item: GridItem;\n columns: GridColumn[];\n renderDataItem?: RenderDataItemCallback;\n}): (string | ReactElement)[] {\n const values = [];\n for (const column of columns) {\n let value;\n\n if (renderDataItem && item[column.field]) {\n value = renderDataItem(item, column.field);\n } else if (item[column.field]) {\n value = (item[column.field] as string).toString();\n } else {\n value = '';\n }\n\n values.push(value);\n }\n\n return values;\n}\n","import { FC, ReactElement } from 'react';\n\nimport styles from './GridDataCell.module.scss';\n\nexport const GridDataCell: FC<{ value: ReactElement | string }> = ({ value }) => {\n return <td className={styles.cell}>{value}</td>;\n};\n","import CheckboxCheckedIcon from '@assets/icons/svg/CheckboxCheckedIcon';\nimport CheckboxUncheckedIcon from '@assets/icons/svg/CheckboxUncheckedIcon';\nimport { Label } from '@atoms';\nimport { useElementIds } from '@hooks';\nimport { getClassName } from '@utils';\nimport { FC, InputHTMLAttributes } from 'react';\n\nimport styles from './GridCheckbox.module.scss';\n\ntype Props = InputHTMLAttributes<HTMLInputElement> & {\n label: string;\n};\n\nexport const GridCheckbox: FC<Props> = ({ name, label, disabled, required = false, onChange, checked = false, ...props }) => {\n const { elementId } = useElementIds(props?.id);\n const checkboxClass = getClassName([\n styles.checkbox,\n {\n [styles.checkbox__disabled]: !!disabled,\n [styles.checkbox__checked]: checked,\n },\n ]);\n\n return (\n <div className={checkboxClass}>\n <input\n id={elementId}\n name={name}\n type='checkbox'\n disabled={disabled}\n required={required}\n checked={checked}\n onChange={onChange}\n className={styles.checkbox_input}\n />\n <Label\n label={label}\n required={required}\n inputId={elementId}\n isTextHidden={true}\n iconPosition='left'\n icon={checked ? <CheckboxCheckedIcon /> : <CheckboxUncheckedIcon />}\n />\n </div>\n );\n};\n","import { ChangeEvent, FC } from 'react';\n\nimport { GridCheckbox } from '../checkbox/GridCheckbox';\nimport styles from './SelectGridRowCell.module.scss';\n\ntype Props = {\n rowId: string;\n isRowSelected: boolean;\n selectRowById: (id: string) => void;\n deselectRowById: (id: string) => void;\n disabled?: boolean;\n};\n\nexport const SelectGridRowCell: FC<Props> = ({ rowId, isRowSelected, selectRowById, deselectRowById, disabled }) => {\n const handleSelectById = (e: ChangeEvent<HTMLInputElement>) => {\n const { checked } = e.target;\n if (checked) {\n selectRowById(rowId);\n } else {\n deselectRowById(rowId);\n }\n };\n\n return (\n <td className={styles.cell}>\n <GridCheckbox label='Select row' onChange={handleSelectById} id={`select_row_${rowId}`} checked={isRowSelected} disabled={disabled} />\n </td>\n );\n};\n","import { getClassName } from '@utils';\nimport { FC, ReactElement } from 'react';\n\nimport { GridDataCell } from '../data-cell/GridDataCell';\nimport { SelectGridRowCell } from '../select-grid-row-cell/SelectGridRowCell';\nimport styles from './GridRow.module.scss';\n\ntype Props = {\n rowId: string;\n selectedIds: string[];\n selectRowById: (id: string) => void;\n deselectRowById: (id: string) => void;\n selectable: boolean;\n values: (string | ReactElement)[];\n disabled?: boolean;\n};\n\nexport const GridRow: FC<Props> = ({ rowId, selectRowById, deselectRowById, selectable, values, selectedIds, disabled }) => {\n const selected = selectedIds.includes(rowId);\n\n return (\n <tr className={getClassName([styles.row, { [styles.row__selected]: selected }])}>\n {selectable && (\n <SelectGridRowCell\n rowId={rowId}\n selectRowById={selectRowById}\n deselectRowById={deselectRowById}\n isRowSelected={selected}\n disabled={disabled}\n />\n )}\n {values.map((value, index) => (\n <GridDataCell key={`row_${index}`} value={value} />\n ))}\n </tr>\n );\n};\n","import { GridColumn, GridItem, RenderDataItemCallback } from '@models';\nimport { getGridRowValues } from '@organisms/grid/Grid.helpers';\nimport { FC } from 'react';\n\nimport { GridRow } from '../grid-row/GridRow';\nimport styles from './GridBody.module.scss';\n\ntype Props = {\n data: GridItem[];\n columns: GridColumn[];\n selectedIds: string[];\n selectRowById: (id: string) => void;\n deselectRowById: (id: string) => void;\n renderDataItem?: RenderDataItemCallback;\n selectable: boolean;\n};\n\nexport const GridBody: FC<Props> = ({ selectRowById, deselectRowById, renderDataItem, selectedIds, selectable, data, columns }) => {\n return (\n <tbody className={styles.body}>\n {data.map((item) => {\n const values = getGridRowValues({ item, columns, renderDataItem });\n return (\n <GridRow\n key={item.id}\n rowId={item.id}\n disabled={item?.disabled}\n selectRowById={selectRowById}\n deselectRowById={deselectRowById}\n selectable={selectable}\n values={values}\n selectedIds={selectedIds}\n />\n );\n })}\n </tbody>\n );\n};\n","import { GridColumn } from '@models';\nimport { getClassName } from '@utils';\nimport { FC } from 'react';\n\nimport styles from './GridColumnGroup.module.scss';\n\nexport const GridColumnGroup: FC<{ columns: GridColumn[]; selectable: boolean }> = ({ columns, selectable }) => {\n return (\n <colgroup>\n {selectable && <col className={getClassName([styles.column, styles.column__first])} />}\n {columns.map((column, index) => (\n <col\n key={column?.title}\n className={getClassName([\n styles.column,\n column?.className,\n {\n [styles.column__first]: index === 0 && !selectable,\n [styles.column__highlighted]: !!column?.highlighted,\n },\n ])}\n />\n ))}\n </colgroup>\n );\n};\n","import { useElementIds } from '@hooks';\nimport { GridItem } from '@models';\nimport { useState } from 'react';\n\nexport const useGridController = ({ data, id, onSelect }: { data: GridItem[]; id?: string; onSelect?: (ids: string[]) => void }) => {\n const { elementId } = useElementIds(id);\n const [selectedIds, setSelectedIds] = useState<string[]>([]);\n const allIds = data.map((item) => item.id);\n const isAllSelected = allIds.length === selectedIds.length;\n const isAllCheckboxDisabled = data.some((item) => item?.disabled);\n\n const handleSelect = (ids: string[]) => {\n setSelectedIds(ids);\n onSelect?.(ids);\n };\n\n const handleSelectAll = () => {\n handleSelect(allIds);\n };\n\n const handleDeselectAll = () => {\n handleSelect([]);\n };\n\n const handleSelectRowById = (id: string) => {\n const newIds = [...selectedIds, id];\n handleSelect(newIds);\n };\n\n const handleDeselectRowById = (id: string) => {\n const newIds = selectedIds.filter((item) => item !== id);\n handleSelect(newIds);\n };\n return {\n elementId,\n isAllSelected,\n isAllCheckboxDisabled,\n selectedIds,\n handleSelectAll,\n handleDeselectAll,\n handleSelectRowById,\n handleDeselectRowById,\n };\n};\n","import { FC } from 'react';\n\nimport styles from './HeaderCell.module.scss';\n\nexport const GridHeaderCell: FC<{ title?: string; component?: React.ReactElement }> = ({ title, component }) => {\n return <th className={styles.headerCell}>{component ?? title ?? ''}</th>;\n};\n","import { ChangeEvent, FC } from 'react';\n\nimport { GridCheckbox } from '../checkbox/GridCheckbox';\nimport styles from './SelectAllGridRowsCell.module.scss';\n\ntype Props = {\n gridId: string;\n isAllSelected: boolean;\n selectAll: () => void;\n deselectAll: () => void;\n disabled?: boolean;\n};\n\nexport const SelectAllGridRowsCell: FC<Props> = ({ gridId, isAllSelected, selectAll, deselectAll, disabled }) => {\n const handleSelectAll = (e: ChangeEvent<HTMLInputElement>) => {\n const { checked } = e.target;\n if (checked) {\n selectAll();\n } else {\n deselectAll();\n }\n };\n\n return (\n <th className={styles.headerCell}>\n <GridCheckbox\n label='Select all rows'\n onChange={handleSelectAll}\n id={`select_all_${gridId}`}\n checked={isAllSelected}\n disabled={disabled}\n />\n </th>\n );\n};\n","import { GridColumn } from '@models';\nimport { FC } from 'react';\n\nimport { GridHeaderCell } from '../header-cell/HeaderCell';\nimport { SelectAllGridRowsCell } from '../select-all-grid-rows-cell/SelectAllGridRowsCell';\nimport styles from './GridHead.module.scss';\n\ntype GridHeadProps = {\n columns: GridColumn[];\n gridId: string;\n selectable: boolean;\n isAllSelected: boolean;\n isAllCheckboxDisabled?: boolean;\n selectAll: () => void;\n deselectAll: () => void;\n};\n\nexport const GridHead: FC<GridHeadProps> = ({\n columns,\n gridId,\n selectAll,\n deselectAll,\n selectable,\n isAllSelected,\n isAllCheckboxDisabled = false,\n}) => {\n return (\n <thead className={styles.head}>\n <tr className={styles.head_row}>\n {selectable && (\n <SelectAllGridRowsCell\n isAllSelected={isAllSelected}\n disabled={isAllCheckboxDisabled}\n gridId={gridId}\n selectAll={selectAll}\n deselectAll={deselectAll}\n />\n )}\n {columns.map((column) => (\n <GridHeaderCell key={`${column.title}_${gridId}`} title={column.title} component={column.component} />\n ))}\n </tr>\n </thead>\n );\n};\n","import { GridProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC } from 'react';\n\nimport { GridBody } from './body/GridBody';\nimport { GridColumnGroup } from './column-group/GridColumnGroup';\nimport { useGridController } from './Grid.controller';\nimport styles from './Grid.module.scss';\nimport { GridHead } from './head/GridHead';\n\nconst Grid: FC<GridProps> = ({ columns, data, id, onSelect, renderDataItem, caption, selectable = false, className, ...rest }) => {\n const {\n elementId,\n handleSelectAll,\n handleDeselectAll,\n isAllCheckboxDisabled,\n isAllSelected,\n handleDeselectRowById,\n handleSelectRowById,\n selectedIds,\n } = useGridController({ id, data, onSelect });\n\n return (\n <table {...rest} className={getClassName([styles.grid, className])}>\n {caption && <caption className={styles.grid_caption}>{caption}</caption>}\n <GridColumnGroup columns={columns} selectable={selectable} />\n <GridHead\n gridId={elementId}\n columns={columns}\n selectable={selectable}\n selectAll={handleSelectAll}\n deselectAll={handleDeselectAll}\n isAllSelected={isAllSelected}\n isAllCheckboxDisabled={isAllCheckboxDisabled}\n />\n <GridBody\n columns={columns}\n data={data}\n selectable={selectable}\n selectRowById={handleSelectRowById}\n deselectRowById={handleDeselectRowById}\n selectedIds={selectedIds}\n renderDataItem={renderDataItem}\n />\n </table>\n );\n};\n\nexport default Grid;\n","import { Icon } from '@atoms';\nimport { MenuItem } from '@models';\nimport { ReactElement } from 'react';\n\nimport styles from './MenuLeaf.module.scss';\n\nexport const MenuLeaf = ({ item }: { item: MenuItem }): ReactElement => {\n const { icon, link, label, onFocus, onClick, onHover } = item;\n\n const leafContent = link ? (\n <a href={link} target='_blank' rel='noreferrer'>\n {label}\n </a>\n ) : (\n <span>{label}</span>\n );\n\n return (\n <li className={styles.menuLeaf} tabIndex={0} role='menuitem' onFocus={onFocus} onClick={onClick} onMouseOver={onHover}>\n <Icon name={icon} />\n {leafContent}\n </li>\n );\n};\n","import { Icon } from '@atoms';\nimport { IconName, OrientationMode } from '@enums';\nimport { useClickOutside } from '@hooks';\nimport { MenuItem } from '@models';\nimport { FC, KeyboardEvent, PropsWithChildren, useRef } from 'react';\n\nimport styles from './SubMenu.module.scss';\n\ntype Props = PropsWithChildren & {\n item: MenuItem;\n isSubMenuOpened: boolean;\n mode: OrientationMode;\n toggleSubMenu: () => void;\n closeSubMenu: () => void;\n openSubMenu: () => void;\n openedOn?: 'hover' | 'click';\n};\n\nexport const SubMenu: FC<Props> = ({ item, isSubMenuOpened, toggleSubMenu, closeSubMenu, openSubMenu, openedOn, mode, children }) => {\n const { icon, link, label } = item;\n const ref = useRef(null);\n const dependentRef = useRef(null);\n\n const itemContent = link ? (\n <a href={link} target='_blank' rel='noreferrer'>\n <Icon name={icon} />\n {label}\n </a>\n ) : (\n <span>\n <Icon name={icon} />\n {label}\n </span>\n );\n\n const handleKeyDown = (e: KeyboardEvent<HTMLLIElement>) => {\n e.stopPropagation();\n if (e.key === ' ') {\n toggleSubMenu();\n }\n };\n\n const onClickOutsideHandler = () => {\n if (mode === OrientationMode.Vertical) return;\n closeSubMenu();\n };\n\n useClickOutside({ ref, dependentRef, onClickOutsideHandler });\n\n return (\n <li\n className={styles.subMenu}\n tabIndex={0}\n role='menuitem'\n aria-haspopup='true'\n aria-expanded={isSubMenuOpened}\n onKeyDown={handleKeyDown}\n onMouseEnter={openedOn === 'hover' ? openSubMenu : undefined}\n onMouseLeave={openedOn === 'hover' ? closeSubMenu : undefined}\n ref={ref}\n >\n <span className={styles.text} ref={dependentRef} onClick={toggleSubMenu}>\n {itemContent}\n <Icon name={isSubMenuOpened ? IconName.ArrowUp : IconName.ArrowDown} />\n </span>\n {isSubMenuOpened && children}\n </li>\n );\n};\n","import { OrientationMode } from '@enums';\nimport { MenuItem } from '@models';\nimport { getClassName } from '@utils';\nimport { FC, PropsWithChildren, useState } from 'react';\n\nimport { MenuLeaf } from '../leaf/MenuLeaf';\nimport { SubMenu } from '../sub-menu/SubMenu';\nimport styles from './MenuListItem.module.scss';\n\ntype Props = PropsWithChildren & {\n item: MenuItem;\n mode: OrientationMode;\n openedOn?: 'hover' | 'click';\n};\n\nexport const MenuListItem: FC<Props> = ({ item, mode, openedOn }) => {\n const isLeaf = !item?.nestedItems?.length;\n const [isSubMenuOpened, setIsSubMenuOpened] = useState(false);\n const subMenuBarClass = getClassName([styles.subMenuBar, { [styles.subMenuBar__horizontal]: mode === OrientationMode.Horizontal }]);\n\n if (isLeaf) {\n return <MenuLeaf item={item} />;\n }\n\n const toggleSubMenu = () => {\n setIsSubMenuOpened(!isSubMenuOpened);\n };\n\n const closeSubMenu = () => {\n setIsSubMenuOpened(false);\n };\n\n const openSubMenu = () => {\n setIsSubMenuOpened(true);\n };\n\n return (\n <SubMenu\n item={item}\n isSubMenuOpened={isSubMenuOpened}\n toggleSubMenu={toggleSubMenu}\n closeSubMenu={closeSubMenu}\n openSubMenu={openSubMenu}\n mode={mode}\n openedOn={openedOn}\n >\n <ul className={subMenuBarClass} role='menu' aria-label={item.label}>\n {item?.nestedItems?.map((child) => <MenuListItem item={child} key={child.id} mode={mode} openedOn={openedOn} />)}\n </ul>\n </SubMenu>\n );\n};\n","import { OrientationMode } from '@enums';\nimport { MenuProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC } from 'react';\n\nimport { MenuListItem } from './list-item/MenuListItem';\nimport styles from './Menu.module.scss';\n\nconst Menu: FC<MenuProps> = ({ items = [], mode = OrientationMode.Vertical, openedOn = 'click', className, ...rest }) => {\n const menuClass = getClassName([styles.menuBar, className, { [styles.menuBar__vertical]: mode === OrientationMode.Vertical }]);\n\n return (\n <ul {...rest} role='menubar' className={menuClass}>\n {items.map((item) => (\n <MenuListItem key={item.id} item={item} mode={mode} openedOn={openedOn} />\n ))}\n </ul>\n );\n};\n\nexport default Menu;\n","import { ChopLogicTabItem } from '@models';\nimport { FC, ReactElement } from 'react';\n\nimport styles from './TabContent.module.scss';\n\nexport const TabContent: FC<{\n tabs: ChopLogicTabItem[];\n selectedTabId: string;\n}> = ({ tabs, selectedTabId }): ReactElement => {\n const content = tabs.find((item) => item.id === selectedTabId)?.content;\n const contentId = `tabpanel_${selectedTabId}`;\n\n return (\n <div role='tabpanel' aria-labelledby={selectedTabId} id={contentId} className={styles.tabContent}>\n {content}\n </div>\n );\n};\n","import { OrientationMode } from '@enums';\nimport { getClassName } from '@utils';\nimport { FC } from 'react';\n\nimport styles from './TabButton.module.scss';\n\ntype Props = {\n title: string;\n tabId: string;\n onTabSelect: (id: string) => void;\n tabPanelId: string;\n isSelected: boolean;\n mode: OrientationMode;\n isDisabled?: boolean;\n};\n\nexport const TabButton: FC<Props> = ({ title, onTabSelect, tabId, isSelected, isDisabled = false, tabPanelId, mode }) => {\n const buttonClass = getClassName([\n styles.tabButton,\n {\n [styles.tabButton__disabled]: isDisabled,\n [styles.tabButton__vertical]: mode === OrientationMode.Vertical,\n [styles.tabButton__selected]: isSelected,\n },\n ]);\n\n return (\n <button\n role='tab'\n id={tabId}\n onClick={() => onTabSelect(tabId)}\n aria-selected={isSelected}\n aria-controls={tabPanelId}\n className={buttonClass}\n >\n {title}\n </button>\n );\n};\n","import { OrientationMode } from '@enums';\nimport { ChopLogicTabItem } from '@models';\nimport { getClassName, moveFocusOnElementById } from '@utils';\nimport { FC, KeyboardEvent } from 'react';\n\nimport { TabButton } from '../button/TabButton';\nimport styles from './TabList.module.scss';\n\ntype ChopLogicTabListProps = {\n tabs: ChopLogicTabItem[];\n tabIds: string[];\n onTabSelect: (id: string) => void;\n selectedTabId: string;\n tabPanelIds: string[];\n mode: OrientationMode;\n};\n\nexport const TabList: FC<ChopLogicTabListProps> = ({ tabs, onTabSelect, selectedTabId, tabPanelIds, mode, tabIds }) => {\n const listClass = getClassName([styles.tabList, { [styles.tabList__vertical]: mode === OrientationMode.Vertical }]);\n\n const handleListKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n const currentFocusedTabIndex = tabIds.findIndex((id) => id === selectedTabId);\n\n switch (e.key) {\n case 'ArrowLeft':\n case 'ArrowUp': {\n e.preventDefault();\n if (e.key === 'ArrowUp' && mode === OrientationMode.Horizontal) break;\n if (e.key === 'ArrowLeft' && mode === OrientationMode.Vertical) break;\n\n const previousTabIndex = currentFocusedTabIndex - 1 >= 0 ? currentFocusedTabIndex - 1 : tabIds.length - 1;\n const previousTabId = tabIds[previousTabIndex];\n if (previousTabId) {\n moveFocusOnElementById(previousTabId);\n onTabSelect(previousTabId);\n }\n break;\n }\n case 'ArrowRight':\n case 'ArrowDown': {\n e.preventDefault();\n if (e.key === 'ArrowDown' && mode === OrientationMode.Horizontal) break;\n if (e.key === 'ArrowRight' && mode === OrientationMode.Vertical) break;\n\n const nextTabIndex = currentFocusedTabIndex === tabIds.length - 1 ? 0 : currentFocusedTabIndex + 1;\n const nextTabId = tabIds[nextTabIndex];\n if (nextTabId) {\n moveFocusOnElementById(nextTabId);\n onTabSelect(nextTabId);\n }\n break;\n }\n default:\n break;\n }\n };\n\n return (\n <div role='tablist' onKeyDown={handleListKeyDown} className={listClass}>\n {tabs.map(({ id, title, disabled }, index) => {\n return (\n <TabButton\n key={id}\n title={title}\n onTabSelect={onTabSelect}\n tabId={id}\n isSelected={id === selectedTabId}\n isDisabled={disabled}\n tabPanelId={tabPanelIds[index]}\n mode={mode}\n />\n );\n })}\n </div>\n );\n};\n","import { OrientationMode } from '@enums';\nimport { TabsProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC, useState } from 'react';\n\nimport { TabContent, TabList } from './__elements__';\nimport styles from './Tabs.module.scss';\n\nconst Tabs: FC<TabsProps> = ({ tabs, defaultTabId, mode = OrientationMode.Horizontal, className, ...rest }) => {\n const tabIds = tabs.map((item) => item.id);\n const tabPanelIds = tabIds.map((id) => `tabpanel_${id}`);\n const defaultId = defaultTabId && tabIds.includes(defaultTabId) ? defaultTabId : tabIds[0];\n const [selectedTabId, setSelectedTabId] = useState(defaultId);\n const tabsClass = getClassName([styles.tabs, className, { [styles.tabs__vertical]: mode === OrientationMode.Vertical }]);\n\n const handleTabSelect = (id: string) => {\n setSelectedTabId(id);\n };\n\n return (\n <div {...rest} className={tabsClass}>\n <TabList\n tabs={tabs}\n selectedTabId={selectedTabId}\n tabPanelIds={tabPanelIds}\n onTabSelect={handleTabSelect}\n mode={mode}\n tabIds={tabIds}\n />\n <TabContent tabs={tabs} selectedTabId={selectedTabId} />\n </div>\n );\n};\n\nexport default Tabs;\n"],"names":["REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","reactJsxRuntime_production","getComponentNameFromType","REACT_CLIENT_REFERENCE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","x","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","e","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getTaskName","name","getOwner","dispatcher","ReactSharedInternals","UnknownOwner","hasValidKey","hasOwnProperty","getter","defineKeyPropWarningGetter","props","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","self","source","owner","debugStack","debugTask","jsxDEVImpl","isStaticChildren","children","isArrayImpl","validateChildKeys","keys","k","didWarnAboutKeySpread","node","React","require$$0","createTask","callStackForError","unknownOwnerDebugStack","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","jsxRuntimeModule","require$$1","AlertMode","ButtonView","IconName","LoaderView","OrientationMode","ThemeMode","TooltipContainer","withTooltip","Component","_a","_b","tooltip","visibleOn","__objRest","jsx","Tooltip","__spreadValues","getClassName","input","item","trueKeys","moveFocusOnElementById","id","element","handleDropdownListKeyPress","options","onClose","focusedId","currentFocusIndex","previousOptionIndex","previousValue","nextOptionIndex","nextValue","IconButton","className","rest","__spreadProps","styles","InnerButton","onClick","label","icon","disabled","Icon","PrimaryButton","jsxs","SecondaryButton","ButtonSelector","text","extended","view","extendedClass","Button","EditView","multiline","placeholder","onChange","onBlur","onKeyDown","inputRef","InputComponent","handleChange","useCallback","event","ReadView","handleKeyDown","useEditModeState","controlledEditMode","readOnly","isEditMode","setIsEditMode","useState","isControlled","useInputFocus","ref","editMode","autoSelectTextOnEditMode","useEffect","useValueState","internalValue","setInternalValue","newValue","EditableText","useRef","enterEditMode","exitEditMode","updateValue","commitValue","resetValue","handleClick","handleBlur","containerClass","ErrorMessage","errorId","testId","message","visible","errorClass","Header","as","HeaderTag","headerClass","ArrowDownIcon","title","ArrowUpIcon","BackIcon","CancelIcon","CheckboxCheckedIcon","CheckboxUncheckedIcon","CheckMarkIcon","ChevronDownIcon","ChevronLeftIcon","ChevronRightIcon","ChevronUpIcon","ClearIcon","CopyIcon","CutIcon","DeleteIcon","DownloadIcon","ErrorIcon","ForwardIcon","GraduateIcon","HelpIcon","HideIcon","HomeIcon","InfoIcon","LoginIcon","PasteIcon","QuestionIcon","RemoveIcon","SaveIcon","ShowIcon","UploadIcon","WarningIcon","IconDictionary","iconClass","Input","Label","required","inputId","iconPosition","isTextHidden","isLeftIconVisible","isRightIconVisible","Loader","Arrow","Brackets","Circle","Dots","Filler","Pulse","Linear","Rotation","Square","Portal","container","ReactDOM","useAutoClose","isOpened","autoClose","autoCloseDelay","timer","FormContext","createContext","ThemeContext","ThemeProvider","injectedMode","mode","setMode","useChopLogicTheme","useContext","useClickOutside","onClickOutsideHandler","dependentRef","handleClickOutside","isOutsideRef","isOutsideDependentRef","useContainerDimensions","isVisible","dimensions","setDimensions","useElementIds","randomId","useId","elementId","dropdownId","useIsMounted","delay","isMounted","setIsMounted","useIsOverflow","dimension","isOverflow","setIsOverflow","checkIsOverflow","current","scrollWidth","clientWidth","scrollHeight","clientHeight","useKeyPress","keyCode","onKeyPress","handleKeyPress","useModalFocusTrap","modalRef","modalElement","focusableElements","firstElement","lastElement","handleTabKeyPress","useResetFormInput","onReset","resetSignal","getWindowDimensions","width","height","useWindowDimensions","windowDimensions","setWindowDimensions","handleResize","useTooltipPosition","wrapperRef","tooltipRef","spacing","position","setPosition","tooltipWidth","tooltipHeight","windowWidth","windowHeight","rect","top","left","useTooltipController","setIsOpened","closeTooltip","openTooltip","toggleTooltip","handleContextMenu","tooltipContent","style","containerTag","ContainerComponent","tooltipClass","getCheckboxInitialValue","defaultChecked","initialValues","useCheckboxController","onChangeFormInput","initialValue","isChecked","setIsChecked","checked","handleReset","Checkbox","noLabel","checkboxClass","MultiSelectCombobox","opened","comboboxId","values","selectedLabels","selectedIds","selectedValues","getMultiSelectInitialValues","defaultValue","option","selected","getMultiSelectFormValues","getMultiSelectUpdatedValues","targetItem","useMultiSelectController","setOpened","initialOptions","setValues","handleClose","handleToggle","handleSelect","newValues","MultiSelectOption","onSelect","optionClass","MultiSelectDropdown","dropdownClass","MultiSelect","multiSelectClass","getNumericInputInitialValue","validateNumericInputValue","validator","maxValue","minValue","useNumericInputController","onSpinButtonClick","min","max","step","setValue","valid","setValid","increment","decrement","NumericInput","errorMessage","onFocus","tabIndex","hasSpinButtons","inputClass","SelectCombobox","SelectOption","onClear","handleOptionSelect","SelectDropdown","getSelectInitialValue","valueId","useSelectController","setSelected","handleClear","Select","selectClass","validateTextInputValue","getTextInputInitialValue","useTextInputController","passwordShown","setPasswordShown","togglePassword","TextInput","maxLength","clearable","autoComplete","isPasswordButtonVisible","getAlertTitle","getAlertIcon","Alert","isClosing","alertTitle","alertTitleIcon","Dialog","getInitialValidationState","data","updateValidationState","state","params","isFormDataValid","useFormController","onSubmit","onClickSubmit","formData","setFormData","validationState","setValidationState","setResetSignal","newData","uncontrolledData","resultData","Form","columns","hasReset","handleInputChange","handleSubmit","columnsNumber","formClass","getGridRowValues","renderDataItem","column","GridDataCell","GridCheckbox","SelectGridRowCell","rowId","isRowSelected","selectRowById","deselectRowById","handleSelectById","GridRow","selectable","index","GridBody","GridColumnGroup","useGridController","setSelectedIds","allIds","isAllSelected","isAllCheckboxDisabled","ids","newIds","GridHeaderCell","component","SelectAllGridRowsCell","gridId","selectAll","deselectAll","handleSelectAll","GridHead","Grid","caption","handleDeselectAll","handleDeselectRowById","handleSelectRowById","MenuLeaf","link","onHover","leafContent","SubMenu","isSubMenuOpened","toggleSubMenu","closeSubMenu","openSubMenu","openedOn","itemContent","MenuListItem","isLeaf","setIsSubMenuOpened","subMenuBarClass","child","Menu","items","menuClass","TabContent","tabs","selectedTabId","content","contentId","TabButton","onTabSelect","tabId","isSelected","isDisabled","tabPanelId","buttonClass","TabList","tabPanelIds","tabIds","listClass","handleListKeyDown","currentFocusedTabIndex","previousTabIndex","previousTabId","nextTabIndex","nextTabId","Tabs","defaultTabId","defaultId","setSelectedTabId","tabsClass","handleTabSelect"],"mappings":"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","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"index.es.js","sources":["../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../src/enums/alert-mode.ts","../src/enums/button-view.ts","../src/enums/icon-name.ts","../src/enums/loader-view.ts","../src/enums/orientation-mode.ts","../src/enums/theme-mode.ts","../src/enums/tooltip-container.ts","../src/hocs/with-tooltip/with-tooltip.tsx","../src/utils/get-class-name.ts","../src/utils/move-focus-on-element-by-id.ts","../src/utils/handle-dropdown-list-key-press.ts","../src/atoms/button/icon-button/IconButton.tsx","../src/atoms/button/inner-button/InnerButton.tsx","../src/atoms/button/primary-button/PrimaryButton.tsx","../src/atoms/button/secondary-button/SecondaryButton.tsx","../src/atoms/button/Button.tsx","../src/atoms/editable-text/EditView.tsx","../src/atoms/editable-text/ReadView.tsx","../src/atoms/editable-text/useEditModeState.ts","../src/atoms/editable-text/useInputFocus.ts","../src/atoms/editable-text/useValueState.ts","../src/atoms/editable-text/EditableText.tsx","../src/atoms/error-message/ErrorMessage.tsx","../src/atoms/header/Header.tsx","../src/assets/icons/svg/ArrowDownIcon.tsx","../src/assets/icons/svg/ArrowUpIcon.tsx","../src/assets/icons/svg/BackIcon.tsx","../src/assets/icons/svg/CancelIcon.tsx","../src/assets/icons/svg/CheckboxCheckedIcon.tsx","../src/assets/icons/svg/CheckboxUncheckedIcon.tsx","../src/assets/icons/svg/CheckMarkIcon.tsx","../src/assets/icons/svg/ChevronDownIcon.tsx","../src/assets/icons/svg/ChevronLeftIcon.tsx","../src/assets/icons/svg/ChevronRightIcon.tsx","../src/assets/icons/svg/ChevronUpIcon.tsx","../src/assets/icons/svg/ClearIcon.tsx","../src/assets/icons/svg/CopyIcon.tsx","../src/assets/icons/svg/CutIcon.tsx","../src/assets/icons/svg/DeleteIcon.tsx","../src/assets/icons/svg/DownloadIcon.tsx","../src/assets/icons/svg/EditIcon.tsx","../src/assets/icons/svg/ErrorIcon.tsx","../src/assets/icons/svg/ForwardIcon.tsx","../src/assets/icons/svg/GraduateIcon.tsx","../src/assets/icons/svg/HelpIcon.tsx","../src/assets/icons/svg/HideIcon.tsx","../src/assets/icons/svg/HomeIcon.tsx","../src/assets/icons/svg/InfoIcon.tsx","../src/assets/icons/svg/LoginIcon.tsx","../src/assets/icons/svg/PasteIcon.tsx","../src/assets/icons/svg/PlusCircle.tsx","../src/assets/icons/svg/QuestionIcon.tsx","../src/assets/icons/svg/RemoveIcon.tsx","../src/assets/icons/svg/SaveIcon.tsx","../src/assets/icons/svg/SearchIcon.tsx","../src/assets/icons/svg/ShowIcon.tsx","../src/assets/icons/svg/UploadIcon.tsx","../src/assets/icons/svg/WarningIcon.tsx","../src/assets/icons/index.tsx","../src/atoms/icon/Icon.tsx","../src/atoms/input/Input.tsx","../src/atoms/label/Label.tsx","../src/atoms/loader/Loader.tsx","../src/atoms/portal/Portal.tsx","../src/hooks/use-auto-close/use-auto-close.ts","../src/hooks/use-click-outside/use-click-outside.ts","../src/hooks/use-container-dimensions/use-container-dimensions.ts","../src/hooks/use-debounce/use-debounce.ts","../src/hooks/use-element-ids/use-element-ids.ts","../src/hooks/use-is-mounted/use-is-mounted.ts","../src/hooks/use-is-overflow/use-is-overflow.ts","../src/hooks/use-key-press/use-key-press.ts","../src/hooks/use-modal-focus-trap/use-modal-focus-trap.ts","../src/contexts/form/FormContext.tsx","../src/contexts/theme/ThemeContext.ts","../src/contexts/theme/ThemeProvider.tsx","../src/hooks/use-reset-form-input/use-reset-form-input.ts","../src/hooks/use-theme/use-chop-logic-theme.ts","../src/hooks/use-window-dimensions/use-window-dimensions.ts","../src/hooks/use-tooltip-position/use-tooltip-position.ts","../src/atoms/tooltip/Tooltip.controller.ts","../src/atoms/tooltip/Tooltip.tsx","../src/molecules/alert/Alert.helpers.tsx","../src/molecules/alert/Alert.tsx","../src/molecules/checkbox/Checkbox.helpers.ts","../src/molecules/checkbox/Checkbox.controller.ts","../src/molecules/checkbox/Checkbox.tsx","../src/molecules/multi-select/MultiSelect.Combobox.tsx","../src/molecules/multi-select/MultiSelect.helpers.ts","../src/molecules/multi-select/MultiSelect.controller.ts","../src/molecules/multi-select/Option.tsx","../src/molecules/multi-select/MultiSelect.Dropdown.tsx","../src/molecules/multi-select/MultiSelect.tsx","../src/molecules/numeric-input/NumericInput.helpers.ts","../src/molecules/numeric-input/NumericInput.controller.ts","../src/molecules/numeric-input/NumericInput.tsx","../src/molecules/select/combobox/Combobox.tsx","../src/molecules/select/option/Option.tsx","../src/molecules/select/dropdown/Dropdown.tsx","../src/molecules/select/Select.helpers.ts","../src/molecules/select/Select.controller.ts","../src/molecules/select/Select.tsx","../src/molecules/text-input/TextInput.helpers.ts","../src/molecules/text-input/TextInput.controller.ts","../src/molecules/text-input/TextInput.tsx","../src/organisms/dialog/Dialog.tsx","../src/organisms/form/Form.helpers.ts","../src/organisms/form/Form.controller.ts","../src/organisms/form/Form.tsx","../src/organisms/grid/Grid.helpers.ts","../src/organisms/grid/data-cell/GridDataCell.tsx","../src/organisms/grid/checkbox/GridCheckbox.tsx","../src/organisms/grid/select-grid-row-cell/SelectGridRowCell.tsx","../src/organisms/grid/grid-row/GridRow.tsx","../src/organisms/grid/body/GridBody.tsx","../src/organisms/grid/column-group/GridColumnGroup.tsx","../src/organisms/grid/Grid.controller.ts","../src/organisms/grid/header-cell/HeaderCell.tsx","../src/organisms/grid/select-all-grid-rows-cell/SelectAllGridRowsCell.tsx","../src/organisms/grid/head/GridHead.tsx","../src/organisms/grid/Grid.tsx","../src/organisms/menu/leaf/MenuLeaf.tsx","../src/organisms/menu/sub-menu/SubMenu.tsx","../src/organisms/menu/list-item/MenuListItem.tsx","../src/organisms/menu/Menu.tsx","../src/organisms/tabs/content/TabContent.tsx","../src/organisms/tabs/edit-input/TabEditInput.tsx","../src/organisms/tabs/button/TabButton.tsx","../src/organisms/tabs/list/TabList.tsx","../src/organisms/tabs/Tabs.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(\n type,\n key,\n self,\n source,\n owner,\n props,\n debugStack,\n debugTask\n ) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n self,\n source,\n getOwner(),\n maybeKey,\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_ELEMENT_TYPE &&\n node._store &&\n (node._store.validated = 1);\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n \"react-stack-bottom-frame\": function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React[\"react-stack-bottom-frame\"].bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","export enum AlertMode {\n Success = 'success',\n Error = 'error',\n Warning = 'warning',\n Info = 'info',\n Help = 'help',\n}\n","export enum ButtonView {\n Primary = 'primary',\n Secondary = 'secondary',\n Icon = 'icon',\n Inner = 'inner',\n}\n","export enum IconName {\n ArrowDown = 'arrow-down',\n ArrowUp = 'arrow-up',\n Back = 'back',\n Cancel = 'cancel',\n CheckboxChecked = 'checkbox-checked',\n CheckboxUnchecked = 'checkbox-unchecked',\n CheckMark = 'check-mark',\n ChevronDown = 'chevron-down',\n ChevronLeft = 'chevron-left',\n ChevronRight = 'chevron-right',\n ChevronUp = 'chevron-up',\n Clear = 'clear',\n Copy = 'copy',\n Cut = 'cut',\n Delete = 'delete',\n Download = 'download',\n Edit = 'edit',\n Error = 'error',\n Forward = 'forward',\n Graduate = 'graduate',\n Help = 'help',\n Hide = 'hide',\n Home = 'home',\n Info = 'info',\n Login = 'login',\n Paste = 'paste',\n PlusCircle = 'plus-circle',\n Question = 'question',\n Save = 'save',\n Search = 'search',\n Show = 'show',\n Upload = 'upload',\n Warning = 'warning',\n Remove = 'remove',\n}\n","export enum LoaderView {\n Dots = 'dots',\n Brackets = 'brackets',\n Linear = 'linear',\n Square = 'square',\n Circle = 'circle',\n Pulse = 'pulse',\n Arrow = 'arrow',\n Filler = 'filler',\n Rotation = 'rotation',\n}\n","export enum OrientationMode {\n Vertical = 'vertical',\n Horizontal = 'horizontal',\n}\n","export enum ThemeMode {\n Light = 'cl-components-light-theme',\n Dark = 'cl-components-dark-theme',\n}\n","export enum TooltipContainer {\n Span = 'span',\n Div = 'div',\n P = 'p',\n Strong = 'strong',\n Em = 'em',\n}\n","import { Tooltip } from '@atoms';\nimport { ComponentType, FC } from 'react';\n\ntype WithTooltipProps = {\n tooltip?: string;\n visibleOn?: 'hover' | 'click' | 'focus' | 'contextmenu';\n};\n\nexport function withTooltip<P extends object>(Component: ComponentType<P>): FC<P & WithTooltipProps> {\n return ({ tooltip, visibleOn, ...props }: WithTooltipProps) =>\n tooltip?.length ? (\n <Tooltip tooltipContent={tooltip} visibleOn={visibleOn}>\n <Component {...(props as P)} />\n </Tooltip>\n ) : (\n <Component {...(props as P)} />\n );\n}\n","type ClassNameInput =\n | string\n | {\n [key in string]: boolean;\n }\n | undefined\n | null;\n\nexport function getClassName(input: ClassNameInput[]): string {\n const names = input\n .map((item) => {\n if (typeof item === 'string') {\n return item.trim();\n }\n if (typeof item === 'object') {\n const trueKeys = [];\n for (const key in item) {\n if (item[key]) {\n trueKeys.push(key.trim());\n }\n }\n\n return trueKeys.join(' ');\n }\n })\n .filter((item) => !!item);\n\n return names.join(' ');\n}\n","export function moveFocusOnElementById(id: string) {\n const element = document.getElementById(id);\n\n if (element) element.focus();\n}\n","import { SelectValue } from '@models';\nimport { KeyboardEvent } from 'react';\n\nimport { moveFocusOnElementById } from './move-focus-on-element-by-id';\n\nexport function handleDropdownListKeyPress({\n e,\n options,\n onClose,\n}: {\n e: KeyboardEvent<HTMLUListElement>;\n options: SelectValue[];\n onClose: () => void;\n}) {\n let focusedId: string = '';\n options.forEach((value) => {\n const element = document.getElementById(value.id);\n if (element === document.activeElement) {\n focusedId = value.id;\n }\n });\n\n const currentFocusIndex = options.findIndex((value) => value.id === focusedId);\n\n switch (e.key) {\n case 'Escape':\n e.preventDefault();\n onClose();\n break;\n case 'ArrowUp': {\n e.preventDefault();\n const previousOptionIndex = currentFocusIndex - 1 >= 0 ? currentFocusIndex - 1 : options.length - 1;\n const previousValue = options[previousOptionIndex];\n if (previousValue) moveFocusOnElementById(previousValue.id);\n break;\n }\n case 'ArrowDown':\n case 'Tab': {\n e.preventDefault();\n const nextOptionIndex = currentFocusIndex === options.length - 1 ? 0 : currentFocusIndex + 1;\n const nextValue = options[nextOptionIndex];\n if (nextValue) moveFocusOnElementById(nextValue.id);\n break;\n }\n }\n}\n","import { getClassName } from '@utils';\nimport { ButtonHTMLAttributes, FC, PropsWithChildren } from 'react';\n\nimport styles from './IconButton.module.scss';\n\ntype Props = ButtonHTMLAttributes<HTMLButtonElement> & PropsWithChildren;\n\nexport const IconButton: FC<Props> = ({ children, className, ...rest }) => (\n <button {...rest} className={getClassName([styles.button, className])}>\n {children}\n </button>\n);\n","import { Icon } from '@atoms';\nimport { IconName } from '@enums';\nimport { getClassName } from '@utils';\nimport { ButtonHTMLAttributes, FC, MouseEvent } from 'react';\n\nimport styles from './InnerButton.module.scss';\n\ntype Props = {\n label?: string;\n icon?: IconName;\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n} & ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport const InnerButton: FC<Props> = ({ onClick, label, icon, disabled, className, ...rest }) => {\n return (\n <button\n className={getClassName([styles.button, className])}\n onClick={onClick}\n aria-label={label}\n type='button'\n disabled={disabled}\n {...rest}\n >\n <Icon name={icon} />\n </button>\n );\n};\n","import { getClassName } from '@utils';\nimport { ButtonHTMLAttributes, FC, PropsWithChildren } from 'react';\n\nimport styles from './PrimaryButton.module.scss';\n\ntype Props = ButtonHTMLAttributes<HTMLButtonElement> & PropsWithChildren;\n\nexport const PrimaryButton: FC<Props> = ({ children, className, ...rest }) => (\n <button {...rest} className={getClassName([styles.button, className])}>\n <span className={styles.button_shadow}></span>\n <span className={styles.button_edge}></span>\n <span className={styles.button_front}>{children}</span>\n </button>\n);\n","import { getClassName } from '@utils';\nimport { ButtonHTMLAttributes, FC, PropsWithChildren } from 'react';\n\nimport styles from './SecondaryButton.module.scss';\n\ntype Props = ButtonHTMLAttributes<HTMLButtonElement> & PropsWithChildren;\n\nexport const SecondaryButton: FC<Props> = ({ children, className, ...rest }) => (\n <button {...rest} className={getClassName([styles.button, className])}>\n {children}\n </button>\n);\n","import { Icon } from '@atoms';\nimport { ButtonView } from '@enums';\nimport { withTooltip } from '@hocs';\nimport { ButtonProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC } from 'react';\n\nimport styles from './Button.module.scss';\nimport { IconButton } from './icon-button/IconButton';\nimport { InnerButton } from './inner-button/InnerButton';\nimport { PrimaryButton } from './primary-button/PrimaryButton';\nimport { SecondaryButton } from './secondary-button/SecondaryButton';\n\nconst ButtonSelector: FC<ButtonProps> = ({\n onClick,\n text,\n icon,\n label,\n disabled = false,\n extended = false,\n type = 'button',\n view = ButtonView.Primary,\n className,\n ...rest\n}) => {\n const extendedClass = getClassName([className, { [styles.extended]: extended }]);\n\n switch (view) {\n case ButtonView.Primary:\n return (\n <PrimaryButton aria-label={label} type={type} onClick={onClick} disabled={disabled} className={extendedClass} {...rest}>\n <Icon name={icon} />\n {text}\n </PrimaryButton>\n );\n case ButtonView.Secondary:\n return (\n <SecondaryButton aria-label={label} type={type} onClick={onClick} disabled={disabled} className={extendedClass} {...rest}>\n <Icon name={icon} />\n {text}\n </SecondaryButton>\n );\n case ButtonView.Icon:\n return (\n <IconButton aria-label={label} type={type} onClick={onClick} disabled={disabled} {...rest} className={className}>\n <Icon name={icon} />\n </IconButton>\n );\n case ButtonView.Inner:\n return <InnerButton label={label} icon={icon} onClick={onClick} disabled={disabled} {...rest} className={className}></InnerButton>;\n default:\n return null;\n }\n};\n\nconst Button = withTooltip(ButtonSelector);\n\nexport default Button;\n","import { ChopLogicComponentProps } from '@models';\nimport { FC, RefObject, useCallback } from 'react';\n\ninterface EditViewProps extends ChopLogicComponentProps {\n multiline: boolean;\n value: string;\n placeholder: string;\n onChange: (value: string) => void;\n onBlur: () => void;\n onKeyDown: (event: React.KeyboardEvent) => void;\n className: string;\n inputRef: RefObject<any>;\n}\n\nexport const EditView: FC<EditViewProps> = ({\n multiline,\n value,\n placeholder,\n onChange,\n onBlur,\n onKeyDown,\n className,\n inputRef,\n ...rest\n}) => {\n const InputComponent = multiline ? 'textarea' : 'input';\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLTextAreaElement | HTMLInputElement>) => {\n onChange(event.target.value);\n },\n [onChange],\n );\n\n return (\n <InputComponent\n ref={inputRef}\n value={value}\n onChange={handleChange}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n placeholder={placeholder}\n className={className}\n rows={multiline ? 3 : undefined}\n {...rest}\n />\n );\n};\n","import { ChopLogicComponentProps } from '@models';\nimport { FC } from 'react';\n\ninterface ReadViewProps extends ChopLogicComponentProps {\n value: string;\n placeholder: string;\n onClick: (event: React.MouseEvent) => void;\n className: string;\n}\n\nexport const ReadView: FC<ReadViewProps> = ({ value, placeholder, onClick, className, ...rest }) => {\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onClick(e as any);\n }\n };\n\n return (\n <span onClick={onClick} className={className} role='button' tabIndex={0} onKeyDown={handleKeyDown} aria-label='Editable text' {...rest}>\n {value || placeholder}\n </span>\n );\n};\n","import { useState } from 'react';\n\nexport const useEditModeState = (controlledEditMode?: boolean, readOnly?: boolean) => {\n const [isEditMode, setIsEditMode] = useState(false);\n const [isControlled] = useState(controlledEditMode !== undefined);\n\n const editMode = isControlled ? !!controlledEditMode : isEditMode;\n\n const enterEditMode = () => {\n if (!isControlled && !readOnly) {\n setIsEditMode(true);\n }\n };\n\n const exitEditMode = () => {\n if (!isControlled) {\n setIsEditMode(false);\n }\n };\n\n return {\n editMode,\n enterEditMode,\n exitEditMode,\n isControlled,\n };\n};\n","import { RefObject, useEffect } from 'react';\n\nexport const useInputFocus = (\n ref: RefObject<HTMLTextAreaElement | HTMLInputElement | null>,\n editMode: boolean,\n autoSelectTextOnEditMode?: boolean,\n readOnly?: boolean,\n) => {\n useEffect(() => {\n if (editMode && ref.current && !readOnly) {\n ref.current.focus();\n if (autoSelectTextOnEditMode) {\n ref.current.select();\n }\n }\n }, [editMode, autoSelectTextOnEditMode, readOnly, ref]);\n};\n","import { useEffect, useState } from 'react';\n\nexport const useValueState = (value: string, onChange?: (value: string) => void) => {\n const [internalValue, setInternalValue] = useState(value);\n\n useEffect(() => {\n setInternalValue(value);\n }, [value]);\n\n const updateValue = (newValue: string) => {\n setInternalValue(newValue);\n };\n\n const commitValue = () => {\n if (internalValue !== value) {\n onChange?.(internalValue);\n }\n };\n\n const resetValue = () => {\n setInternalValue(value);\n };\n\n return {\n internalValue,\n updateValue,\n commitValue,\n resetValue,\n };\n};\n","import { EditableTextProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC, useCallback, useRef } from 'react';\n\nimport styles from './EditableText.module.scss';\nimport { EditView } from './EditView';\nimport { ReadView } from './ReadView';\nimport { useEditModeState } from './useEditModeState';\nimport { useInputFocus } from './useInputFocus';\nimport { useValueState } from './useValueState';\n\nconst EditableText: FC<EditableTextProps> = ({\n value,\n isEditMode: controlledEditMode,\n onChange,\n onClick,\n className,\n autoSelectTextOnEditMode = false,\n multiline = false,\n placeholder = 'Click to edit...',\n readOnly = false,\n ...rest\n}) => {\n const inputRef = useRef<HTMLTextAreaElement | HTMLInputElement>(null);\n const { editMode, enterEditMode, exitEditMode } = useEditModeState(controlledEditMode, readOnly);\n const { internalValue, updateValue, commitValue, resetValue } = useValueState(value, onChange);\n\n useInputFocus(inputRef, editMode, autoSelectTextOnEditMode, readOnly);\n\n const handleClick = useCallback(\n (event: React.MouseEvent) => {\n onClick?.(event);\n enterEditMode();\n },\n [onClick, enterEditMode],\n );\n\n const handleBlur = useCallback(() => {\n exitEditMode();\n commitValue();\n }, [exitEditMode, commitValue]);\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' && !multiline) {\n event.preventDefault();\n handleBlur();\n }\n if (event.key === 'Escape') {\n resetValue();\n exitEditMode();\n }\n },\n [multiline, handleBlur, resetValue, exitEditMode],\n );\n\n const containerClass = getClassName([\n styles.editableText,\n className,\n {\n [styles.editableText__editMode]: editMode,\n [styles.editableText__readOnly]: readOnly,\n [styles.editableText__empty]: !internalValue,\n },\n ]);\n\n if (editMode && !readOnly) {\n return (\n <EditView\n multiline={multiline}\n value={internalValue}\n placeholder={placeholder}\n onChange={updateValue}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n className={containerClass}\n inputRef={inputRef}\n {...rest}\n />\n );\n }\n\n return <ReadView value={internalValue} placeholder={placeholder} onClick={handleClick} className={containerClass} {...rest} />;\n};\n\nexport default EditableText;\n","import { getClassName } from '@utils/get-class-name';\nimport { FC } from 'react';\n\nimport styles from './ErrorMessage.module.scss';\n\ntype ErrorMessageProps = {\n errorId: string;\n visible?: boolean;\n message?: string;\n testId?: string;\n className?: string;\n};\n\nconst ErrorMessage: FC<ErrorMessageProps> = ({ errorId, testId, message = 'Error!', visible = false, className }) => {\n const errorClass = getClassName([styles.errorMessage, className, { [styles.errorMessage__visible]: visible }]);\n\n return (\n <span id={errorId} className={errorClass} data-testid={testId} aria-hidden={!visible}>\n {message}\n </span>\n );\n};\n\nexport default ErrorMessage;\n","import { Icon } from '@atoms';\nimport { HeaderProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC } from 'react';\n\nimport styles from './Header.module.scss';\n\nconst Header: FC<HeaderProps> = ({ as = 'h1', icon, children, className, ...rest }) => {\n const HeaderTag = as;\n const headerClass = getClassName([\n className,\n styles.header,\n {\n [styles.header__h1]: as === 'h1',\n [styles.header__h2]: as === 'h2',\n [styles.header__h3]: as === 'h3',\n [styles.header__h4]: as === 'h4',\n [styles.header__h5]: as === 'h5',\n [styles.header__h6]: as === 'h6',\n },\n ]);\n\n return (\n <HeaderTag className={headerClass} {...rest}>\n {icon && <Icon name={icon} />}\n <span className={styles.header_text}>{children}</span>\n </HeaderTag>\n );\n};\n\nexport default Header;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ArrowDownIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor' height='1em' width='1em' {...rest}>\n {title && <title>{title}</title>}\n <path d='M21.886 5.536A1.002 1.002 0 0021 5H3a1.002 1.002 0 00-.822 1.569l9 13a.998.998 0 001.644 0l9-13a.998.998 0 00.064-1.033zM12 17.243L4.908 7h14.184L12 17.243z' />\n </svg>\n );\n}\n\nexport default ArrowDownIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ArrowUpIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor' height='1em' width='1em' {...rest}>\n {title && <title>{title}</title>}\n <path d='M3 19h18a1.002 1.002 0 00.823-1.569l-9-13c-.373-.539-1.271-.539-1.645 0l-9 13A.999.999 0 003 19zm9-12.243L19.092 17H4.908L12 6.757z' />\n </svg>\n );\n}\n\nexport default ArrowUpIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction BackIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' fill='currentColor' height='1em' width='1em' {...rest}>\n {title && <title>{title}</title>}\n <path fill='none' stroke='currentColor' strokeLinecap='round' strokeLinejoin='round' strokeWidth={48} d='M328 112L184 256l144 144' />\n </svg>\n );\n}\n\nexport default BackIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction CancelIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 470 1000' fill='currentColor' height='1em' width='1em' {...rest}>\n {title && <title>{title}</title>}\n <path d='M452 656c12 12 18 26.333 18 43s-6 31-18 43c-12 10.667-26.333 16-43 16s-31-5.333-43-16L234 590 102 742c-12 10.667-26.333 16-43 16s-31-5.333-43-16C5.333 730 0 715.667 0 699s5.333-31 16-43l138-156L16 342C5.333 330 0 315.667 0 299s5.333-31 16-43c12-10.667 26.333-16 43-16s31 5.333 43 16l132 152 132-152c12-10.667 26.333-16 43-16s31 5.333 43 16c12 12 18 26.333 18 43s-6 31-18 43L314 500l138 156' />\n </svg>\n );\n}\n\nexport default CancelIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction CheckboxCheckedIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='currentColor' height='1em' width='1em' {...rest}>\n {title && <title>{title}</title>}\n <path\n fill='currentColor'\n d='M14 0H2C.9 0 0 .9 0 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zM7 12.414L3.293 8.707l1.414-1.414L7 9.586l4.793-4.793 1.414 1.414L7 12.414z'\n />\n </svg>\n );\n}\n\nexport default CheckboxCheckedIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction CheckboxUncheckedIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='currentColor' height='1em' width='1em' {...rest}>\n {title && <title>{title}</title>}\n <path fill='currentColor' d='M14 0H2C.9 0 0 .9 0 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zm0 14H2V2h12v12z' />\n </svg>\n );\n}\n\nexport default CheckboxUncheckedIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction CheckMarkIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' fill='currentColor' height='1em' width='1em' {...rest}>\n {title && <title>{title}</title>}\n <path d='M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7l233.4-233.3c12.5-12.5 32.8-12.5 45.3 0z' />\n </svg>\n );\n}\n\nexport default CheckMarkIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ChevronDownIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' fill='currentColor' viewBox='0 0 16 16' height='1em' width='1em' {...rest}>\n {title && <title>{title}</title>}\n <path\n fillRule='evenodd'\n d='M1.553 6.776a.5.5 0 01.67-.223L8 9.44l5.776-2.888a.5.5 0 11.448.894l-6 3a.5.5 0 01-.448 0l-6-3a.5.5 0 01-.223-.67z'\n />\n </svg>\n );\n}\n\nexport default ChevronDownIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ChevronLeftIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' fill='currentColor' viewBox='0 0 16 16' height='1em' width='1em' {...rest}>\n {title && <title>{title}</title>}\n <path\n fillRule='evenodd'\n d='M9.224 1.553a.5.5 0 01.223.67L6.56 8l2.888 5.776a.5.5 0 11-.894.448l-3-6a.5.5 0 010-.448l3-6a.5.5 0 01.67-.223z'\n />\n </svg>\n );\n}\n\nexport default ChevronLeftIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ChevronRightIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' fill='currentColor' viewBox='0 0 16 16' height='1em' width='1em' {...rest}>\n {title && <title>{title}</title>}\n <path\n fillRule='evenodd'\n d='M6.776 1.553a.5.5 0 01.671.223l3 6a.5.5 0 010 .448l-3 6a.5.5 0 11-.894-.448L9.44 8 6.553 2.224a.5.5 0 01.223-.671z'\n />\n </svg>\n );\n}\n\nexport default ChevronRightIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ChevronUpIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' fill='currentColor' viewBox='0 0 16 16' height='1em' width='1em' {...rest}>\n {title && <title>{title}</title>}\n <path fillRule='evenodd' d='M7.776 5.553a.5.5 0 01.448 0l6 3a.5.5 0 11-.448.894L8 6.56 2.224 9.447a.5.5 0 11-.448-.894l6-3z' />\n </svg>\n );\n}\n\nexport default ChevronUpIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ClearIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024' fill='currentColor' height='1em' width='1em' {...rest}>\n {title && <title>{title}</title>}\n <defs>\n <style />\n </defs>\n <path d='M899.1 869.6l-53-305.6H864c14.4 0 26-11.6 26-26V346c0-14.4-11.6-26-26-26H618V138c0-14.4-11.6-26-26-26H432c-14.4 0-26 11.6-26 26v182H160c-14.4 0-26 11.6-26 26v192c0 14.4 11.6 26 26 26h17.9l-53 305.6c-.3 1.5-.4 3-.4 4.4 0 14.4 11.6 26 26 26h723c1.5 0 3-.1 4.4-.4 14.2-2.4 23.7-15.9 21.2-30zM204 390h272V182h72v208h272v104H204V390zm468 440V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H416V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H202.8l45.1-260H776l45.1 260H672z' />\n </svg>\n );\n}\n\nexport default ClearIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction CopyIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth={2}\n viewBox='0 0 24 24'\n height='1em'\n width='1em'\n {...rest}\n >\n {title && <title>{title}</title>}\n <path d='M11 9 H20 A2 2 0 0 1 22 11 V20 A2 2 0 0 1 20 22 H11 A2 2 0 0 1 9 20 V11 A2 2 0 0 1 11 9 z' />\n <path d='M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1' />\n </svg>\n );\n}\n\nexport default CopyIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction CutIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth={2}\n viewBox='0 0 24 24'\n height='1em'\n width='1em'\n {...rest}\n >\n {title && <title>{title}</title>}\n <path stroke='none' d='M0 0h24v24H0z' />\n <path d='M10 17 A3 3 0 0 1 7 20 A3 3 0 0 1 4 17 A3 3 0 0 1 10 17 z' />\n <path d='M20 17 A3 3 0 0 1 17 20 A3 3 0 0 1 14 17 A3 3 0 0 1 20 17 z' />\n <path d='M9.15 14.85L18 4M6 4l8.85 10.85' />\n </svg>\n );\n}\n\nexport default CutIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction DeleteIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024' fill='currentColor' height='1em' width='1em' {...rest}>\n {title && <title>{title}</title>}\n <path d='M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z' />\n </svg>\n );\n}\n\nexport default DeleteIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction DownloadIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024' fill='currentColor' height='1em' width='1em' {...rest}>\n {title && <title>{title}</title>}\n <path d='M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z' />\n </svg>\n );\n}\n\nexport default DownloadIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction EditIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='1em' height='1em' {...rest}>\n {title && <title>{title}</title>}\n <path\n fill='none'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth='1.5'\n d='M3 21h18M12.222 5.828L15.05 3L20 7.95l-2.828 2.828m-4.95-4.95l-5.607 5.607a1 1 0 0 0-.293.707v4.536h4.536a1 1 0 0 0 .707-.293l5.607-5.607m-4.95-4.95l4.95 4.95'\n ></path>\n </svg>\n );\n}\n\nexport default EditIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ErrorIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor' height='1em' width='1em' {...rest}>\n {title && <title>{title}</title>}\n <path d='M11 7h2v7h-2zm0 8h2v2h-2z' />\n <path d='M21.707 7.293l-5-5A.996.996 0 0016 2H8a.996.996 0 00-.707.293l-5 5A.996.996 0 002 8v8c0 .266.105.52.293.707l5 5A.996.996 0 008 22h8c.266 0 .52-.105.707-.293l5-5A.996.996 0 0022 16V8a.996.996 0 00-.293-.707zM20 15.586L15.586 20H8.414L4 15.586V8.414L8.414 4h7.172L20 8.414v7.172z' />\n </svg>\n );\n}\n\nexport default ErrorIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ForwardIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' fill='currentColor' height='1em' width='1em' {...rest}>\n {title && <title>{title}</title>}\n <path fill='none' stroke='currentColor' strokeLinecap='round' strokeLinejoin='round' strokeWidth={48} d='M184 112l144 144-144 144' />\n </svg>\n );\n}\n\nexport default ForwardIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nconst GraduateIcon = ({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) => (\n <svg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' fill='currentColor' viewBox='0 0 448 512' {...rest}>\n {title && <title>{title}</title>}\n <path d='M219.3.5c3.1-.6 6.3-.6 9.4 0l200 40C439.9 42.7 448 52.6 448 64s-8.1 21.3-19.3 23.5L352 102.9V160c0 70.7-57.3 128-128 128S96 230.7 96 160v-57.1l-48-9.6v65.1l15.7 78.4c.9 4.7-.3 9.6-3.3 13.3S52.8 256 48 256H16c-4.8 0-9.3-2.1-12.4-5.9s-4.3-8.6-3.3-13.3L16 158.4V86.6C6.5 83.3 0 74.3 0 64c0-11.4 8.1-21.3 19.3-23.5l200-40zM111.9 327.7c10.5-3.4 21.8.4 29.4 8.5l71 75.5c6.3 6.7 17 6.7 23.3 0l71-75.5c7.6-8.1 18.9-11.9 29.4-8.5 65 20.9 112 81.7 112 153.6 0 17-13.8 30.7-30.7 30.7H30.7C13.8 512 0 498.2 0 481.3c0-71.9 47-132.7 111.9-153.6z' />\n </svg>\n);\n\nexport default GraduateIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction HelpIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' fill='currentColor' height='1em' width='1em' {...rest}>\n {title && <title>{title}</title>}\n <path d='M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM192.13 260.18a64 64 0 1159.69 59.69 64.07 64.07 0 01-59.69-59.69zm240-66.64l-96.37 5.84a4.06 4.06 0 01-3.44-1.59 96 96 0 00-18.07-18.07 4.06 4.06 0 01-1.59-3.44l5.84-96.37a4 4 0 015.42-3.51A193 193 0 01435.6 188.12a4 4 0 01-3.51 5.42zM193.54 79.91l5.84 96.37a4.06 4.06 0 01-1.59 3.44 96 96 0 00-18.07 18.07 4.06 4.06 0 01-3.44 1.59l-96.37-5.84a4 4 0 01-3.51-5.42A193 193 0 01188.12 76.4a4 4 0 015.42 3.51zM79.91 318.46l96.37-5.84a4.06 4.06 0 013.44 1.59 96 96 0 0018.07 18.07 4.06 4.06 0 011.59 3.44l-5.84 96.37a4 4 0 01-5.42 3.51A193 193 0 0176.4 323.88a4 4 0 013.51-5.42zm238.55 113.63l-5.84-96.37a4.06 4.06 0 011.59-3.44 96 96 0 0018.07-18.07 4.06 4.06 0 013.44-1.59l96.37 5.84a4 4 0 013.51 5.42A193 193 0 01323.88 435.6a4 4 0 01-5.42-3.51z' />\n </svg>\n );\n}\n\nexport default HelpIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction HideIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor' height='1em' width='1em' {...rest}>\n {title && <title>{title}</title>}\n <path d='M12 19c.946 0 1.81-.103 2.598-.281l-1.757-1.757c-.273.021-.55.038-.841.038-5.351 0-7.424-3.846-7.926-5a8.642 8.642 0 011.508-2.297L4.184 8.305c-1.538 1.667-2.121 3.346-2.132 3.379a.994.994 0 000 .633C2.073 12.383 4.367 19 12 19zm0-14c-1.837 0-3.346.396-4.604.981L3.707 2.293 2.293 3.707l18 18 1.414-1.414-3.319-3.319c2.614-1.951 3.547-4.615 3.561-4.657a.994.994 0 000-.633C21.927 11.617 19.633 5 12 5zm4.972 10.558l-2.28-2.28c.19-.39.308-.819.308-1.278 0-1.641-1.359-3-3-3-.459 0-.888.118-1.277.309L8.915 7.501A9.26 9.26 0 0112 7c5.351 0 7.424 3.846 7.926 5-.302.692-1.166 2.342-2.954 3.558z' />\n </svg>\n );\n}\n\nexport default HideIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nconst HomeIcon = ({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) => (\n <svg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' fill='currentColor' viewBox='0 0 1024 1024' {...rest}>\n {title && <title>{title}</title>}\n <path d='M946.5 505 560.1 118.8l-25.9-25.9a31.5 31.5 0 0 0-44.4 0L77.5 505a63.9 63.9 0 0 0-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0 0 18.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z' />\n </svg>\n);\n\nexport default HomeIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction InfoIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024' fill='currentColor' height='1em' width='1em' {...rest}>\n {title && <title>{title}</title>}\n <path d='M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z' />\n <path d='M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z' />\n </svg>\n );\n}\n\nexport default InfoIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nconst LoginIcon = ({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) => (\n <svg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' fill='currentColor' viewBox='0 0 1024 1024' {...rest}>\n {title && <title>{title}</title>}\n <path d='M521.7 82c-152.5-.4-286.7 78.5-363.4 197.7-3.4 5.3.4 12.3 6.7 12.3h70.3c4.8 0 9.3-2.1 12.3-5.8 7-8.5 14.5-16.7 22.4-24.5 32.6-32.5 70.5-58.1 112.7-75.9 43.6-18.4 90-27.8 137.9-27.8 47.9 0 94.3 9.3 137.9 27.8 42.2 17.8 80.1 43.4 112.7 75.9 32.6 32.5 58.1 70.4 76 112.5C865.7 417.8 875 464.1 875 512c0 47.9-9.4 94.2-27.8 137.8-17.8 42.1-43.4 80-76 112.5s-70.5 58.1-112.7 75.9A352.8 352.8 0 0 1 520.6 866c-47.9 0-94.3-9.4-137.9-27.8A353.84 353.84 0 0 1 270 762.3c-7.9-7.9-15.3-16.1-22.4-24.5-3-3.7-7.6-5.8-12.3-5.8H165c-6.3 0-10.2 7-6.7 12.3C234.9 863.2 368.5 942 520.6 942c236.2 0 428-190.1 430.4-425.6C953.4 277.1 761.3 82.6 521.7 82zM395.02 624v-76h-314c-4.4 0-8-3.6-8-8v-56c0-4.4 3.6-8 8-8h314v-76c0-6.7 7.8-10.5 13-6.3l141.9 112a8 8 0 0 1 0 12.6l-141.9 112c-5.2 4.1-13 .4-13-6.3z' />\n </svg>\n);\n\nexport default LoginIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction PasteIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor' height='1em' width='1em' {...rest}>\n {title && <title>{title}</title>}\n <path d='M20 11V5c0-1.103-.897-2-2-2h-3a1 1 0 00-1-1H8a1 1 0 00-1 1H4c-1.103 0-2 .897-2 2v13c0 1.103.897 2 2 2h7c0 1.103.897 2 2 2h7c1.103 0 2-.897 2-2v-7c0-1.103-.897-2-2-2zm-9 2v5H4V5h3v2h8V5h3v6h-5c-1.103 0-2 .897-2 2zm2 7v-7h7l.001 7H13z' />\n </svg>\n );\n}\n\nexport default PasteIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction PlusCircleIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='1em' height='1em' {...rest}>\n {title && <title>{title}</title>}\n <path\n fill='none'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth='1.5'\n d='M12 6.722v10.556M17.278 12H6.722M12 21.5a9.5 9.5 0 1 0 0-19a9.5 9.5 0 0 0 0 19'\n ></path>\n </svg>\n );\n}\n\nexport default PlusCircleIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction QuestionIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' fill='currentColor' height='1em' width='1em' {...rest}>\n {title && <title>{title}</title>}\n <path fill='none' stroke='currentColor' strokeMiterlimit={10} strokeWidth={32} d='M256 80a176 176 0 10176 176A176 176 0 00256 80z' />\n <path\n fill='none'\n stroke='currentColor'\n strokeLinecap='round'\n strokeMiterlimit={10}\n strokeWidth={28}\n d='M200 202.29s.84-17.5 19.57-32.57C230.68 160.77 244 158.18 256 158c10.93-.14 20.69 1.67 26.53 4.45 10 4.76 29.47 16.38 29.47 41.09 0 26-17 37.81-36.37 50.8S251 281.43 251 296'\n />\n <path d='M270 348 A20 20 0 0 1 250 368 A20 20 0 0 1 230 348 A20 20 0 0 1 270 348 z' />\n </svg>\n );\n}\n\nexport default QuestionIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction RemoveIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' fill='currentColor' height='1em' width='1em' {...rest}>\n {title && <title>{title}</title>}\n <path\n fill='none'\n stroke='currentColor'\n strokeLinejoin='round'\n strokeWidth={32}\n d='M135.19 390.14a28.79 28.79 0 0021.68 9.86h246.26A29 29 0 00432 371.13V140.87A29 29 0 00403.13 112H156.87a28.84 28.84 0 00-21.67 9.84v0L46.33 256l88.86 134.11z'\n />\n <path\n fill='none'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth={32}\n d='M336.67 192.33L206.66 322.34M336.67 322.34L206.66 192.33M336.67 192.33L206.66 322.34M336.67 322.34L206.66 192.33'\n />\n </svg>\n );\n}\n\nexport default RemoveIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction SaveIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024' fill='currentColor' height='1em' width='1em' {...rest}>\n {title && <title>{title}</title>}\n <path d='M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z' />\n </svg>\n );\n}\n\nexport default SaveIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction SearchIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='1em' height='1em' {...rest}>\n {title && <title>{title}</title>}\n <path\n fill='none'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth='1.5'\n d='M15.553 15.553a7.06 7.06 0 1 0-9.985-9.985a7.06 7.06 0 0 0 9.985 9.985m0 0L20 20'\n ></path>\n </svg>\n );\n}\n\nexport default SearchIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ShowIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor' height='1em' width='1em' {...rest}>\n {title && <title>{title}</title>}\n <path d='M12 9a3.02 3.02 0 00-3 3c0 1.642 1.358 3 3 3 1.641 0 3-1.358 3-3 0-1.641-1.359-3-3-3z' />\n <path d='M12 5c-7.633 0-9.927 6.617-9.948 6.684L1.946 12l.105.316C2.073 12.383 4.367 19 12 19s9.927-6.617 9.948-6.684l.106-.316-.105-.316C21.927 11.617 19.633 5 12 5zm0 12c-5.351 0-7.424-3.846-7.926-5C4.578 10.842 6.652 7 12 7c5.351 0 7.424 3.846 7.926 5-.504 1.158-2.578 5-7.926 5z' />\n </svg>\n );\n}\n\nexport default ShowIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction UploadIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' fill='currentColor' viewBox='0 0 16 16' height='1em' width='1em' {...rest}>\n {title && <title>{title}</title>}\n <path d='M.5 9.9a.5.5 0 01.5.5v2.5a1 1 0 001 1h12a1 1 0 001-1v-2.5a.5.5 0 011 0v2.5a2 2 0 01-2 2H2a2 2 0 01-2-2v-2.5a.5.5 0 01.5-.5z' />\n <path d='M7.646 1.146a.5.5 0 01.708 0l3 3a.5.5 0 01-.708.708L8.5 2.707V11.5a.5.5 0 01-1 0V2.707L5.354 4.854a.5.5 0 11-.708-.708l3-3z' />\n </svg>\n );\n}\n\nexport default UploadIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction WarningIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor' height='1em' width='1em' {...rest}>\n {title && <title>{title}</title>}\n <path fill='none' d='M0 0h24v24H0z' />\n <path d='M4 20v-6a8 8 0 1116 0v6h1v2H3v-2h1zm2 0h12v-6a6 6 0 10-12 0v6zm5-18h2v3h-2V2zm8.778 2.808l1.414 1.414-2.12 2.121-1.415-1.414 2.121-2.121zM2.808 6.222l1.414-1.414 2.121 2.12L4.93 8.344 2.808 6.222zM7 14a5 5 0 015-5v2a3 3 0 00-3 3H7z' />\n </svg>\n );\n}\n\nexport default WarningIcon;\n","import { IconName } from '@enums';\nimport { ChopLogicSVGElementProps } from '@models';\nimport { ReactElement } from 'react';\n\nimport ArrowDownIcon from './svg/ArrowDownIcon';\nimport ArrowUpIcon from './svg/ArrowUpIcon';\nimport BackIcon from './svg/BackIcon';\nimport CancelIcon from './svg/CancelIcon';\nimport CheckboxCheckedIcon from './svg/CheckboxCheckedIcon';\nimport CheckboxUncheckedIcon from './svg/CheckboxUncheckedIcon';\nimport CheckMarkIcon from './svg/CheckMarkIcon';\nimport ChevronDownIcon from './svg/ChevronDownIcon';\nimport ChevronLeftIcon from './svg/ChevronLeftIcon';\nimport ChevronRightIcon from './svg/ChevronRightIcon';\nimport ChevronUpIcon from './svg/ChevronUpIcon';\nimport ClearIcon from './svg/ClearIcon';\nimport CopyIcon from './svg/CopyIcon';\nimport CutIcon from './svg/CutIcon';\nimport DeleteIcon from './svg/DeleteIcon';\nimport DownloadIcon from './svg/DownloadIcon';\nimport EditIcon from './svg/EditIcon';\nimport ErrorIcon from './svg/ErrorIcon';\nimport ForwardIcon from './svg/ForwardIcon';\nimport GraduateIcon from './svg/GraduateIcon';\nimport HelpIcon from './svg/HelpIcon';\nimport HideIcon from './svg/HideIcon';\nimport HomeIcon from './svg/HomeIcon';\nimport InfoIcon from './svg/InfoIcon';\nimport LoginIcon from './svg/LoginIcon';\nimport PasteIcon from './svg/PasteIcon';\nimport PlusCircleIcon from './svg/PlusCircle';\nimport QuestionIcon from './svg/QuestionIcon';\nimport RemoveIcon from './svg/RemoveIcon';\nimport SaveIcon from './svg/SaveIcon';\nimport SearchIcon from './svg/SearchIcon';\nimport ShowIcon from './svg/ShowIcon';\nimport UploadIcon from './svg/UploadIcon';\nimport WarningIcon from './svg/WarningIcon';\n\ntype Icons = { [key in IconName]: ({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) => ReactElement };\n\nexport const IconDictionary: Icons = {\n [IconName.ArrowDown]: ArrowDownIcon,\n [IconName.ArrowUp]: ArrowUpIcon,\n [IconName.Back]: BackIcon,\n [IconName.Cancel]: CancelIcon,\n [IconName.CheckboxChecked]: CheckboxCheckedIcon,\n [IconName.CheckboxUnchecked]: CheckboxUncheckedIcon,\n [IconName.CheckMark]: CheckMarkIcon,\n [IconName.ChevronDown]: ChevronDownIcon,\n [IconName.ChevronUp]: ChevronUpIcon,\n [IconName.ChevronLeft]: ChevronLeftIcon,\n [IconName.ChevronRight]: ChevronRightIcon,\n [IconName.Clear]: ClearIcon,\n [IconName.Copy]: CopyIcon,\n [IconName.Cut]: CutIcon,\n [IconName.Delete]: DeleteIcon,\n [IconName.Download]: DownloadIcon,\n [IconName.Edit]: EditIcon,\n [IconName.Error]: ErrorIcon,\n [IconName.Forward]: ForwardIcon,\n [IconName.Graduate]: GraduateIcon,\n [IconName.Help]: HelpIcon,\n [IconName.Hide]: HideIcon,\n [IconName.Home]: HomeIcon,\n [IconName.Info]: InfoIcon,\n [IconName.Login]: LoginIcon,\n [IconName.Paste]: PasteIcon,\n [IconName.PlusCircle]: PlusCircleIcon,\n [IconName.Question]: QuestionIcon,\n [IconName.Save]: SaveIcon,\n [IconName.Search]: SearchIcon,\n [IconName.Show]: ShowIcon,\n [IconName.Upload]: UploadIcon,\n [IconName.Warning]: WarningIcon,\n [IconName.Remove]: RemoveIcon,\n};\n","import { IconDictionary } from '@assets/icons';\nimport { IconProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC } from 'react';\n\nimport styles from './Icon.module.scss';\n\nconst Icon: FC<IconProps> = ({ name, testId, className, ...rest }) => {\n if (!name) return null;\n const Component = IconDictionary[name];\n const iconClass = getClassName([className, styles.icon]);\n\n return <Component data-testid={testId} className={iconClass} {...rest} />;\n};\n\nexport default Icon;\n","import { forwardRef, ForwardRefRenderFunction, InputHTMLAttributes, PropsWithChildren } from 'react';\n\nimport styles from './Input.module.scss';\n\ntype Props = InputHTMLAttributes<HTMLInputElement> & PropsWithChildren;\n\nconst Input: ForwardRefRenderFunction<HTMLInputElement, Props> = ({ children, ...rest }, ref) => {\n return (\n <div className={styles.wrapper}>\n <input {...rest} className={styles.input} ref={ref} />\n {children}\n </div>\n );\n};\n\nexport default forwardRef(Input);\n","import { Icon } from '@atoms';\nimport { IconName } from '@enums';\nimport { FC } from 'react';\n\nimport styles from './Label.module.scss';\n\ntype LabelProps = {\n label: string;\n required: boolean;\n inputId: string;\n isTextHidden?: boolean;\n icon?: IconName;\n iconPosition?: 'left' | 'right';\n};\n\nconst Label: FC<LabelProps> = ({ label, required, inputId, icon, iconPosition, isTextHidden = false }) => {\n const isLeftIconVisible = !!icon && iconPosition === 'left';\n const isRightIconVisible = !!icon && iconPosition === 'right';\n\n return (\n <label className={styles.label} htmlFor={inputId}>\n {isLeftIconVisible && <Icon name={icon} />}\n {!isTextHidden && (\n <span>\n {label}\n {required && <abbr title='required'>*</abbr>}\n </span>\n )}\n {isRightIconVisible && <Icon name={icon} />}\n </label>\n );\n};\n\nexport default Label;\n","import { LoaderView } from '@enums';\nimport { LoaderProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC } from 'react';\n\nimport Arrow from './views/Arrow.module.scss';\nimport Brackets from './views/Brackets.module.scss';\nimport Circle from './views/Circle.module.scss';\nimport Dots from './views/Dots.module.scss';\nimport Filler from './views/Filler.module.scss';\nimport Linear from './views/Linear.module.scss';\nimport Pulse from './views/Pulse.module.scss';\nimport Rotation from './views/Rotation.module.scss';\nimport Square from './views/Square.module.scss';\n\nconst Loader: FC<LoaderProps> = ({ view = LoaderView.Circle, ...rest }) => {\n const className = getClassName([\n {\n [Arrow.loader]: view === LoaderView.Arrow,\n [Brackets.loader]: view === LoaderView.Brackets,\n [Circle.loader]: view === LoaderView.Circle,\n [Dots.loader]: view === LoaderView.Dots,\n [Filler.loader]: view === LoaderView.Filler,\n [Pulse.loader]: view === LoaderView.Pulse,\n [Linear.loader]: view === LoaderView.Linear,\n [Rotation.loader]: view === LoaderView.Rotation,\n [Square.loader]: view === LoaderView.Square,\n },\n ]);\n\n return <span className={className} {...rest}></span>;\n};\n\nexport default Loader;\n","import { ReactElement, ReactPortal, useEffect, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\nconst Portal = ({ children }: { children: ReactElement }): ReactPortal => {\n const [container] = useState(() => document.createElement('div'));\n\n useEffect(() => {\n // Append a new portal at the end of the body element on mount\n document.body.appendChild(container);\n\n // Remove the portal on unmount\n return () => {\n document.body.removeChild(container);\n };\n }, [container]);\n\n return ReactDOM.createPortal(children, container);\n};\n\nexport default Portal;\n","import { useEffect } from 'react';\n\nexport const useAutoClose = ({\n isOpened,\n onClose,\n autoClose = true,\n autoCloseDelay = 3000,\n}: {\n isOpened: boolean;\n onClose: () => void;\n autoClose?: boolean;\n autoCloseDelay?: number;\n}) => {\n useEffect(() => {\n if (!isOpened || !autoClose) return;\n\n const timer = setTimeout(() => {\n onClose();\n }, autoCloseDelay);\n\n return () => clearTimeout(timer);\n }, [isOpened, autoClose, autoCloseDelay, onClose]);\n};\n","import { RefObject, useEffect } from 'react';\n\ntype UseClickOutsideParams = {\n ref: RefObject<HTMLElement | null>;\n onClickOutsideHandler: () => void;\n dependentRef?: RefObject<HTMLElement | null>;\n};\n\nexport const useClickOutside = ({ ref, onClickOutsideHandler, dependentRef }: UseClickOutsideParams): void => {\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n const isOutsideRef = ref?.current && !ref.current.contains(event.target as Node);\n const isOutsideDependentRef = !dependentRef?.current ? true : !dependentRef.current.contains(event.target as Node);\n if (isOutsideRef && isOutsideDependentRef) {\n onClickOutsideHandler();\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [ref, dependentRef, onClickOutsideHandler]);\n};\n","import { Dimensions } from '@models';\nimport { RefObject, useEffect, useState } from 'react';\n\ntype useContainerDimensionsParams = {\n ref: RefObject<HTMLElement | null>;\n isVisible?: boolean;\n};\n\nexport const useContainerDimensions = ({ ref, isVisible }: useContainerDimensionsParams): Dimensions => {\n const [dimensions, setDimensions] = useState<Dimensions>({ width: 0, height: 0 });\n\n useEffect(() => {\n if (ref?.current && isVisible) {\n setDimensions({\n width: ref.current.offsetWidth,\n height: ref.current.offsetHeight,\n });\n }\n }, [ref, isVisible]);\n\n return dimensions;\n};\n","import { useEffect, useState } from 'react';\n\nexport const useDebounce = <T>(value: T, delay: number): T => {\n const [debouncedValue, setDebouncedValue] = useState<T>(value);\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]);\n\n return debouncedValue;\n};\n","import { useId } from 'react';\n\nexport function useElementIds(id?: string) {\n const randomId = useId();\n const elementId = id ?? randomId;\n const errorId = `${elementId}_error`;\n const dropdownId = `${elementId}_dropdown`;\n\n return {\n elementId,\n errorId,\n dropdownId,\n };\n}\n","import { useEffect, useState } from 'react';\n\nexport const useIsMounted = (isOpened: boolean, delay: number = 300): boolean => {\n const [isMounted, setIsMounted] = useState(false);\n\n useEffect(() => {\n if (isOpened && !isMounted) {\n setIsMounted(true);\n } else if (!isOpened && isMounted) {\n setTimeout(() => {\n setIsMounted(false);\n }, delay);\n }\n }, [isOpened]);\n\n return isMounted;\n};\n","import { RefObject, useEffect, useState } from 'react';\n\nexport const useIsOverflow = ({\n ref,\n dimension,\n isMounted,\n}: {\n ref: RefObject<HTMLElement | null>;\n dimension: 'width' | 'height';\n isMounted?: boolean;\n}) => {\n const [isOverflow, setIsOverflow] = useState(false);\n\n useEffect(() => {\n const checkIsOverflow = () => {\n const { current } = ref;\n\n if (current) {\n if (dimension === 'width') {\n const { scrollWidth = 0, clientWidth = 0 } = current as HTMLElement;\n setIsOverflow(scrollWidth > clientWidth);\n }\n\n if (dimension === 'height') {\n const { scrollHeight = 0, clientHeight = 0 } = current as HTMLElement;\n setIsOverflow(scrollHeight > clientHeight);\n }\n }\n };\n\n if (isMounted) {\n checkIsOverflow();\n }\n\n window.addEventListener('resize', checkIsOverflow);\n\n return () => window.removeEventListener('resize', checkIsOverflow);\n }, [ref, dimension, isMounted]);\n\n return isOverflow;\n};\n","import { RefObject, useEffect } from 'react';\n\ntype useKeyPressParams = {\n keyCode: string;\n ref: RefObject<HTMLElement | null>;\n onKeyPress: () => void;\n};\n\nexport const useKeyPress = ({ ref, keyCode, onKeyPress }: useKeyPressParams) => {\n useEffect(() => {\n const handleKeyPress = (e: KeyboardEvent) => {\n if (e?.code === keyCode && ref?.current) {\n onKeyPress();\n }\n };\n\n document.addEventListener('keydown', handleKeyPress, false);\n return () => {\n document.removeEventListener('keydown', handleKeyPress, false);\n };\n }, [ref, keyCode, onKeyPress]);\n};\n","import { RefObject, useEffect } from 'react';\n\ntype ModalFocusTrapParams = {\n modalRef: RefObject<HTMLElement | null>;\n isOpened: boolean;\n};\n\nexport const useModalFocusTrap = ({ modalRef, isOpened }: ModalFocusTrapParams) => {\n useEffect(() => {\n const modalElement = modalRef.current;\n if (!isOpened || !modalElement) return;\n\n const focusableElements = modalElement.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])');\n const firstElement = focusableElements[0] as HTMLElement;\n const lastElement = focusableElements[focusableElements.length - 1] as HTMLElement;\n\n const handleTabKeyPress = (event: KeyboardEvent) => {\n if (event.key === 'Tab') {\n if (event.shiftKey && document.activeElement === firstElement) {\n event.preventDefault();\n lastElement.focus();\n } else if (!event.shiftKey && document.activeElement === lastElement) {\n event.preventDefault();\n firstElement.focus();\n }\n }\n };\n\n modalElement.addEventListener('keydown', handleTabKeyPress);\n\n return () => {\n modalElement.removeEventListener('keydown', handleTabKeyPress);\n };\n }, [modalRef, isOpened]);\n};\n","import { FormContextProps } from '@models';\nimport { createContext } from 'react';\n\nexport const FormContext = createContext<FormContextProps>({});\n","import { ThemeMode } from '@enums';\nimport { ThemeContextProps } from '@models';\nimport { createContext } from 'react';\n\nexport const ThemeContext = createContext<ThemeContextProps>({\n mode: ThemeMode.Light,\n setMode: () => {},\n});\n","import '@styles/root.scss';\n\nimport { ThemeMode } from '@enums';\nimport { FC, ReactNode, useEffect, useMemo, useState } from 'react';\n\nimport { ThemeContext } from './ThemeContext';\n\nexport const ThemeProvider: FC<{ children: ReactNode; injectedMode?: ThemeMode }> = ({ children, injectedMode }) => {\n const [mode, setMode] = useState(ThemeMode.Light);\n\n useEffect(() => {\n if (mode && typeof mode === 'string') {\n document.body.classList.remove(ThemeMode.Light, ThemeMode.Dark);\n document.body.classList.add(mode);\n }\n }, [mode]);\n\n useEffect(() => {\n if (injectedMode && typeof injectedMode === 'string') {\n document.body.classList.remove(ThemeMode.Light, ThemeMode.Dark);\n document.body.classList.add(injectedMode);\n }\n }, [injectedMode]);\n\n const providerValue = useMemo(() => ({ mode, setMode }), [mode]);\n\n return <ThemeContext.Provider value={providerValue}>{children}</ThemeContext.Provider>;\n};\n","import { FormContext } from '@contexts';\nimport { useContext, useEffect } from 'react';\n\nexport const useResetFormInput = (onReset: () => void) => {\n const { resetSignal } = useContext(FormContext);\n\n useEffect(() => {\n if (resetSignal) {\n onReset();\n }\n }, [resetSignal, onReset]);\n};\n","import { ThemeContext } from '@contexts';\nimport { useContext } from 'react';\n\nexport const useTheme = () => useContext(ThemeContext);\n","import { Dimensions } from '@models';\nimport { useEffect, useState } from 'react';\n\nfunction getWindowDimensions(): Dimensions {\n const { innerWidth: width, innerHeight: height } = window;\n\n return { width, height };\n}\n\nexport function useWindowDimensions(): Dimensions {\n const [windowDimensions, setWindowDimensions] = useState<Dimensions>(getWindowDimensions());\n\n useEffect(() => {\n function handleResize() {\n setWindowDimensions(getWindowDimensions());\n }\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n return windowDimensions;\n}\n","import { RefObject, useEffect, useState } from 'react';\n\nimport { useContainerDimensions } from '../use-container-dimensions/use-container-dimensions';\nimport { useWindowDimensions } from '../use-window-dimensions/use-window-dimensions';\n\ntype useTooltipPositionParams = {\n wrapperRef: RefObject<HTMLElement | null>;\n tooltipRef: RefObject<HTMLElement | null>;\n isOpened: boolean;\n spacing?: number;\n};\n\nexport const useTooltipPosition = ({ wrapperRef, tooltipRef, isOpened, spacing = 4 }: useTooltipPositionParams) => {\n const [position, setPosition] = useState({ top: 0, left: 0 });\n const { width: tooltipWidth, height: tooltipHeight } = useContainerDimensions({\n ref: tooltipRef,\n isVisible: isOpened,\n });\n const { width: windowWidth, height: windowHeight } = useWindowDimensions();\n\n useEffect(() => {\n if (isOpened && wrapperRef?.current) {\n const rect = wrapperRef?.current.getBoundingClientRect();\n\n let top = Math.round(rect.bottom + spacing);\n let left = Math.round(rect.left);\n\n // Adjust position if tooltip goes beyond the viewport\n if (top + tooltipHeight > window.innerHeight) {\n top = Math.round(rect.top - tooltipHeight - spacing);\n }\n if (left + tooltipWidth > window.innerWidth) {\n left = Math.round(window.innerWidth - tooltipWidth - spacing);\n }\n if (left < 0) {\n left = spacing;\n }\n\n setPosition({ top, left });\n }\n }, [isOpened, wrapperRef, tooltipHeight, tooltipWidth, spacing, windowWidth, windowHeight]);\n\n return position;\n};\n","import { useAutoClose, useClickOutside, useElementIds, useKeyPress, useTooltipPosition } from '@hooks';\nimport { MouseEvent, useRef, useState } from 'react';\n\ntype Params = {\n autoClose: boolean;\n autoCloseDelay: number;\n id?: string;\n};\n\nexport const useTooltipController = ({ id, autoClose, autoCloseDelay }: Params) => {\n const [isOpened, setIsOpened] = useState(false);\n const wrapperRef = useRef(null);\n const tooltipRef = useRef<HTMLDivElement>(null);\n const { top, left } = useTooltipPosition({ wrapperRef, tooltipRef, isOpened });\n const { elementId } = useElementIds(id);\n\n const closeTooltip = () => setIsOpened(false);\n const openTooltip = () => setIsOpened(true);\n const toggleTooltip = () => setIsOpened(!isOpened);\n const handleContextMenu = (e: MouseEvent) => {\n e.preventDefault();\n toggleTooltip();\n };\n\n useKeyPress({ keyCode: 'Escape', ref: tooltipRef, onKeyPress: closeTooltip });\n useClickOutside({ ref: tooltipRef, onClickOutsideHandler: closeTooltip, dependentRef: wrapperRef });\n useAutoClose({\n isOpened,\n onClose: closeTooltip,\n autoClose,\n autoCloseDelay,\n });\n\n return {\n elementId,\n openTooltip,\n closeTooltip,\n toggleTooltip,\n handleContextMenu,\n top,\n left,\n isOpened,\n wrapperRef,\n tooltipRef,\n };\n};\n","import { Portal } from '@atoms';\nimport { TooltipContainer } from '@enums';\nimport { TooltipProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC, MouseEvent } from 'react';\n\nimport { useTooltipController } from './Tooltip.controller';\nimport styles from './Tooltip.module.scss';\n\nconst Tooltip: FC<TooltipProps> = ({\n children,\n tooltipContent,\n id,\n style,\n className,\n containerTag = TooltipContainer.Span,\n visibleOn = 'hover',\n autoClose = false,\n autoCloseDelay = 3000,\n ...rest\n}) => {\n const ContainerComponent = containerTag;\n const { openTooltip, closeTooltip, toggleTooltip, handleContextMenu, elementId, top, left, isOpened, wrapperRef, tooltipRef } =\n useTooltipController({ id, autoClose, autoCloseDelay });\n const tooltipClass = getClassName([styles.tooltip, className]);\n\n return (\n <ContainerComponent\n style={{ position: 'relative', cursor: 'pointer' }}\n onClick={visibleOn === 'click' ? toggleTooltip : undefined}\n onMouseOver={visibleOn === 'hover' ? openTooltip : undefined}\n onMouseLeave={visibleOn === 'hover' ? closeTooltip : undefined}\n onFocus={visibleOn === 'focus' ? openTooltip : undefined}\n onBlur={visibleOn === 'focus' ? closeTooltip : undefined}\n onContextMenu={visibleOn === 'contextmenu' ? (e: MouseEvent) => handleContextMenu(e) : undefined}\n tabIndex={-1}\n ref={wrapperRef}\n aria-describedby={elementId}\n >\n {children}\n {isOpened && (\n <Portal>\n <div style={{ ...style, top, left }} ref={tooltipRef} role='tooltip' id={elementId} {...rest} className={tooltipClass}>\n {tooltipContent}\n </div>\n </Portal>\n )}\n </ContainerComponent>\n );\n};\n\nexport default Tooltip;\n","import { AlertMode, IconName } from '@enums';\n\nexport function getAlertTitle(mode: AlertMode, title?: string): string {\n if (title) return title;\n\n switch (mode) {\n case AlertMode.Info:\n return 'For your information';\n case AlertMode.Warning:\n return 'Please pay attention';\n case AlertMode.Error:\n return 'Something went wrong';\n case AlertMode.Success:\n return 'Everything is okay';\n case AlertMode.Help:\n return 'Useful tip';\n default:\n return 'Alert';\n }\n}\n\nexport function getAlertIcon(mode: AlertMode, icon?: IconName): IconName | undefined {\n if (icon) {\n return icon;\n }\n\n switch (mode) {\n case AlertMode.Info:\n return IconName.Info;\n case AlertMode.Warning:\n return IconName.Warning;\n case AlertMode.Error:\n return IconName.Error;\n case AlertMode.Success:\n return IconName.CheckboxChecked;\n case AlertMode.Help:\n return IconName.Help;\n default:\n return;\n }\n}\n","import { Button, Header, Portal } from '@atoms';\nimport { AlertMode, ButtonView, IconName } from '@enums';\nimport { useAutoClose, useIsMounted } from '@hooks';\nimport { AlertProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC } from 'react';\n\nimport { getAlertIcon, getAlertTitle } from './Alert.helpers';\nimport styles from './Alert.module.scss';\n\nconst Alert: FC<AlertProps> = ({\n isOpened,\n onClose,\n title,\n message,\n mode = AlertMode.Info,\n icon,\n autoClose = false,\n autoCloseDelay = 3000,\n ...rest\n}) => {\n const isMounted = useIsMounted(isOpened);\n const isClosing = isMounted && !isOpened;\n\n useAutoClose({\n isOpened,\n onClose,\n autoClose,\n autoCloseDelay,\n });\n\n if (!isMounted) return null;\n\n const alertTitle = getAlertTitle(mode, title);\n const alertTitleIcon = getAlertIcon(mode, icon);\n\n return (\n <Portal>\n <div className={getClassName([styles.wrapper, { [styles.wrapper__closing]: isClosing }])}>\n <div {...rest} className={styles.content}>\n <Button\n icon={IconName.Cancel}\n view={ButtonView.Icon}\n label='Close alert popup'\n onClick={onClose}\n className={styles.content_button}\n />\n <header>\n <Header icon={alertTitleIcon} as='h3'>\n {alertTitle}\n </Header>\n </header>\n <p>{message}</p>\n </div>\n </div>\n </Portal>\n );\n};\n\nexport default Alert;\n","import { FormValues } from '@models';\n\nexport function getCheckboxInitialValue({\n defaultChecked,\n initialValues,\n name,\n}: {\n defaultChecked?: boolean;\n initialValues?: FormValues;\n name: string;\n}): boolean {\n if (initialValues?.[name] !== undefined) {\n return !!initialValues?.[name];\n }\n\n return Boolean(defaultChecked);\n}\n","import { FormContext } from '@contexts';\nimport { useResetFormInput } from '@hooks';\nimport { ChangeEvent, ChangeEventHandler, useCallback, useContext, useState } from 'react';\n\nimport { getCheckboxInitialValue } from './Checkbox.helpers';\n\nexport function useCheckboxController({\n name,\n defaultChecked,\n onChange,\n}: {\n name: string;\n defaultChecked?: boolean;\n onChange?: ChangeEventHandler<HTMLInputElement>;\n}) {\n const { onChangeFormInput, initialValues } = useContext(FormContext);\n const initialValue = getCheckboxInitialValue({ initialValues, name, defaultChecked });\n const [isChecked, setIsChecked] = useState<boolean>(initialValue);\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n const checked = e.target.checked;\n setIsChecked(checked);\n onChange?.(e);\n onChangeFormInput?.({ name, value: checked });\n };\n\n const handleReset = useCallback(() => {\n setIsChecked(initialValue);\n onChangeFormInput?.({ name, value: initialValue });\n }, [name]);\n\n useResetFormInput(handleReset);\n\n return {\n handleChange,\n checked: isChecked,\n };\n}\n","import { Label } from '@atoms';\nimport { IconName } from '@enums';\nimport { useElementIds } from '@hooks';\nimport { CheckboxProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC } from 'react';\n\nimport { useCheckboxController } from './Checkbox.controller';\nimport styles from './Checkbox.module.scss';\n\nconst Checkbox: FC<CheckboxProps> = ({\n name,\n label,\n disabled,\n noLabel,\n required = false,\n iconPosition = 'left',\n defaultChecked,\n onChange,\n id,\n className,\n ...rest\n}) => {\n const { handleChange, checked } = useCheckboxController({ name, defaultChecked, onChange });\n const { elementId } = useElementIds(id);\n const checkboxClass = getClassName([\n styles.checkbox,\n className,\n {\n [styles.checkbox__disabled]: !!disabled,\n [styles.checkbox__checked]: checked,\n },\n ]);\n\n return (\n <div {...rest} className={checkboxClass}>\n <input\n id={elementId}\n name={name}\n type='checkbox'\n disabled={disabled}\n required={required}\n checked={checked}\n onChange={handleChange}\n aria-label={noLabel ? label : undefined}\n />\n <Label\n label={label}\n required={required}\n inputId={elementId}\n isTextHidden={noLabel}\n icon={checked ? IconName.CheckboxChecked : IconName.CheckboxUnchecked}\n iconPosition={iconPosition}\n />\n </div>\n );\n};\n\nexport default Checkbox;\n","import ArrowDownIcon from '@assets/icons/svg/ArrowDownIcon';\nimport ArrowUpIcon from '@assets/icons/svg/ArrowUpIcon';\nimport { MultiSelectValue } from '@models';\nimport { FC } from 'react';\n\nimport styles from '../select/combobox/Combobox.module.scss';\n\ntype Props = {\n opened: boolean;\n disabled: boolean;\n required: boolean;\n onClick: () => void;\n comboboxId: string;\n dropdownId: string;\n values?: MultiSelectValue[];\n placeholder?: string;\n name: string;\n};\n\nexport const MultiSelectCombobox: FC<Props> = ({\n opened,\n onClick,\n comboboxId,\n dropdownId,\n name,\n placeholder,\n disabled,\n required,\n values,\n}) => {\n const selectedLabels = values?.filter((value) => value.selected).map((value) => value.label);\n const selectedIds = values?.filter((value) => value.selected).map((value) => value.id);\n let selectedValues = <span>{placeholder}</span>;\n\n if (selectedLabels && selectedLabels.length === values?.length) {\n selectedValues = <span>All items selected</span>;\n } else if (selectedLabels && selectedLabels.length === 1) {\n selectedValues = <span>{selectedLabels[0]}</span>;\n } else if (selectedLabels && selectedLabels.length > 1) {\n selectedValues = <span>{`${selectedLabels.length} items selected`}</span>;\n }\n\n return (\n <button\n type='button'\n name={name}\n value={selectedIds}\n role='combobox'\n aria-haspopup='listbox'\n aria-expanded={opened}\n aria-controls={dropdownId}\n id={comboboxId}\n onClick={onClick}\n disabled={disabled}\n aria-required={required}\n className={styles.combobox}\n >\n {selectedValues}\n {opened ? <ArrowUpIcon /> : <ArrowDownIcon />}\n </button>\n );\n};\n","import { FormValues, MultiSelectValue, SelectValue } from '@models';\n\nexport function getMultiSelectInitialValues({\n name,\n options,\n initialValues,\n defaultValue,\n}: {\n name: string;\n options: SelectValue[];\n initialValues?: FormValues;\n defaultValue?: string | number | readonly string[];\n}): MultiSelectValue[] {\n return options.map((option) => {\n let selected = false;\n\n if (initialValues?.[name] && Array.isArray(initialValues[name])) {\n const selectedId = initialValues[name].find((item) => item === option.id || item?.id === option.id);\n if (selectedId) selected = true;\n }\n\n if (!initialValues?.[name] && Array.isArray(defaultValue)) {\n const selectedId = defaultValue.find((item) => item === option.id);\n if (selectedId) selected = true;\n }\n\n return { ...option, selected };\n });\n}\n\nexport const getMultiSelectFormValues = (options: MultiSelectValue[]): string[] => {\n return options.filter((item) => item.selected).map((item) => item.id);\n};\n\nexport const getMultiSelectUpdatedValues = (options: MultiSelectValue[], id: string): MultiSelectValue[] => {\n const targetItem = options.find((item) => item.id === id);\n return options.map((item) => {\n return item.id === id ? { ...item, selected: !targetItem?.selected } : item;\n });\n};\n","import { FormContext } from '@contexts';\nimport { useResetFormInput } from '@hooks';\nimport { MultiSelectValue, SelectValue } from '@models';\nimport { useCallback, useContext, useState } from 'react';\n\nimport { getMultiSelectFormValues, getMultiSelectInitialValues, getMultiSelectUpdatedValues } from './MultiSelect.helpers';\n\nexport function useMultiSelectController({\n name,\n defaultValue,\n onChange,\n options,\n}: {\n name: string;\n defaultValue?: string | number | readonly string[];\n onChange?: (values?: SelectValue[]) => void;\n options: SelectValue[];\n}) {\n const [opened, setOpened] = useState(false);\n const { onChangeFormInput, initialValues } = useContext(FormContext);\n const initialOptions = getMultiSelectInitialValues({ name, options, initialValues, defaultValue });\n const [values, setValues] = useState<MultiSelectValue[]>(initialOptions);\n\n const handleClose = () => setOpened(false);\n\n const handleToggle = () => setOpened(!opened);\n\n const handleSelect = (id: string) => {\n const newValues = getMultiSelectUpdatedValues(values, id);\n\n setValues(newValues);\n onChange?.(newValues);\n onChangeFormInput?.({ name, value: getMultiSelectFormValues(newValues) });\n };\n\n const handleReset = useCallback(() => {\n setOpened(false);\n setValues(initialOptions);\n onChangeFormInput?.({ name, value: getMultiSelectFormValues(initialOptions) });\n }, [name]);\n\n useResetFormInput(handleReset);\n\n return {\n handleClose,\n handleToggle,\n handleSelect,\n opened,\n values,\n };\n}\n","import CheckboxCheckedIcon from '@assets/icons/svg/CheckboxCheckedIcon';\nimport CheckboxUncheckedIcon from '@assets/icons/svg/CheckboxUncheckedIcon';\nimport { MultiSelectValue } from '@models';\nimport { getClassName } from '@utils';\nimport { FC, KeyboardEvent } from 'react';\n\nimport styles from '../select/option/Option.module.scss';\n\ntype Props = {\n value: MultiSelectValue;\n onSelect: (id: string) => void;\n};\n\nexport const MultiSelectOption: FC<Props> = ({ value, onSelect }) => {\n const { id, label, selected } = value;\n const optionClass = getClassName([styles.option, styles.option__multi, { [styles.option__selected]: selected }]);\n\n const handleKeyDown = (id: string) => (e: KeyboardEvent<HTMLLIElement>) => {\n switch (e.key) {\n case ' ':\n case 'SpaceBar':\n case 'Enter':\n e.preventDefault();\n onSelect(id);\n break;\n default:\n break;\n }\n };\n\n return (\n <li\n id={id}\n role='option'\n aria-selected={selected}\n tabIndex={0}\n onKeyDown={handleKeyDown(id)}\n onClick={() => onSelect(id)}\n className={optionClass}\n >\n {selected ? <CheckboxCheckedIcon /> : <CheckboxUncheckedIcon />}\n <span>{label}</span>\n </li>\n );\n};\n","import { MultiSelectValue } from '@models';\nimport { getClassName, handleDropdownListKeyPress } from '@utils';\nimport { FC } from 'react';\n\nimport styles from '../select/dropdown/Dropdown.module.scss';\nimport { MultiSelectOption } from './Option';\n\ntype Props = {\n options: MultiSelectValue[];\n opened: boolean;\n dropdownId: string;\n onClose: () => void;\n onSelect: (id: string) => void;\n};\n\nexport const MultiSelectDropdown: FC<Props> = ({ options, opened, onClose, onSelect, dropdownId }) => {\n const dropdownClass = getClassName([styles.dropdown, { [styles.dropdown__opened]: opened }]);\n\n return (\n <ul\n role='listbox'\n id={dropdownId}\n tabIndex={-1}\n onKeyDown={(e) => handleDropdownListKeyPress({ e, options, onClose })}\n className={dropdownClass}\n >\n {options.map((item) => (\n <MultiSelectOption key={item.id} value={item} onSelect={() => onSelect(item.id)} />\n ))}\n </ul>\n );\n};\n","import { Label } from '@atoms';\nimport { useClickOutside, useElementIds, useKeyPress } from '@hooks';\nimport { MultiSelectProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC, useRef } from 'react';\n\nimport styles from '../select/Select.module.scss';\nimport { MultiSelectCombobox } from './MultiSelect.Combobox';\nimport { useMultiSelectController } from './MultiSelect.controller';\nimport { MultiSelectDropdown } from './MultiSelect.Dropdown';\n\nconst MultiSelect: FC<MultiSelectProps> = ({\n options,\n name,\n label,\n required = false,\n placeholder = 'Not selected',\n disabled = false,\n onChange,\n defaultValue,\n id,\n className,\n ...rest\n}) => {\n const ref = useRef(null);\n const { elementId, dropdownId } = useElementIds(id);\n const { handleClose, handleSelect, handleToggle, opened, values } = useMultiSelectController({\n name,\n options,\n defaultValue,\n onChange,\n });\n const multiSelectClass = getClassName([styles.wrapper, className]);\n\n useClickOutside({ ref, onClickOutsideHandler: handleClose });\n useKeyPress({ keyCode: 'Escape', ref, onKeyPress: handleClose });\n\n return (\n <div ref={ref} {...rest} className={multiSelectClass}>\n <Label label={label} required={required} inputId={elementId} />\n <MultiSelectCombobox\n name={name}\n opened={opened}\n comboboxId={elementId}\n dropdownId={dropdownId}\n onClick={handleToggle}\n values={values}\n placeholder={placeholder}\n disabled={disabled}\n required={required}\n />\n <MultiSelectDropdown options={values} opened={opened} onClose={handleClose} dropdownId={dropdownId} onSelect={handleSelect} />\n </div>\n );\n};\n\nexport default MultiSelect;\n","import { FormValues, NumericInputValidator } from '@models';\n\nexport function getNumericInputInitialValue({\n name,\n initialValues,\n defaultValue,\n}: {\n name: string;\n initialValues?: FormValues;\n defaultValue?: string | number | readonly string[];\n}): number {\n if (initialValues?.[name]) {\n return Number(initialValues[name]);\n }\n\n if (defaultValue && typeof defaultValue === 'number') {\n return defaultValue;\n }\n\n return 0;\n}\n\nexport function validateNumericInputValue({\n value,\n required,\n validator,\n maxValue,\n minValue,\n}: {\n value?: number;\n required?: boolean;\n validator?: NumericInputValidator;\n maxValue?: number;\n minValue?: number;\n}): boolean {\n if (required && !validator && value === undefined) {\n return false;\n }\n\n if (validator && typeof validator === 'function') {\n return validator(value);\n }\n\n if (maxValue && minValue && value && !validator) {\n return value <= maxValue && value >= minValue;\n }\n\n return true;\n}\n","import { FormContext } from '@contexts';\nimport { useResetFormInput } from '@hooks';\nimport { NumericInputValidator } from '@models';\nimport { ChangeEvent, ChangeEventHandler, useCallback, useContext, useState } from 'react';\n\nimport { getNumericInputInitialValue, validateNumericInputValue } from './NumericInput.helpers';\n\nexport function useNumericInputController({\n name,\n defaultValue,\n onChange,\n onSpinButtonClick,\n min,\n max,\n step,\n required,\n validator,\n}: {\n name: string;\n defaultValue?: string | number | readonly string[];\n onChange?: ChangeEventHandler<HTMLInputElement>;\n onSpinButtonClick?: (value?: number) => void;\n min?: string | number;\n max?: string | number;\n step: number;\n required: boolean;\n validator?: NumericInputValidator;\n}) {\n const { onChangeFormInput, initialValues } = useContext(FormContext);\n const initialValue = getNumericInputInitialValue({ initialValues, defaultValue, name });\n const maxValue = max ? Number(max) : Number.MAX_SAFE_INTEGER;\n const minValue = min ? Number(min) : Number.MIN_SAFE_INTEGER;\n const [value, setValue] = useState<number>(initialValue);\n const [valid, setValid] = useState<boolean>(true);\n\n const updateValue = (value: number) => {\n setValue(value);\n const valid = validateNumericInputValue({ value, required, validator, maxValue, minValue });\n setValid(valid);\n onChangeFormInput?.({ name, value, valid });\n };\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const value = Number(event.target.value);\n updateValue(value);\n onChange?.(event);\n };\n\n const increment = () => {\n updateValue(value + step);\n onSpinButtonClick?.(value + step);\n };\n\n const decrement = () => {\n updateValue(value - step);\n onSpinButtonClick?.(value - step);\n };\n\n const handleReset = useCallback(() => {\n setValue(initialValue);\n setValid(true);\n onChangeFormInput?.({ name, value: initialValue, valid: true });\n }, [name]);\n\n useResetFormInput(handleReset);\n\n return {\n handleChange,\n value,\n valid,\n minValue,\n maxValue,\n increment,\n decrement,\n };\n}\n","import { ErrorMessage, Input, Label } from '@atoms';\nimport Button from '@atoms/button/Button';\nimport { ButtonView, IconName } from '@enums';\nimport { useElementIds } from '@hooks';\nimport { NumericInputProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC } from 'react';\n\nimport { useNumericInputController } from './NumericInput.controller';\nimport styles from './NumericInput.module.scss';\n\nconst NumericInput: FC<NumericInputProps> = ({\n name,\n label,\n errorMessage,\n onChange,\n onBlur,\n onFocus,\n onSpinButtonClick,\n validator,\n min,\n max,\n id,\n tabIndex,\n disabled = false,\n required = false,\n readOnly = false,\n hasSpinButtons = true,\n defaultValue = 0,\n step = 1,\n className,\n ...rest\n}) => {\n const { elementId, errorId } = useElementIds(id);\n const { value, valid, handleChange, increment, decrement, minValue, maxValue } = useNumericInputController({\n name,\n defaultValue,\n min,\n max,\n onChange,\n required,\n validator,\n step,\n onSpinButtonClick,\n });\n const inputClass = getClassName([styles.numeric, className]);\n\n return (\n <div {...rest} className={inputClass}>\n <Label label={label} required={required} inputId={elementId} />\n <Input\n id={elementId}\n name={name}\n type='number'\n disabled={disabled}\n required={required}\n readOnly={readOnly}\n placeholder='0'\n aria-invalid={!valid}\n aria-errormessage={errorId}\n value={value.toString()}\n onChange={handleChange}\n min={minValue}\n max={maxValue}\n step={step}\n onBlur={onBlur}\n onFocus={onFocus}\n tabIndex={tabIndex}\n >\n {hasSpinButtons && (\n <span>\n <Button\n onClick={decrement}\n view={ButtonView.Inner}\n label={`Decrement value for ${label}`}\n icon={IconName.ChevronLeft}\n disabled={disabled}\n />\n <Button\n onClick={increment}\n view={ButtonView.Inner}\n label={`Increment value for ${label}`}\n icon={IconName.ChevronRight}\n disabled={disabled}\n />\n </span>\n )}\n <ErrorMessage errorId={errorId} message={errorMessage} visible={!valid} className={styles.errorMessage} />\n </Input>\n </div>\n );\n};\n\nexport default NumericInput;\n","import ArrowDownIcon from '@assets/icons/svg/ArrowDownIcon';\nimport ArrowUpIcon from '@assets/icons/svg/ArrowUpIcon';\nimport { SelectValue } from '@models';\nimport { FC } from 'react';\n\nimport styles from './Combobox.module.scss';\n\ntype Props = {\n opened: boolean;\n disabled: boolean;\n required: boolean;\n onClick: () => void;\n comboboxId: string;\n dropdownId: string;\n selected?: SelectValue;\n placeholder?: string;\n name: string;\n};\n\nexport const SelectCombobox: FC<Props> = ({ opened, onClick, comboboxId, dropdownId, selected, name, placeholder, disabled, required }) => {\n return (\n <button\n type='button'\n name={name}\n value={selected?.id}\n role='combobox'\n aria-haspopup='listbox'\n aria-expanded={opened}\n aria-controls={dropdownId}\n id={comboboxId}\n onClick={onClick}\n disabled={disabled}\n aria-required={required}\n className={styles.combobox}\n >\n {selected?.label ? <span>{selected?.label}</span> : <span>{placeholder}</span>}\n {opened ? <ArrowUpIcon /> : <ArrowDownIcon />}\n </button>\n );\n};\n","import CheckMarkIcon from '@assets/icons/svg/CheckMarkIcon';\nimport { SelectValue } from '@models';\nimport { getClassName } from '@utils';\nimport { FC, KeyboardEvent } from 'react';\n\nimport styles from './Option.module.scss';\n\ntype Props = {\n value: SelectValue;\n selected: boolean;\n onSelect: (id: string) => void;\n onClear: () => void;\n};\n\nexport const SelectOption: FC<Props> = ({ value, selected, onSelect, onClear }) => {\n const { id, label } = value;\n const optionClass = getClassName([styles.option, { [styles.option__selected]: selected }]);\n\n const handleOptionSelect = (id: string) => {\n if (selected) {\n onClear();\n } else {\n onSelect(id);\n }\n };\n\n const handleKeyDown = (id: string) => (e: KeyboardEvent<HTMLLIElement>) => {\n switch (e.key) {\n case ' ':\n case 'SpaceBar':\n case 'Enter':\n e.preventDefault();\n handleOptionSelect(id);\n break;\n default:\n break;\n }\n };\n\n return (\n <li\n id={id}\n role='option'\n aria-selected={selected}\n tabIndex={0}\n onKeyDown={handleKeyDown(id)}\n onClick={() => handleOptionSelect(id)}\n className={optionClass}\n >\n <span>{label}</span>\n {selected && <CheckMarkIcon />}\n </li>\n );\n};\n","import { SelectValue } from '@models';\nimport { getClassName, handleDropdownListKeyPress, moveFocusOnElementById } from '@utils';\nimport { FC } from 'react';\n\nimport { SelectOption } from '../option/Option';\nimport styles from './Dropdown.module.scss';\n\ntype Props = {\n options: SelectValue[];\n opened: boolean;\n dropdownId: string;\n comboboxId: string;\n onClose: () => void;\n selected?: SelectValue;\n onSelect: (id: string) => void;\n onClear: () => void;\n};\n\nexport const SelectDropdown: FC<Props> = ({ options, opened, onClose, onSelect, dropdownId, comboboxId, selected, onClear }) => {\n const handleOptionSelect = (id: string) => {\n onSelect(id);\n onClose();\n moveFocusOnElementById(comboboxId);\n };\n const dropdownClass = getClassName([styles.dropdown, { [styles.dropdown__opened]: opened }]);\n\n return (\n <ul\n role='listbox'\n id={dropdownId}\n tabIndex={-1}\n onKeyDown={(e) => handleDropdownListKeyPress({ e, options, onClose })}\n className={dropdownClass}\n >\n {options.map((item) => (\n <SelectOption\n key={item.id}\n value={item}\n onSelect={() => handleOptionSelect(item.id)}\n onClear={onClear}\n selected={item.id === selected?.id}\n />\n ))}\n </ul>\n );\n};\n","import { FormValues, SelectValue } from '@models';\n\nexport function getSelectInitialValue({\n name,\n options,\n initialValues,\n defaultValue,\n}: {\n name: string;\n options: SelectValue[];\n initialValues?: FormValues;\n defaultValue?: string | number | readonly string[];\n}): SelectValue | undefined {\n let valueId: string;\n\n if (initialValues && Object.prototype.hasOwnProperty.call(initialValues, name)) {\n const value = initialValues[name];\n valueId = ((value as FormValues)?.id as string) ?? (value as string);\n }\n\n if (!initialValues?.[name] && defaultValue && typeof defaultValue === 'string') {\n valueId = defaultValue;\n }\n\n return options.find((item) => item.id === valueId);\n}\n","import { FormContext } from '@contexts';\nimport { useResetFormInput } from '@hooks';\nimport { SelectValue } from '@models';\nimport { useCallback, useContext, useState } from 'react';\n\nimport { getSelectInitialValue } from './Select.helpers';\n\nexport function useSelectController({\n name,\n defaultValue,\n onChange,\n options,\n}: {\n name: string;\n defaultValue?: string | number | readonly string[];\n onChange?: (value?: SelectValue) => void;\n options: SelectValue[];\n}) {\n const { onChangeFormInput, initialValues } = useContext(FormContext);\n const initialValue = getSelectInitialValue({ name, options, defaultValue, initialValues });\n const [opened, setOpened] = useState(false);\n const [selected, setSelected] = useState<SelectValue | undefined>(initialValue);\n\n const handleClose = () => setOpened(false);\n\n const handleToggle = () => setOpened(!opened);\n\n const handleSelect = (id: string) => {\n const newValue = options.find((item) => item.id === id);\n setSelected(newValue);\n onChange?.(newValue);\n onChangeFormInput?.({ name, value: newValue?.id });\n };\n\n const handleClear = () => {\n setSelected(undefined);\n onChange?.(undefined);\n };\n\n const handleReset = useCallback(() => {\n setOpened(false);\n setSelected(initialValue);\n onChangeFormInput?.({ name, value: initialValue?.id });\n }, [name]);\n\n useResetFormInput(handleReset);\n\n return {\n selected,\n opened,\n handleClear,\n handleClose,\n handleToggle,\n handleSelect,\n };\n}\n","import { Label } from '@atoms';\nimport { useClickOutside, useElementIds, useKeyPress } from '@hooks';\nimport { SelectProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC, useRef } from 'react';\n\nimport { SelectCombobox } from './combobox/Combobox';\nimport { SelectDropdown } from './dropdown/Dropdown';\nimport { useSelectController } from './Select.controller';\nimport styles from './Select.module.scss';\n\nconst Select: FC<SelectProps> = ({\n options,\n onChange,\n name,\n label,\n defaultValue,\n id,\n placeholder = 'Not selected',\n required = false,\n disabled = false,\n className,\n ...rest\n}) => {\n const ref = useRef<HTMLDivElement>(null);\n const { elementId, dropdownId } = useElementIds(id);\n const { handleClear, handleClose, handleSelect, handleToggle, selected, opened } = useSelectController({\n options,\n onChange,\n defaultValue,\n name,\n });\n const selectClass = getClassName([styles.wrapper, className]);\n\n useClickOutside({ ref, onClickOutsideHandler: handleClose });\n useKeyPress({ keyCode: 'Escape', ref, onKeyPress: handleClose });\n\n return (\n <div ref={ref} {...rest} className={selectClass}>\n <Label label={label} required={required} inputId={elementId} />\n <SelectCombobox\n name={name}\n opened={opened}\n comboboxId={elementId}\n dropdownId={dropdownId}\n onClick={handleToggle}\n selected={selected}\n placeholder={placeholder}\n disabled={disabled}\n required={required}\n />\n <SelectDropdown\n options={options}\n selected={selected}\n opened={opened}\n onClose={handleClose}\n dropdownId={dropdownId}\n comboboxId={elementId}\n onSelect={handleSelect}\n onClear={handleClear}\n />\n </div>\n );\n};\n\nexport default Select;\n","import { ChopLogicRegExpWithFlags, FormValues, TextInputValidator } from '@models';\n\nexport function validateTextInputValue({\n value,\n required,\n validator,\n}: {\n value: string;\n required: boolean;\n validator?: ChopLogicRegExpWithFlags | TextInputValidator;\n}): boolean {\n if (required && !validator && !value.length) {\n return false;\n }\n\n if (validator && typeof validator === 'function') {\n return validator(value);\n }\n\n if (validator && typeof validator === 'object') {\n return new RegExp(validator.regexp, validator?.flags).test(value);\n }\n\n return true;\n}\n\nexport function getTextInputInitialValue({\n name,\n initialValues,\n defaultValue,\n}: {\n name: string;\n initialValues?: FormValues;\n defaultValue?: string | number | readonly string[];\n}): string {\n if (initialValues?.[name]) {\n return (initialValues[name] as string).toString();\n }\n\n if (defaultValue && typeof defaultValue === 'string') {\n return defaultValue;\n }\n\n return '';\n}\n","import { FormContext } from '@contexts';\nimport { useResetFormInput } from '@hooks';\nimport { ChopLogicRegExpWithFlags, TextInputValidator } from '@models';\nimport { ChangeEvent, ChangeEventHandler, useCallback, useContext, useState } from 'react';\n\nimport { getTextInputInitialValue, validateTextInputValue } from './TextInput.helpers';\n\nexport function useTextInputController({\n name,\n defaultValue,\n onChange,\n onClear,\n required,\n validator,\n}: {\n name: string;\n required: boolean;\n validator?: ChopLogicRegExpWithFlags | TextInputValidator;\n defaultValue?: string | number | readonly string[];\n onChange?: ChangeEventHandler<HTMLInputElement>;\n onClear?: () => void;\n}) {\n const { onChangeFormInput, initialValues } = useContext(FormContext);\n const initialValue = getTextInputInitialValue({ initialValues, defaultValue, name });\n const [value, setValue] = useState<string>(initialValue);\n const [valid, setValid] = useState<boolean>(true);\n const [passwordShown, setPasswordShown] = useState<boolean>(false);\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const value = event.target.value;\n const valid = validateTextInputValue({ value, required, validator });\n\n setValue(value);\n setValid(valid);\n onChangeFormInput?.({ name, value, valid });\n onChange?.(event);\n };\n\n const handleClear = () => {\n setValue('');\n setValid(true);\n onChangeFormInput?.({ name, value: '', valid: true });\n onClear?.();\n };\n\n const handleReset = useCallback(() => {\n setValue(initialValue);\n setValid(true);\n onChangeFormInput?.({ name, value: initialValue, valid: true });\n }, [name]);\n\n const togglePassword = () => {\n setPasswordShown(!passwordShown);\n };\n\n useResetFormInput(handleReset);\n\n return {\n value,\n valid,\n passwordShown,\n handleChange,\n handleClear,\n togglePassword,\n };\n}\n","import { Button, ErrorMessage, Input, Label } from '@atoms';\nimport { ButtonView, IconName } from '@enums';\nimport { useElementIds } from '@hooks';\nimport { TextInputProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC } from 'react';\n\nimport { useTextInputController } from './TextInput.controller';\nimport styles from './TextInput.module.scss';\n\nconst TextInput: FC<TextInputProps> = ({\n name,\n label,\n errorMessage,\n defaultValue,\n onChange,\n onBlur,\n onFocus,\n onClear,\n validator,\n maxLength,\n id,\n tabIndex,\n placeholder = 'Type here...',\n disabled = false,\n required = false,\n clearable = true,\n readOnly = false,\n autoComplete = 'off',\n type = 'text',\n className,\n ...rest\n}) => {\n const { value, valid, handleChange, handleClear, passwordShown, togglePassword } = useTextInputController({\n defaultValue,\n name,\n onChange,\n onClear,\n required,\n validator,\n });\n const { elementId, errorId } = useElementIds(id);\n const isPasswordButtonVisible = type === 'password';\n const inputClass = getClassName([styles.wrapper, className]);\n\n return (\n <div {...rest} className={inputClass}>\n <Label label={label} required={required} inputId={elementId} />\n <Input\n id={elementId}\n name={name}\n type={passwordShown ? 'text' : type}\n disabled={disabled}\n placeholder={placeholder}\n required={required}\n readOnly={readOnly}\n autoComplete={autoComplete}\n aria-invalid={!valid}\n aria-errormessage={errorId}\n aria-readonly={readOnly}\n value={value}\n onChange={handleChange}\n maxLength={maxLength}\n onBlur={onBlur}\n onFocus={onFocus}\n tabIndex={tabIndex}\n >\n <span>\n {clearable && (\n <Button\n view={ButtonView.Inner}\n onClick={handleClear}\n label={`Clear input for ${label}`}\n icon={IconName.Remove}\n disabled={disabled}\n />\n )}\n {isPasswordButtonVisible && (\n <Button\n onClick={togglePassword}\n view={ButtonView.Inner}\n label='Toggle password visibility'\n icon={passwordShown ? IconName.Hide : IconName.Show}\n disabled={disabled}\n />\n )}\n </span>\n <ErrorMessage errorId={errorId} message={errorMessage} visible={!valid} className={styles.errorMessage} />\n </Input>\n </div>\n );\n};\n\nexport default TextInput;\n","import { Button, Header, Portal } from '@atoms';\nimport { ButtonView, IconName } from '@enums';\nimport { useIsMounted, useKeyPress, useModalFocusTrap } from '@hooks';\nimport { DialogProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC, useRef } from 'react';\n\nimport styles from './Dialog.module.scss';\n\nconst Dialog: FC<DialogProps> = ({ isOpened, onClose, title, children, icon, ...rest }) => {\n const isMounted = useIsMounted(isOpened);\n const isClosing = isMounted && !isOpened;\n\n const modalRef = useRef(null);\n\n useModalFocusTrap({ modalRef, isOpened });\n useKeyPress({ keyCode: 'Escape', ref: modalRef, onKeyPress: onClose });\n\n if (!isMounted) {\n return null;\n }\n\n return (\n <Portal>\n <div className={getClassName([styles.dialog, { [styles.dialog__closing]: isClosing }])}>\n <div ref={modalRef} role='dialog' aria-modal='true' {...rest} className={styles.layout}>\n <Button\n icon={IconName.Cancel}\n view={ButtonView.Icon}\n label='Close modal window'\n onClick={onClose}\n className={styles.layout_button}\n />\n <header>\n <Header as='h3' icon={icon}>\n {title}\n </Header>\n </header>\n <div>{children}</div>\n </div>\n </div>\n </Portal>\n );\n};\n\nexport default Dialog;\n","import { FormInputParams, FormValidationState, FormValues } from '@models';\n\nexport function getInitialValidationState(data?: FormValues): FormValidationState {\n if (!data) return [];\n\n return Object.keys(data).map((key) => [key, true]);\n}\n\nexport function updateValidationState(state: FormValidationState, params: FormInputParams): FormValidationState {\n if (params?.valid === undefined) return state;\n\n return state.map((item) => {\n if (item[0] !== params.name) return item;\n return [item[0], !!params?.valid];\n });\n}\n\nexport function isFormDataValid(state: FormValidationState): boolean {\n return state.every((item) => item[1]);\n}\n","import { FormInputParams, FormValues } from '@models';\nimport { FormEvent, FormEventHandler, useState } from 'react';\n\nimport { getInitialValidationState, isFormDataValid, updateValidationState } from './Form.helpers';\n\nexport function useFormController({\n initialValues,\n onReset,\n onSubmit,\n onClickSubmit,\n}: {\n initialValues?: FormValues;\n onReset?: FormEventHandler<HTMLFormElement>;\n onSubmit?: FormEventHandler<HTMLFormElement>;\n onClickSubmit?: (data: FormValues) => void;\n}) {\n const [formData, setFormData] = useState(initialValues);\n const [validationState, setValidationState] = useState(getInitialValidationState(initialValues));\n const [resetSignal, setResetSignal] = useState(0);\n\n const handleInputChange = (params: FormInputParams) => {\n const newData = { ...formData, [params.name]: params.value };\n setFormData(newData);\n setValidationState(updateValidationState(validationState, params));\n };\n\n const handleSubmit = (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n\n const uncontrolledData = Object.fromEntries(new FormData(event.target as HTMLFormElement));\n const resultData = { ...uncontrolledData, ...formData };\n\n onSubmit?.(event);\n onClickSubmit?.(resultData);\n };\n\n const handleReset = (event: FormEvent<HTMLFormElement>) => {\n onReset?.(event);\n setFormData(initialValues);\n setResetSignal(resetSignal + 1);\n };\n\n return {\n handleInputChange,\n handleSubmit,\n handleReset,\n resetSignal,\n valid: isFormDataValid(validationState),\n };\n}\n","import { Button } from '@atoms';\nimport { FormContext } from '@contexts';\nimport { ButtonView, IconName } from '@enums';\nimport { FormProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC } from 'react';\n\nimport { useFormController } from './Form.controller';\nimport styles from './Form.module.scss';\n\nconst Form: FC<FormProps> = ({\n children,\n initialValues,\n onReset,\n onSubmit,\n onClickSubmit,\n columns = 1,\n hasReset = true,\n className,\n ...rest\n}) => {\n const { handleInputChange, handleSubmit, handleReset, resetSignal, valid } = useFormController({\n initialValues,\n onReset,\n onSubmit,\n onClickSubmit,\n });\n const columnsNumber = columns <= 6 && columns >= 1 ? columns : 1;\n const formClass = getClassName([styles.form, className]);\n\n return (\n <form onSubmit={handleSubmit} onReset={handleReset} {...rest} className={`${formClass} ${styles[`columns-${columnsNumber}`]}`}>\n <FormContext.Provider value={{ onChangeFormInput: handleInputChange, initialValues, resetSignal }}>\n {children}\n <div className={`${styles.buttons} ${styles[`buttons-${columnsNumber}`]}`}>\n {hasReset && <Button type='reset' text='Reset' icon={IconName.Clear} view={ButtonView.Secondary} />}\n <Button type='submit' text='Submit' icon={IconName.Forward} extended={!hasReset} disabled={!valid} />\n </div>\n </FormContext.Provider>\n </form>\n );\n};\n\nexport default Form;\n","import { GridColumn, GridItem, RenderDataItemCallback } from '@models';\nimport { ReactElement } from 'react';\n\nexport function getGridRowValues({\n item,\n columns,\n renderDataItem,\n}: {\n item: GridItem;\n columns: GridColumn[];\n renderDataItem?: RenderDataItemCallback;\n}): (string | ReactElement)[] {\n const values = [];\n for (const column of columns) {\n let value;\n\n if (renderDataItem && item[column.field]) {\n value = renderDataItem(item, column.field);\n } else if (item[column.field]) {\n value = (item[column.field] as string).toString();\n } else {\n value = '';\n }\n\n values.push(value);\n }\n\n return values;\n}\n","import { FC, ReactElement } from 'react';\n\nimport styles from './GridDataCell.module.scss';\n\nexport const GridDataCell: FC<{ value: ReactElement | string }> = ({ value }) => {\n return <td className={styles.cell}>{value}</td>;\n};\n","import { Label } from '@atoms';\nimport { IconName } from '@enums';\nimport { useElementIds } from '@hooks';\nimport { getClassName } from '@utils';\nimport { FC, InputHTMLAttributes } from 'react';\n\nimport styles from './GridCheckbox.module.scss';\n\ntype Props = InputHTMLAttributes<HTMLInputElement> & {\n label: string;\n};\n\nexport const GridCheckbox: FC<Props> = ({ name, label, disabled, required = false, onChange, checked = false, ...props }) => {\n const { elementId } = useElementIds(props?.id);\n const checkboxClass = getClassName([\n styles.checkbox,\n {\n [styles.checkbox__disabled]: !!disabled,\n [styles.checkbox__checked]: checked,\n },\n ]);\n\n return (\n <div className={checkboxClass}>\n <input\n id={elementId}\n name={name}\n type='checkbox'\n disabled={disabled}\n required={required}\n checked={checked}\n onChange={onChange}\n className={styles.checkbox_input}\n />\n <Label\n label={label}\n required={required}\n inputId={elementId}\n isTextHidden={true}\n iconPosition='left'\n icon={checked ? IconName.CheckboxChecked : IconName.CheckboxUnchecked}\n />\n </div>\n );\n};\n","import { ChangeEvent, FC } from 'react';\n\nimport { GridCheckbox } from '../checkbox/GridCheckbox';\nimport styles from './SelectGridRowCell.module.scss';\n\ntype Props = {\n rowId: string;\n isRowSelected: boolean;\n selectRowById: (id: string) => void;\n deselectRowById: (id: string) => void;\n disabled?: boolean;\n};\n\nexport const SelectGridRowCell: FC<Props> = ({ rowId, isRowSelected, selectRowById, deselectRowById, disabled }) => {\n const handleSelectById = (e: ChangeEvent<HTMLInputElement>) => {\n const { checked } = e.target;\n if (checked) {\n selectRowById(rowId);\n } else {\n deselectRowById(rowId);\n }\n };\n\n return (\n <td className={styles.cell}>\n <GridCheckbox label='Select row' onChange={handleSelectById} id={`select_row_${rowId}`} checked={isRowSelected} disabled={disabled} />\n </td>\n );\n};\n","import { getClassName } from '@utils';\nimport { FC, ReactElement } from 'react';\n\nimport { GridDataCell } from '../data-cell/GridDataCell';\nimport { SelectGridRowCell } from '../select-grid-row-cell/SelectGridRowCell';\nimport styles from './GridRow.module.scss';\n\ntype Props = {\n rowId: string;\n selectedIds: string[];\n selectRowById: (id: string) => void;\n deselectRowById: (id: string) => void;\n selectable: boolean;\n values: (string | ReactElement)[];\n disabled?: boolean;\n};\n\nexport const GridRow: FC<Props> = ({ rowId, selectRowById, deselectRowById, selectable, values, selectedIds, disabled }) => {\n const selected = selectedIds.includes(rowId);\n\n return (\n <tr className={getClassName([styles.row, { [styles.row__selected]: selected }])}>\n {selectable && (\n <SelectGridRowCell\n rowId={rowId}\n selectRowById={selectRowById}\n deselectRowById={deselectRowById}\n isRowSelected={selected}\n disabled={disabled}\n />\n )}\n {values.map((value, index) => (\n <GridDataCell key={`row_${index}`} value={value} />\n ))}\n </tr>\n );\n};\n","import { GridColumn, GridItem, RenderDataItemCallback } from '@models';\nimport { getGridRowValues } from '@organisms/grid/Grid.helpers';\nimport { FC } from 'react';\n\nimport { GridRow } from '../grid-row/GridRow';\nimport styles from './GridBody.module.scss';\n\ntype Props = {\n data: GridItem[];\n columns: GridColumn[];\n selectedIds: string[];\n selectRowById: (id: string) => void;\n deselectRowById: (id: string) => void;\n renderDataItem?: RenderDataItemCallback;\n selectable: boolean;\n};\n\nexport const GridBody: FC<Props> = ({ selectRowById, deselectRowById, renderDataItem, selectedIds, selectable, data, columns }) => {\n return (\n <tbody className={styles.body}>\n {data.map((item) => {\n const values = getGridRowValues({ item, columns, renderDataItem });\n return (\n <GridRow\n key={item.id}\n rowId={item.id}\n disabled={item?.disabled}\n selectRowById={selectRowById}\n deselectRowById={deselectRowById}\n selectable={selectable}\n values={values}\n selectedIds={selectedIds}\n />\n );\n })}\n </tbody>\n );\n};\n","import { GridColumn } from '@models';\nimport { getClassName } from '@utils';\nimport { FC } from 'react';\n\nimport styles from './GridColumnGroup.module.scss';\n\nexport const GridColumnGroup: FC<{ columns: GridColumn[]; selectable: boolean }> = ({ columns, selectable }) => {\n return (\n <colgroup>\n {selectable && <col className={getClassName([styles.column, styles.column__first])} />}\n {columns.map((column, index) => (\n <col\n key={column?.title}\n className={getClassName([\n styles.column,\n column?.className,\n {\n [styles.column__first]: index === 0 && !selectable,\n [styles.column__highlighted]: !!column?.highlighted,\n },\n ])}\n />\n ))}\n </colgroup>\n );\n};\n","import { useElementIds } from '@hooks';\nimport { GridItem } from '@models';\nimport { useState } from 'react';\n\nexport const useGridController = ({ data, id, onSelect }: { data: GridItem[]; id?: string; onSelect?: (ids: string[]) => void }) => {\n const { elementId } = useElementIds(id);\n const [selectedIds, setSelectedIds] = useState<string[]>([]);\n const allIds = data.map((item) => item.id);\n const isAllSelected = allIds.length === selectedIds.length;\n const isAllCheckboxDisabled = data.some((item) => item?.disabled);\n\n const handleSelect = (ids: string[]) => {\n setSelectedIds(ids);\n onSelect?.(ids);\n };\n\n const handleSelectAll = () => {\n handleSelect(allIds);\n };\n\n const handleDeselectAll = () => {\n handleSelect([]);\n };\n\n const handleSelectRowById = (id: string) => {\n const newIds = [...selectedIds, id];\n handleSelect(newIds);\n };\n\n const handleDeselectRowById = (id: string) => {\n const newIds = selectedIds.filter((item) => item !== id);\n handleSelect(newIds);\n };\n return {\n elementId,\n isAllSelected,\n isAllCheckboxDisabled,\n selectedIds,\n handleSelectAll,\n handleDeselectAll,\n handleSelectRowById,\n handleDeselectRowById,\n };\n};\n","import { FC } from 'react';\n\nimport styles from './HeaderCell.module.scss';\n\nexport const GridHeaderCell: FC<{ title?: string; component?: React.ReactElement }> = ({ title, component }) => {\n return <th className={styles.headerCell}>{component ?? title ?? ''}</th>;\n};\n","import { ChangeEvent, FC } from 'react';\n\nimport { GridCheckbox } from '../checkbox/GridCheckbox';\nimport styles from './SelectAllGridRowsCell.module.scss';\n\ntype Props = {\n gridId: string;\n isAllSelected: boolean;\n selectAll: () => void;\n deselectAll: () => void;\n disabled?: boolean;\n};\n\nexport const SelectAllGridRowsCell: FC<Props> = ({ gridId, isAllSelected, selectAll, deselectAll, disabled }) => {\n const handleSelectAll = (e: ChangeEvent<HTMLInputElement>) => {\n const { checked } = e.target;\n if (checked) {\n selectAll();\n } else {\n deselectAll();\n }\n };\n\n return (\n <th className={styles.headerCell}>\n <GridCheckbox\n label='Select all rows'\n onChange={handleSelectAll}\n id={`select_all_${gridId}`}\n checked={isAllSelected}\n disabled={disabled}\n />\n </th>\n );\n};\n","import { GridColumn } from '@models';\nimport { FC } from 'react';\n\nimport { GridHeaderCell } from '../header-cell/HeaderCell';\nimport { SelectAllGridRowsCell } from '../select-all-grid-rows-cell/SelectAllGridRowsCell';\nimport styles from './GridHead.module.scss';\n\ntype GridHeadProps = {\n columns: GridColumn[];\n gridId: string;\n selectable: boolean;\n isAllSelected: boolean;\n isAllCheckboxDisabled?: boolean;\n selectAll: () => void;\n deselectAll: () => void;\n};\n\nexport const GridHead: FC<GridHeadProps> = ({\n columns,\n gridId,\n selectAll,\n deselectAll,\n selectable,\n isAllSelected,\n isAllCheckboxDisabled = false,\n}) => {\n return (\n <thead className={styles.head}>\n <tr className={styles.head_row}>\n {selectable && (\n <SelectAllGridRowsCell\n isAllSelected={isAllSelected}\n disabled={isAllCheckboxDisabled}\n gridId={gridId}\n selectAll={selectAll}\n deselectAll={deselectAll}\n />\n )}\n {columns.map((column) => (\n <GridHeaderCell key={`${column.title}_${gridId}`} title={column.title} component={column.component} />\n ))}\n </tr>\n </thead>\n );\n};\n","import { GridProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC } from 'react';\n\nimport { GridBody } from './body/GridBody';\nimport { GridColumnGroup } from './column-group/GridColumnGroup';\nimport { useGridController } from './Grid.controller';\nimport styles from './Grid.module.scss';\nimport { GridHead } from './head/GridHead';\n\nconst Grid: FC<GridProps> = ({ columns, data, id, onSelect, renderDataItem, caption, selectable = false, className, ...rest }) => {\n const {\n elementId,\n handleSelectAll,\n handleDeselectAll,\n isAllCheckboxDisabled,\n isAllSelected,\n handleDeselectRowById,\n handleSelectRowById,\n selectedIds,\n } = useGridController({ id, data, onSelect });\n\n return (\n <table {...rest} className={getClassName([styles.grid, className])}>\n {caption && <caption className={styles.grid_caption}>{caption}</caption>}\n <GridColumnGroup columns={columns} selectable={selectable} />\n <GridHead\n gridId={elementId}\n columns={columns}\n selectable={selectable}\n selectAll={handleSelectAll}\n deselectAll={handleDeselectAll}\n isAllSelected={isAllSelected}\n isAllCheckboxDisabled={isAllCheckboxDisabled}\n />\n <GridBody\n columns={columns}\n data={data}\n selectable={selectable}\n selectRowById={handleSelectRowById}\n deselectRowById={handleDeselectRowById}\n selectedIds={selectedIds}\n renderDataItem={renderDataItem}\n />\n </table>\n );\n};\n\nexport default Grid;\n","import { Icon } from '@atoms';\nimport { MenuItem } from '@models';\nimport { ReactElement } from 'react';\n\nimport styles from './MenuLeaf.module.scss';\n\nexport const MenuLeaf = ({ item }: { item: MenuItem }): ReactElement => {\n const { icon, link, label, onFocus, onClick, onHover } = item;\n\n const leafContent = link ? (\n <a href={link} target='_blank' rel='noreferrer'>\n {label}\n </a>\n ) : (\n <span>{label}</span>\n );\n\n return (\n <li className={styles.menuLeaf} tabIndex={0} role='menuitem' onFocus={onFocus} onClick={onClick} onMouseOver={onHover}>\n <Icon name={icon} />\n {leafContent}\n </li>\n );\n};\n","import { Icon } from '@atoms';\nimport { IconName, OrientationMode } from '@enums';\nimport { useClickOutside } from '@hooks';\nimport { MenuItem } from '@models';\nimport { FC, KeyboardEvent, PropsWithChildren, useRef } from 'react';\n\nimport styles from './SubMenu.module.scss';\n\ntype Props = PropsWithChildren & {\n item: MenuItem;\n isSubMenuOpened: boolean;\n mode: OrientationMode;\n toggleSubMenu: () => void;\n closeSubMenu: () => void;\n openSubMenu: () => void;\n openedOn?: 'hover' | 'click';\n};\n\nexport const SubMenu: FC<Props> = ({ item, isSubMenuOpened, toggleSubMenu, closeSubMenu, openSubMenu, openedOn, mode, children }) => {\n const { icon, link, label } = item;\n const ref = useRef(null);\n const dependentRef = useRef(null);\n\n const itemContent = link ? (\n <a href={link} target='_blank' rel='noreferrer'>\n <Icon name={icon} />\n {label}\n </a>\n ) : (\n <span>\n <Icon name={icon} />\n {label}\n </span>\n );\n\n const handleKeyDown = (e: KeyboardEvent<HTMLElement>) => {\n e.stopPropagation();\n if (e.key === ' ') {\n toggleSubMenu();\n }\n };\n\n const onClickOutsideHandler = () => {\n if (mode === OrientationMode.Vertical) return;\n closeSubMenu();\n };\n\n useClickOutside({ ref, dependentRef, onClickOutsideHandler });\n\n return (\n <li\n className={styles.subMenu}\n tabIndex={0}\n role='menuitem'\n aria-haspopup='true'\n aria-expanded={isSubMenuOpened}\n onKeyDown={handleKeyDown}\n onMouseEnter={openedOn === 'hover' ? openSubMenu : undefined}\n onMouseLeave={openedOn === 'hover' ? closeSubMenu : undefined}\n ref={ref}\n >\n <span className={styles.text} ref={dependentRef} onClick={toggleSubMenu} onKeyDown={handleKeyDown}>\n {itemContent}\n <Icon name={isSubMenuOpened ? IconName.ArrowUp : IconName.ArrowDown} />\n </span>\n {isSubMenuOpened && children}\n </li>\n );\n};\n","import { OrientationMode } from '@enums';\nimport { MenuItem } from '@models';\nimport { getClassName } from '@utils';\nimport { FC, PropsWithChildren, useState } from 'react';\n\nimport { MenuLeaf } from '../leaf/MenuLeaf';\nimport { SubMenu } from '../sub-menu/SubMenu';\nimport styles from './MenuListItem.module.scss';\n\ntype Props = PropsWithChildren & {\n item: MenuItem;\n mode: OrientationMode;\n openedOn?: 'hover' | 'click';\n};\n\nexport const MenuListItem: FC<Props> = ({ item, mode, openedOn }) => {\n const isLeaf = !item?.nestedItems?.length;\n const [isSubMenuOpened, setIsSubMenuOpened] = useState(false);\n const subMenuBarClass = getClassName([styles.subMenuBar, { [styles.subMenuBar__horizontal]: mode === OrientationMode.Horizontal }]);\n\n if (isLeaf) {\n return <MenuLeaf item={item} />;\n }\n\n const toggleSubMenu = () => {\n setIsSubMenuOpened(!isSubMenuOpened);\n };\n\n const closeSubMenu = () => {\n setIsSubMenuOpened(false);\n };\n\n const openSubMenu = () => {\n setIsSubMenuOpened(true);\n };\n\n return (\n <SubMenu\n item={item}\n isSubMenuOpened={isSubMenuOpened}\n toggleSubMenu={toggleSubMenu}\n closeSubMenu={closeSubMenu}\n openSubMenu={openSubMenu}\n mode={mode}\n openedOn={openedOn}\n >\n <ul className={subMenuBarClass} role='menu' aria-label={item.label}>\n {item?.nestedItems?.map((child) => <MenuListItem item={child} key={child.id} mode={mode} openedOn={openedOn} />)}\n </ul>\n </SubMenu>\n );\n};\n","import { OrientationMode } from '@enums';\nimport { MenuProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC } from 'react';\n\nimport { MenuListItem } from './list-item/MenuListItem';\nimport styles from './Menu.module.scss';\n\nconst Menu: FC<MenuProps> = ({ items = [], mode = OrientationMode.Vertical, openedOn = 'click', className, ...rest }) => {\n const menuClass = getClassName([styles.menuBar, className, { [styles.menuBar__vertical]: mode === OrientationMode.Vertical }]);\n\n return (\n <menu {...rest} className={menuClass}>\n {items.map((item) => (\n <MenuListItem key={item.id} item={item} mode={mode} openedOn={openedOn} />\n ))}\n </menu>\n );\n};\n\nexport default Menu;\n","import { ChopLogicTabItem } from '@models';\nimport { FC, ReactElement } from 'react';\n\nimport styles from './TabContent.module.scss';\n\nexport const TabContent: FC<{\n tabs: ChopLogicTabItem[];\n selectedTabId: string;\n extendable?: boolean;\n extendedTabContent?: ReactElement;\n}> = ({ tabs, selectedTabId, extendable, extendedTabContent }): ReactElement => {\n const content = tabs.find((item) => item.id === selectedTabId)?.content;\n const contentId = `tabpanel_${selectedTabId}`;\n const isExtendedTab = extendable && !content;\n\n return (\n <div role='tabpanel' data-testid='tab-content' aria-labelledby={selectedTabId} id={contentId} className={styles.tabContent}>\n {isExtendedTab ? extendedTabContent : content}\n </div>\n );\n};\n","import { Button } from '@atoms';\nimport { ButtonView, IconName } from '@enums';\nimport { FC, useEffect, useRef } from 'react';\n\nimport styles from './TabEditInput.module.scss';\n\ntype Props = {\n tabId: string;\n isEditMode: boolean;\n editValue: string;\n onInputChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onInputBlur: (e: React.FocusEvent<HTMLInputElement>) => void;\n onInputKeyDown: (e: React.KeyboardEvent<HTMLInputElement>) => void;\n onSave: () => void;\n onCancel: () => void;\n cancelButtonId: string;\n};\n\nexport const TabEditInput: FC<Props> = ({\n tabId,\n isEditMode,\n editValue,\n onInputChange,\n onInputBlur,\n onInputKeyDown,\n onSave,\n onCancel,\n cancelButtonId,\n}) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n // Focus input when entering edit mode\n useEffect(() => {\n if (isEditMode && inputRef.current) {\n inputRef.current.focus();\n inputRef.current.select();\n }\n }, [isEditMode]);\n\n return (\n <div className={styles.editContainer}>\n <input\n ref={inputRef}\n id={tabId + '-input'}\n type='text'\n value={editValue}\n onChange={onInputChange}\n onBlur={onInputBlur}\n onKeyDown={onInputKeyDown}\n className={styles.editContainer_input}\n maxLength={50}\n />\n <span className={styles.editContainer_buttons}>\n <Button view={ButtonView.Icon} icon={IconName.CheckMark} onClick={onSave} label='Save tab title' />\n <Button view={ButtonView.Icon} icon={IconName.Cancel} onClick={onCancel} label='Cancel tab title change' id={cancelButtonId} />\n </span>\n </div>\n );\n};\n","import { Button } from '@atoms';\nimport { ButtonView, IconName, OrientationMode } from '@enums';\nimport { getClassName } from '@utils';\nimport { FC, useEffect, useId, useRef, useState } from 'react';\n\nimport { TabEditInput } from '../edit-input/TabEditInput';\nimport styles from './TabButton.module.scss';\n\ntype Props = {\n title: string;\n tabId: string;\n onTabSelect: (id: string) => void;\n tabPanelId: string;\n isSelected: boolean;\n mode: OrientationMode;\n isDisabled?: boolean;\n stretched?: boolean;\n editable?: boolean;\n onTabTitleChange?: (newTitle: string) => void;\n onTabDelete?: (id: string) => void;\n extendable?: boolean;\n};\n\nexport const TabButton: FC<Props> = ({\n title,\n onTabSelect,\n onTabTitleChange,\n onTabDelete,\n tabId,\n isSelected,\n isDisabled = false,\n stretched = false,\n editable = false,\n extendable = false,\n tabPanelId,\n mode,\n}) => {\n const [isEditMode, setIsEditMode] = useState(false);\n const [editValue, setEditValue] = useState(title);\n const inputRef = useRef<HTMLInputElement>(null);\n const cancelButtonId = useId();\n const isEditToggleVisible = editable && !isDisabled && isSelected;\n const isDeleteButtonVisible = extendable && !isDisabled && !!onTabDelete && isSelected;\n const hasAdditionalButtons = isEditToggleVisible || isDeleteButtonVisible;\n\n const wrapperClass = getClassName([\n styles.tab_wrapper,\n {\n [styles.tab_wrapper__disabled]: isDisabled,\n [styles.tab_wrapper__vertical]: mode === OrientationMode.Vertical,\n [styles.tab_wrapper__selected]: isSelected,\n [styles.tab_wrapper__stretched]: stretched,\n [styles.tab_wrapper__editable]: editable,\n [styles.tab_wrapper__inactive]: !isSelected,\n },\n ]);\n\n // Focus input when entering edit mode\n useEffect(() => {\n if (isEditMode && inputRef.current) {\n inputRef.current.focus();\n inputRef.current.select();\n }\n }, [isEditMode]);\n\n // Sync edit value with title prop\n useEffect(() => {\n setEditValue(title);\n }, [title]);\n\n const toggleEditMode = () => {\n if (isDisabled) return;\n setIsEditMode(!isEditMode);\n };\n\n const handleTabClick = () => {\n if (isEditMode) return; // Don't select tab while editing\n onTabSelect(tabId);\n };\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setEditValue(e.target.value);\n };\n\n const handleInputBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n // Check if the blur was caused by clicking on a cancel button\n const relatedTarget = e.relatedTarget as HTMLElement;\n const isBlurCausedByButton = relatedTarget?.id === cancelButtonId;\n\n // Only call onInputBlur if the blur wasn't caused by a button click\n if (!isBlurCausedByButton) {\n saveTitleChange();\n }\n };\n\n const handleInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n saveTitleChange();\n } else if (e.key === 'Escape') {\n e.preventDefault();\n cancelEdit();\n }\n };\n\n const saveTitleChange = () => {\n if (editValue.trim() && editValue !== title) {\n onTabTitleChange?.(editValue.trim());\n } else {\n // Reset to original title if empty or unchanged\n setEditValue(title);\n }\n setIsEditMode(false);\n };\n\n const cancelEdit = () => {\n setEditValue(title);\n setIsEditMode(false);\n };\n\n return (\n <span className={wrapperClass}>\n {isEditMode ? (\n <TabEditInput\n tabId={tabId}\n editValue={editValue}\n isEditMode={isEditMode}\n onInputChange={handleInputChange}\n onInputBlur={handleInputBlur}\n onInputKeyDown={handleInputKeyDown}\n onSave={saveTitleChange}\n onCancel={cancelEdit}\n cancelButtonId={cancelButtonId}\n />\n ) : (\n <>\n <button\n role='tab'\n id={tabId}\n onClick={handleTabClick}\n aria-selected={isSelected}\n aria-controls={tabPanelId}\n className={styles.tab}\n disabled={isDisabled}\n >\n {editValue}\n </button>\n {hasAdditionalButtons && (\n <span className={styles.tab_buttons}>\n {isEditToggleVisible && (\n <Button view={ButtonView.Icon} icon={IconName.Edit} onClick={toggleEditMode} label='Edit tab' tooltip='Edit tab' />\n )}\n {isDeleteButtonVisible && (\n <Button\n view={ButtonView.Icon}\n icon={IconName.Delete}\n onClick={() => onTabDelete?.(tabId)}\n label='Delete tab'\n tooltip='Delete tab'\n />\n )}\n </span>\n )}\n </>\n )}\n </span>\n );\n};\n","import { Button } from '@atoms';\nimport { ButtonView, IconName, OrientationMode } from '@enums';\nimport { ChopLogicTabItem } from '@models';\nimport { getClassName, moveFocusOnElementById } from '@utils';\nimport { FC, KeyboardEvent, useEffect } from 'react';\n\nimport { TabButton } from '../button/TabButton';\nimport styles from './TabList.module.scss';\n\ntype Props = {\n tabs: ChopLogicTabItem[];\n tabIds: string[];\n onTabSelect: (id: string) => void;\n initialTabsCount: number;\n selectedTabId: string;\n tabPanelIds: string[];\n mode: OrientationMode;\n onTabTitleChange?: (tabId: string, newTitle: string) => void;\n stretched?: boolean;\n editable?: boolean;\n extendable?: boolean;\n onTabAdd?: () => void;\n onTabDelete?: (id: string) => void;\n};\n\nexport const TabList: FC<Props> = ({\n tabs,\n onTabSelect,\n onTabTitleChange,\n selectedTabId,\n tabPanelIds,\n mode,\n tabIds,\n stretched,\n editable = false,\n extendable = false,\n onTabAdd,\n onTabDelete,\n initialTabsCount,\n}) => {\n const listClass = getClassName([styles.tabList, { [styles.tabList__vertical]: mode === OrientationMode.Vertical }]);\n\n const handleListKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n const currentFocusedTabIndex = tabIds.findIndex((id) => id === selectedTabId);\n\n // Early return for non-navigation keys\n if (!['ArrowLeft', 'ArrowUp', 'ArrowRight', 'ArrowDown'].includes(e.key)) {\n return;\n }\n\n e.preventDefault();\n\n // Check if key should be ignored based on mode\n if ((e.key === 'ArrowUp' && mode === OrientationMode.Horizontal) || (e.key === 'ArrowLeft' && mode === OrientationMode.Vertical)) {\n return;\n }\n\n const isPrevious = e.key === 'ArrowLeft' || e.key === 'ArrowUp';\n const newIndex = isPrevious\n ? getPreviousIndex(currentFocusedTabIndex, tabIds.length)\n : getNextIndex(currentFocusedTabIndex, tabIds.length);\n\n const newTabId = tabIds[newIndex];\n if (newTabId) {\n moveFocusOnElementById(newTabId);\n onTabSelect(newTabId);\n }\n };\n\n const getPreviousIndex = (currentIndex: number, totalTabs: number): number => {\n return currentIndex - 1 >= 0 ? currentIndex - 1 : totalTabs - 1;\n };\n\n const getNextIndex = (currentIndex: number, totalTabs: number): number => {\n return currentIndex === totalTabs - 1 ? 0 : currentIndex + 1;\n };\n\n useEffect(() => {\n // Auto-select newly added tab\n if (tabs.length > initialTabsCount) {\n onTabSelect(tabs[tabs.length - 1].id);\n }\n }, [tabs.length]);\n\n return (\n <div role='tablist' data-testid='tab-list' tabIndex={0} onKeyDown={handleListKeyDown} className={listClass}>\n {tabs.map(({ id, title, disabled }, index) => {\n return (\n <TabButton\n key={id}\n title={title}\n onTabSelect={onTabSelect}\n onTabTitleChange={onTabTitleChange ? (newTitle) => onTabTitleChange(id, newTitle) : undefined}\n tabId={id}\n isSelected={id === selectedTabId}\n isDisabled={disabled}\n tabPanelId={tabPanelIds[index]}\n mode={mode}\n stretched={stretched}\n editable={editable}\n extendable={extendable}\n onTabDelete={onTabDelete}\n />\n );\n })}\n {extendable && (\n <Button\n label='Add Tab'\n tooltip='Add Tab'\n view={ButtonView.Icon}\n icon={IconName.PlusCircle}\n onClick={onTabAdd}\n className={styles.tabList_addButton}\n />\n )}\n </div>\n );\n};\n","import { OrientationMode } from '@enums';\nimport { ChopLogicTabItem, TabsProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC, useState } from 'react';\n\nimport { TabContent } from './content/TabContent';\nimport { TabList } from './list/TabList';\nimport styles from './Tabs.module.scss';\n\nconst Tabs: FC<TabsProps> = ({\n tabs: initialTabs,\n defaultTabId,\n className,\n mode = OrientationMode.Horizontal,\n stretched = false,\n editable = false,\n extendable = false,\n extendedTabLabel = 'New Tab',\n extendedTabContent,\n onTabTitleChange,\n onTabAdd,\n onTabSelect,\n onTabDelete,\n ...rest\n}) => {\n const [tabs, setTabs] = useState<ChopLogicTabItem[]>(initialTabs);\n const initialTabsCount = initialTabs.length;\n const [tabCounter, setTabCounter] = useState(initialTabsCount + 1);\n const tabIds = tabs.map((item) => item.id);\n const tabPanelIds = tabIds.map((id) => `tabpanel_${id}`);\n const defaultId = defaultTabId && tabIds.includes(defaultTabId) ? defaultTabId : tabIds[0];\n const [selectedTabId, setSelectedTabId] = useState(defaultId);\n const tabsClass = getClassName([styles.tabs, className, { [styles.tabs__vertical]: mode === OrientationMode.Vertical }]);\n\n const handleTabSelect = (id: string) => {\n setSelectedTabId(id);\n onTabSelect?.(id);\n };\n\n const handleTabTitleChange = (tabId: string, newTitle: string) => {\n setTabs((prevTabs) => prevTabs.map((tab) => (tab.id === tabId ? { ...tab, title: newTitle } : tab)));\n onTabTitleChange?.(tabId, newTitle);\n };\n\n const handleTabAdd = () => {\n const newTabId = `added-tab-${tabCounter}`;\n const newTabTitle = extendedTabLabel || `Tab ${tabCounter}`;\n\n const newTab: ChopLogicTabItem = {\n id: newTabId,\n title: newTabTitle,\n content: extendedTabContent || <div></div>,\n };\n\n setTabs((prevTabs) => [...prevTabs, newTab]);\n setTabCounter((prev) => prev + 1);\n\n onTabAdd?.();\n };\n\n const handleTabDelete = (tabId: string) => {\n setTabs((prevTabs) => prevTabs.filter((tab) => tab.id !== tabId));\n\n if (selectedTabId === tabId) {\n const tabIndex = tabIds.indexOf(tabId);\n let newSelectedTabId: string | undefined;\n\n if (tabIndex > 0) {\n // Select the previous tab if available\n newSelectedTabId = tabIds[tabIndex - 1];\n } else if (tabIds.length > 1) {\n // If deleting the first tab, select the second tab if available\n newSelectedTabId = tabIds[1];\n } else {\n // No tabs left to select\n newSelectedTabId = undefined;\n }\n\n if (newSelectedTabId) {\n handleTabSelect(newSelectedTabId);\n }\n }\n\n onTabDelete?.(tabId);\n };\n\n return (\n <div {...rest} className={tabsClass}>\n <TabList\n tabs={tabs}\n selectedTabId={selectedTabId}\n tabPanelIds={tabPanelIds}\n onTabSelect={handleTabSelect}\n onTabTitleChange={handleTabTitleChange}\n mode={mode}\n tabIds={tabIds}\n stretched={stretched}\n editable={editable}\n extendable={extendable}\n onTabAdd={handleTabAdd}\n initialTabsCount={initialTabsCount}\n onTabDelete={handleTabDelete}\n />\n <TabContent tabs={tabs} selectedTabId={selectedTabId} extendedTabContent={extendedTabContent} extendable={extendable} />\n </div>\n );\n};\n\nexport default Tabs;\n"],"names":["REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","reactJsxRuntime_production","getComponentNameFromType","REACT_CLIENT_REFERENCE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","x","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","e","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getTaskName","name","getOwner","dispatcher","ReactSharedInternals","UnknownOwner","hasValidKey","hasOwnProperty","getter","defineKeyPropWarningGetter","props","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","self","source","owner","debugStack","debugTask","jsxDEVImpl","isStaticChildren","children","isArrayImpl","validateChildKeys","keys","k","didWarnAboutKeySpread","node","React","require$$0","createTask","callStackForError","unknownOwnerDebugStack","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","jsxRuntimeModule","require$$1","AlertMode","ButtonView","IconName","LoaderView","OrientationMode","ThemeMode","TooltipContainer","withTooltip","Component","_a","_b","tooltip","visibleOn","__objRest","jsx","Tooltip","__spreadValues","getClassName","input","item","trueKeys","moveFocusOnElementById","id","element","handleDropdownListKeyPress","options","onClose","focusedId","currentFocusIndex","previousOptionIndex","previousValue","nextOptionIndex","nextValue","IconButton","className","rest","__spreadProps","styles","InnerButton","onClick","label","icon","disabled","Icon","PrimaryButton","jsxs","SecondaryButton","ButtonSelector","text","extended","view","extendedClass","Button","EditView","multiline","placeholder","onChange","onBlur","onKeyDown","inputRef","InputComponent","handleChange","useCallback","event","ReadView","handleKeyDown","useEditModeState","controlledEditMode","readOnly","isEditMode","setIsEditMode","useState","isControlled","useInputFocus","ref","editMode","autoSelectTextOnEditMode","useEffect","useValueState","internalValue","setInternalValue","newValue","EditableText","useRef","enterEditMode","exitEditMode","updateValue","commitValue","resetValue","handleClick","handleBlur","containerClass","ErrorMessage","errorId","testId","message","visible","errorClass","Header","as","HeaderTag","headerClass","ArrowDownIcon","title","ArrowUpIcon","BackIcon","CancelIcon","CheckboxCheckedIcon","CheckboxUncheckedIcon","CheckMarkIcon","ChevronDownIcon","ChevronLeftIcon","ChevronRightIcon","ChevronUpIcon","ClearIcon","CopyIcon","CutIcon","DeleteIcon","DownloadIcon","EditIcon","ErrorIcon","ForwardIcon","GraduateIcon","HelpIcon","HideIcon","HomeIcon","InfoIcon","LoginIcon","PasteIcon","PlusCircleIcon","QuestionIcon","RemoveIcon","SaveIcon","SearchIcon","ShowIcon","UploadIcon","WarningIcon","IconDictionary","iconClass","Input","Input$1","forwardRef","Label","required","inputId","iconPosition","isTextHidden","isLeftIconVisible","isRightIconVisible","Loader","Arrow","Brackets","Circle","Dots","Filler","Pulse","Linear","Rotation","Square","Portal","container","ReactDOM","useAutoClose","isOpened","autoClose","autoCloseDelay","timer","useClickOutside","onClickOutsideHandler","dependentRef","handleClickOutside","isOutsideRef","isOutsideDependentRef","useContainerDimensions","isVisible","dimensions","setDimensions","useDebounce","delay","debouncedValue","setDebouncedValue","handler","useElementIds","randomId","useId","elementId","dropdownId","useIsMounted","isMounted","setIsMounted","useIsOverflow","dimension","isOverflow","setIsOverflow","checkIsOverflow","current","scrollWidth","clientWidth","scrollHeight","clientHeight","useKeyPress","keyCode","onKeyPress","handleKeyPress","useModalFocusTrap","modalRef","modalElement","focusableElements","firstElement","lastElement","handleTabKeyPress","FormContext","createContext","ThemeContext","ThemeProvider","injectedMode","mode","setMode","providerValue","useMemo","useResetFormInput","onReset","resetSignal","useContext","useTheme","getWindowDimensions","width","height","useWindowDimensions","windowDimensions","setWindowDimensions","handleResize","useTooltipPosition","wrapperRef","tooltipRef","spacing","position","setPosition","tooltipWidth","tooltipHeight","windowWidth","windowHeight","rect","top","left","useTooltipController","setIsOpened","closeTooltip","openTooltip","toggleTooltip","handleContextMenu","tooltipContent","style","containerTag","ContainerComponent","tooltipClass","getAlertTitle","getAlertIcon","Alert","isClosing","alertTitle","alertTitleIcon","getCheckboxInitialValue","defaultChecked","initialValues","useCheckboxController","onChangeFormInput","initialValue","isChecked","setIsChecked","checked","handleReset","Checkbox","noLabel","checkboxClass","MultiSelectCombobox","opened","comboboxId","values","selectedLabels","selectedIds","selectedValues","getMultiSelectInitialValues","defaultValue","option","selected","getMultiSelectFormValues","getMultiSelectUpdatedValues","targetItem","useMultiSelectController","setOpened","initialOptions","setValues","handleClose","handleToggle","handleSelect","newValues","MultiSelectOption","onSelect","optionClass","MultiSelectDropdown","dropdownClass","MultiSelect","multiSelectClass","getNumericInputInitialValue","validateNumericInputValue","validator","maxValue","minValue","useNumericInputController","onSpinButtonClick","min","max","step","setValue","valid","setValid","increment","decrement","NumericInput","errorMessage","onFocus","tabIndex","hasSpinButtons","inputClass","SelectCombobox","SelectOption","onClear","handleOptionSelect","SelectDropdown","getSelectInitialValue","valueId","useSelectController","setSelected","handleClear","Select","selectClass","validateTextInputValue","getTextInputInitialValue","useTextInputController","passwordShown","setPasswordShown","togglePassword","TextInput","maxLength","clearable","autoComplete","isPasswordButtonVisible","Dialog","getInitialValidationState","data","updateValidationState","state","params","isFormDataValid","useFormController","onSubmit","onClickSubmit","formData","setFormData","validationState","setValidationState","setResetSignal","newData","uncontrolledData","resultData","Form","columns","hasReset","handleInputChange","handleSubmit","columnsNumber","formClass","getGridRowValues","renderDataItem","column","GridDataCell","GridCheckbox","SelectGridRowCell","rowId","isRowSelected","selectRowById","deselectRowById","handleSelectById","GridRow","selectable","index","GridBody","GridColumnGroup","useGridController","setSelectedIds","allIds","isAllSelected","isAllCheckboxDisabled","ids","newIds","GridHeaderCell","component","SelectAllGridRowsCell","gridId","selectAll","deselectAll","handleSelectAll","GridHead","Grid","caption","handleDeselectAll","handleDeselectRowById","handleSelectRowById","MenuLeaf","link","onHover","leafContent","SubMenu","isSubMenuOpened","toggleSubMenu","closeSubMenu","openSubMenu","openedOn","itemContent","MenuListItem","isLeaf","setIsSubMenuOpened","subMenuBarClass","child","Menu","items","menuClass","TabContent","tabs","selectedTabId","extendable","extendedTabContent","content","contentId","isExtendedTab","TabEditInput","tabId","editValue","onInputChange","onInputBlur","onInputKeyDown","onSave","onCancel","cancelButtonId","TabButton","onTabSelect","onTabTitleChange","onTabDelete","isSelected","isDisabled","stretched","editable","tabPanelId","setEditValue","isEditToggleVisible","isDeleteButtonVisible","hasAdditionalButtons","wrapperClass","toggleEditMode","handleTabClick","handleInputBlur","relatedTarget","saveTitleChange","handleInputKeyDown","cancelEdit","Fragment","TabList","tabPanelIds","tabIds","onTabAdd","initialTabsCount","listClass","handleListKeyDown","currentFocusedTabIndex","newIndex","getPreviousIndex","getNextIndex","newTabId","currentIndex","totalTabs","newTitle","Tabs","initialTabs","defaultTabId","extendedTabLabel","setTabs","tabCounter","setTabCounter","defaultId","setSelectedTabId","tabsClass","handleTabSelect","handleTabTitleChange","prevTabs","tab","handleTabAdd","newTabTitle","newTab","prev","handleTabDelete","newSelectedTabId"],"mappings":"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","x_google_ignoreList":[0,1,2]}