chop-logic-components 3.3.0 → 3.4.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.
- package/README.md +6 -3
- package/dist/favicon.ico +0 -0
- package/dist/index.cjs.js +4 -4
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.ts +17 -3
- package/dist/index.es.js +2416 -1462
- package/dist/index.es.js.map +1 -1
- package/dist/logo.jpeg +0 -0
- package/dist/logo.png +0 -0
- package/package.json +16 -22
package/dist/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.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/Documents.tsx","../src/assets/icons/svg/DownloadIcon.tsx","../src/assets/icons/svg/EditIcon.tsx","../src/assets/icons/svg/Email.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/Phone.tsx","../src/assets/icons/svg/PlusCircle.tsx","../src/assets/icons/svg/Projects.tsx","../src/assets/icons/svg/QuestionIcon.tsx","../src/assets/icons/svg/RemoveIcon.tsx","../src/assets/icons/svg/SaveIcon.tsx","../src/assets/icons/svg/Search.tsx","../src/assets/icons/svg/Settings.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/link/Link.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/search/Search.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 Documents = 'documents',\n Download = 'download',\n Edit = 'edit',\n Email = 'email',\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 Phone = 'phone',\n PlusCircle = 'plus-circle',\n Projects = 'projects',\n Question = 'question',\n Save = 'save',\n Search = 'search',\n Settings = 'settings',\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\n for (const option of options) {\n const element = document.getElementById(option.id);\n if (element === document.activeElement) {\n focusedId = option.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 DocumentsIcon({ 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='currentColor'\n fillRule='evenodd'\n d='M10.945 1.25h2.11c1.367 0 2.47 0 3.337.117c.9.12 1.658.38 2.26.981c.298.299.512.636.667 1.01c.932.116 1.715.372 2.333.99c.602.602.86 1.36.982 2.26c.116.867.116 1.97.116 3.337v4.11c0 1.367 0 2.47-.116 3.337c-.122.9-.38 1.658-.982 2.26c-.618.618-1.4.874-2.333.991c-.155.373-.369.71-.667 1.009c-.602.602-1.36.86-2.26.982c-.867.116-1.97.116-3.337.116h-2.11c-1.367 0-2.47 0-3.337-.116c-.9-.122-1.658-.38-2.26-.982a3.1 3.1 0 0 1-.667-1.009c-.932-.117-1.715-.373-2.333-.991c-.602-.602-.86-1.36-.981-2.26c-.117-.867-.117-1.97-.117-3.337v-4.11c0-1.367 0-2.47.117-3.337c.12-.9.38-1.658.981-2.26c.618-.618 1.4-.874 2.333-.99a3.1 3.1 0 0 1 .667-1.01c.602-.602 1.36-.86 2.26-.981c.867-.117 1.97-.117 3.337-.117M4.328 4.94c-.437.106-.71.26-.919.47c-.277.276-.457.664-.556 1.398c-.101.756-.103 1.757-.103 3.192v4c0 1.435.002 2.437.103 3.192c.099.734.28 1.122.556 1.399c.209.209.482.363.92.469c-.079-.812-.079-1.806-.079-3.005v-8.11c0-1.198 0-2.193.078-3.005m15.344 14.12c.437-.106.71-.26.919-.469c.277-.277.457-.665.556-1.4c.101-.754.103-1.755.103-3.19v-4c0-1.436-.002-2.437-.103-3.193c-.099-.734-.28-1.122-.556-1.399c-.209-.209-.482-.363-.92-.469c.079.812.079 1.807.079 3.005v8.11c0 1.198 0 2.193-.078 3.005M7.808 2.853c-.734.099-1.122.28-1.399.556c-.277.277-.457.665-.556 1.4C5.752 5.562 5.75 6.564 5.75 8v8c0 1.435.002 2.436.103 3.192c.099.734.28 1.122.556 1.399c.277.277.665.457 1.4.556c.754.101 1.756.103 3.191.103h2c1.435 0 2.437-.002 3.192-.103c.734-.099 1.122-.28 1.399-.556c.277-.277.457-.665.556-1.4c.101-.755.103-1.756.103-3.191V8c0-1.435-.002-2.437-.103-3.192c-.099-.734-.28-1.122-.556-1.399c-.277-.277-.665-.457-1.4-.556c-.754-.101-1.756-.103-3.191-.103h-2c-1.435 0-2.437.002-3.192.103M8.25 9A.75.75 0 0 1 9 8.25h6a.75.75 0 0 1 0 1.5H9A.75.75 0 0 1 8.25 9m0 4a.75.75 0 0 1 .75-.75h6a.75.75 0 0 1 0 1.5H9a.75.75 0 0 1-.75-.75m0 4a.75.75 0 0 1 .75-.75h3a.75.75 0 0 1 0 1.5H9a.75.75 0 0 1-.75-.75'\n clipRule='evenodd'\n ></path>\n </svg>\n );\n}\n\nexport default DocumentsIcon;\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 EmailIcon({ 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='currentColor'\n d='m16.484 11.976l6.151-5.344v10.627zm-7.926.905l2.16 1.875c.339.288.781.462 1.264.462h.017h-.001h.014c.484 0 .926-.175 1.269-.465l-.003.002l2.16-1.875l6.566 5.639H1.995zM1.986 5.365h20.03l-9.621 8.356a.6.6 0 0 1-.38.132h-.014h.001h-.014a.6.6 0 0 1-.381-.133l.001.001zm-.621 1.266l6.15 5.344l-6.15 5.28zm21.6-2.441c-.24-.12-.522-.19-.821-.19H1.859a1.9 1.9 0 0 0-.835.197l.011-.005A1.86 1.86 0 0 0 0 5.855v12.172a1.86 1.86 0 0 0 1.858 1.858h20.283a1.86 1.86 0 0 0 1.858-1.858V5.855c0-.727-.419-1.357-1.029-1.66l-.011-.005z'\n ></path>\n </svg>\n );\n}\n\nexport default EmailIcon;\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 PhoneIcon({ 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 strokeMiterlimit='10'\n strokeWidth='1.5'\n d='M12.735 20.191a15 15 0 0 1-.92-.447a19 19 0 0 1-4.1-3.12A18 18 0 0 1 3.88 11.42a11.3 11.3 0 0 1-1.022-3.325a5.93 5.93 0 0 1 .37-3.465c.289-.47.637-.9 1.035-1.279a1.8 1.8 0 0 1 1.278-.601c.505.076.962.34 1.278.742c.69.767 1.43 1.457 2.159 2.186c.287.246.466.595.498.972c-.012.317-.134.62-.345.857c-.242.307-.536.588-.817.882a1.54 1.54 0 0 0-.46 1.279a3.7 3.7 0 0 0 .881 1.457c.486.665.971 1.28 1.52 1.931a13.6 13.6 0 0 0 3.463 2.865a1.28 1.28 0 0 0 1.278.153a4 4 0 0 0 1.137-.946c.275-.335.669-.55 1.099-.601c.383.02.744.184 1.01.46c.344.294.638.64.958.959c.319.32.575.55.843.844q.482.425.907.908c.22.284.324.64.294.997a2.1 2.1 0 0 1-.703 1.087a4.78 4.78 0 0 1-3.756 1.458a10.7 10.7 0 0 1-4.05-1.049Z'\n ></path>\n </svg>\n );\n}\n\nexport default PhoneIcon;\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 ProjectsIcon({ 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 strokeMiterlimit='10'\n strokeWidth='1.5'\n d='M10 21V3m-7 7h18M5.4 3h13.2A2.4 2.4 0 0 1 21 5.4v13.2a2.4 2.4 0 0 1-2.4 2.4H5.4A2.4 2.4 0 0 1 3 18.6V5.4A2.4 2.4 0 0 1 5.4 3'\n ></path>\n </svg>\n );\n}\n\nexport default ProjectsIcon;\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 SettingsIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' 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 d='m5.23 2.25l.43-1.11A1 1 0 0 1 6.59.5h.82a1 1 0 0 1 .93.64l.43 1.11l1.46.84l1.18-.18a1 1 0 0 1 1 .49l.4.7a1 1 0 0 1-.08 1.13l-.73.93v1.68l.75.93a1 1 0 0 1 .08 1.13l-.4.7a1 1 0 0 1-1 .49l-1.18-.18l-1.46.84l-.43 1.11a1 1 0 0 1-.93.64h-.84a1 1 0 0 1-.93-.64l-.43-1.11l-1.46-.84l-1.18.18a1 1 0 0 1-1-.49l-.4-.7a1 1 0 0 1 .08-1.13L2 7.84V6.16l-.75-.93a1 1 0 0 1-.08-1.13l.4-.7a1 1 0 0 1 1-.49l1.18.18ZM5 7a2 2 0 1 0 2-2a2 2 0 0 0-2 2Z'\n ></path>\n </svg>\n );\n}\n\nexport default SettingsIcon;\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 DocumentsIcon from './svg/Documents';\nimport DownloadIcon from './svg/DownloadIcon';\nimport EditIcon from './svg/EditIcon';\nimport EmailIcon from './svg/Email';\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 PhoneIcon from './svg/Phone';\nimport PlusCircleIcon from './svg/PlusCircle';\nimport ProjectsIcon from './svg/Projects';\nimport QuestionIcon from './svg/QuestionIcon';\nimport RemoveIcon from './svg/RemoveIcon';\nimport SaveIcon from './svg/SaveIcon';\nimport SearchIcon from './svg/Search';\nimport SettingsIcon from './svg/Settings';\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.Documents]: DocumentsIcon,\n [IconName.Download]: DownloadIcon,\n [IconName.Edit]: EditIcon,\n [IconName.Email]: EmailIcon,\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.Phone]: PhoneIcon,\n [IconName.PlusCircle]: PlusCircleIcon,\n [IconName.Projects]: ProjectsIcon,\n [IconName.Question]: QuestionIcon,\n [IconName.Save]: SaveIcon,\n [IconName.Search]: SearchIcon,\n [IconName.Settings]: SettingsIcon,\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, hidden, ...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} aria-hidden={hidden} {...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 { Icon } from '@atoms';\nimport { LinkProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC } from 'react';\n\nimport styles from './Link.module.scss';\n\nconst Link: FC<LinkProps> = ({\n href,\n children,\n icon,\n iconPosition = 'left',\n external = false,\n disabled = false,\n className,\n target,\n ...rest\n}) => {\n const linkClass = getClassName([styles.link, className, { [styles.link__disabled]: disabled }]);\n const isExternal = external || href.startsWith('http') || href.startsWith('//');\n const linkTarget = isExternal ? target || '_blank' : target;\n const iconElement = icon ? <Icon name={icon} className={styles.link_icon} aria-hidden='true' /> : null;\n const isLeftIcon = icon && iconPosition === 'left';\n const isRightIcon = icon && iconPosition === 'right';\n\n return (\n <a\n href={href}\n className={linkClass}\n target={linkTarget}\n {...(isExternal && {\n 'aria-label': typeof children === 'string' ? `${children} (opens in new window)` : 'Opens in new window',\n })}\n aria-disabled={disabled}\n {...rest}\n >\n {isLeftIcon && iconElement}\n <span className={styles.link_text}>{children}</span>\n {isRightIcon && iconElement}\n </a>\n );\n};\n\nexport default Link;\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 container.remove();\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 hasNoDependentRef = !dependentRef?.current;\n const isOutsideDependentRef = hasNoDependentRef ? 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 = Array.from(\n modalElement.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'),\n );\n const firstElement = focusableElements[0] as HTMLElement;\n const lastElement = focusableElements.at(-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 } = globalThis;\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 { Button, Input, Label } from '@atoms';\nimport { ButtonView, IconName } from '@enums';\nimport { useDebounce, useElementIds } from '@hooks';\nimport { SearchProps } from '@models';\nimport { getClassName } from '@utils';\nimport { FC, useCallback, useEffect, useRef, useState } from 'react';\n\nimport styles from './Search.module.scss';\n\nconst Search: FC<SearchProps> = ({\n label,\n onSearch,\n onBlur,\n onFocus,\n onClear,\n id,\n tabIndex,\n className,\n maxLength = 50,\n minLength = 1,\n searchMode = 'automatic',\n name = 'q',\n placeholder = 'Type to search...',\n disabled = false,\n clearable = true,\n spellCheck = false,\n autoComplete = 'off',\n debounceDelay = 500,\n ...rest\n}) => {\n const { elementId } = useElementIds(id);\n const inputClass = getClassName([styles.wrapper, className]);\n const [searchValue, setSearchValue] = useState('');\n const inputRef = useRef<HTMLInputElement>(null);\n const isSearchButtonVisible = searchMode === 'manual';\n const isLabelIconVisible = !isSearchButtonVisible;\n const isClearButtonVisible = clearable && searchValue.length > 0;\n const isSearchValueValid = searchValue.length >= minLength && searchValue.trim().length > 0 && searchValue.length <= maxLength;\n const debouncedSearchValue = useDebounce(searchValue, debounceDelay);\n\n useEffect(() => {\n if (debouncedSearchValue.trim().length > 0 && searchMode === 'automatic' && isSearchValueValid) {\n onSearch?.(debouncedSearchValue);\n }\n }, [debouncedSearchValue]);\n\n const handleChange = useCallback((event: React.ChangeEvent<HTMLInputElement>) => {\n const value = event.target.value;\n setSearchValue(value);\n }, []);\n\n const handleClear = useCallback(() => {\n setSearchValue('');\n if (inputRef.current) {\n inputRef.current.focus();\n }\n onClear?.();\n }, [onClear]);\n\n const handleSearchClick = useCallback(() => {\n onSearch?.(searchValue);\n }, [onSearch, searchValue]);\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n // Trigger immediate search on Enter\n event.preventDefault();\n if (onSearch) {\n onSearch(searchValue);\n }\n } else if (event.key === 'Escape') {\n // Clear on Escape\n event.preventDefault();\n handleClear();\n }\n },\n [onSearch, searchValue, handleClear],\n );\n\n return (\n <div {...rest} className={inputClass}>\n <Label\n label={label}\n required={false}\n inputId={elementId}\n icon={isLabelIconVisible ? IconName.Search : undefined}\n iconPosition={isLabelIconVisible ? 'left' : undefined}\n />\n <Input\n ref={inputRef}\n id={elementId}\n name={name}\n type='search'\n value={searchValue}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onBlur={onBlur}\n onFocus={onFocus}\n disabled={disabled}\n placeholder={placeholder}\n autoComplete={autoComplete}\n maxLength={maxLength}\n minLength={minLength}\n spellCheck={spellCheck}\n tabIndex={tabIndex}\n >\n <span>\n {isClearButtonVisible && (\n <Button view={ButtonView.Inner} onClick={handleClear} label={`Clear search input for ${label}`} icon={IconName.Remove} />\n )}\n {isSearchButtonVisible && (\n <Button\n view={ButtonView.Inner}\n onClick={handleSearchClick}\n label='Perform search'\n icon={IconName.Search}\n disabled={disabled || !isSearchValueValid}\n />\n )}\n </span>\n </Input>\n </div>\n );\n};\n\nexport default Search;\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.hasOwn(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, useMemo } 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 baseClass = getClassName([styles.form, className]);\n const columnsClass = styles[`columns-${columnsNumber}`];\n const formClass = `${baseClass} ${columnsClass}`;\n const buttonColumnsClass = styles[`buttons-${columnsNumber}`];\n const buttonsClass = `${styles.buttons} ${buttonColumnsClass}`;\n const contextValue = useMemo(\n () => ({ onChangeFormInput: handleInputChange, initialValues, resetSignal }),\n [handleInputChange, initialValues, resetSignal],\n );\n\n return (\n <form onSubmit={handleSubmit} onReset={handleReset} {...rest} className={formClass}>\n <FormContext.Provider value={contextValue}>\n {children}\n <div className={buttonsClass}>\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, GridRowValue, RenderDataItemCallback } from '@models';\n\nexport function getGridRowValues({\n item,\n columns,\n renderDataItem,\n}: {\n item: GridItem;\n columns: GridColumn[];\n renderDataItem?: RenderDataItemCallback;\n}): GridRowValue[] {\n const result: GridRowValue[] = [];\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 result.push({ field: column.field, value });\n }\n\n return result;\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 { GridRowValue } from '@models';\nimport { getClassName } from '@utils';\nimport { FC } 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: GridRowValue[];\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((rowValue) => {\n const valueKey = `cell-${rowId}-${rowValue.field}`;\n return <GridDataCell key={valueKey} value={rowValue.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 gridRowValues = 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={gridRowValues}\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} hidden />\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.indexOf(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.at(-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","option","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","DocumentsIcon","DownloadIcon","EditIcon","EmailIcon","ErrorIcon","ForwardIcon","GraduateIcon","HelpIcon","HideIcon","HomeIcon","InfoIcon","LoginIcon","PasteIcon","PhoneIcon","PlusCircleIcon","ProjectsIcon","QuestionIcon","RemoveIcon","SaveIcon","SearchIcon","SettingsIcon","ShowIcon","UploadIcon","WarningIcon","IconDictionary","hidden","iconClass","Input","forwardRef","Label","required","inputId","iconPosition","isTextHidden","isLeftIconVisible","isRightIconVisible","Link","href","external","target","linkClass","isExternal","linkTarget","iconElement","isLeftIcon","isRightIcon","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","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","Search","onSearch","onClear","maxLength","minLength","searchMode","clearable","spellCheck","autoComplete","debounceDelay","searchValue","setSearchValue","isSearchButtonVisible","isLabelIconVisible","isClearButtonVisible","isSearchValueValid","debouncedSearchValue","handleClear","handleSearchClick","SelectCombobox","SelectOption","handleOptionSelect","SelectDropdown","getSelectInitialValue","valueId","useSelectController","setSelected","Select","selectClass","validateTextInputValue","getTextInputInitialValue","useTextInputController","passwordShown","setPasswordShown","togglePassword","TextInput","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","baseClass","columnsClass","formClass","buttonColumnsClass","buttonsClass","contextValue","getGridRowValues","renderDataItem","result","column","GridDataCell","GridCheckbox","SelectGridRowCell","rowId","isRowSelected","selectRowById","deselectRowById","handleSelectById","GridRow","selectable","rowValue","valueKey","GridBody","gridRowValues","GridColumnGroup","index","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","Input$1"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|
|
1
|
+
{"version":3,"file":"index.cjs.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/ChopLogic.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/Documents.tsx","../src/assets/icons/svg/DownloadIcon.tsx","../src/assets/icons/svg/EditIcon.tsx","../src/assets/icons/svg/Email.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/Phone.tsx","../src/assets/icons/svg/PlusCircle.tsx","../src/assets/icons/svg/Projects.tsx","../src/assets/icons/svg/QuestionIcon.tsx","../src/assets/icons/svg/RemoveIcon.tsx","../src/assets/icons/svg/SaveIcon.tsx","../src/assets/icons/svg/Search.tsx","../src/assets/icons/svg/Settings.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/link/Link.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-tooltip-position/use-tooltip-position.ts","../src/hooks/use-window-dimensions/use-window-dimensions.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/search/Search.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\";\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(type, key, props, owner, debugStack, debugTask) {\n var refProp = 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 !== refProp ? refProp : 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 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 maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\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 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) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\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) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\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 ChopLogic = 'chop-logic',\n Clear = 'clear',\n Copy = 'copy',\n Cut = 'cut',\n Delete = 'delete',\n Documents = 'documents',\n Download = 'download',\n Edit = 'edit',\n Email = 'email',\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 Phone = 'phone',\n PlusCircle = 'plus-circle',\n Projects = 'projects',\n Question = 'question',\n Save = 'save',\n Search = 'search',\n Settings = 'settings',\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 type { ComponentType, FC } from 'react';\n\ntype WithTooltipProps = {\n tooltip?: string;\n visibleOn?: 'hover' | 'click' | 'focus' | 'contextmenu';\n};\n\nexport function withTooltip<P extends object>(\n Component: ComponentType<P>,\n): 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 return '';\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 type { SelectValue } from '@models';\nimport type { 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\n for (const option of options) {\n const element = document.getElementById(option.id);\n if (element === document.activeElement) {\n focusedId = option.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 =\n 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 type { 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 type { IconName } from '@enums';\nimport { getClassName } from '@utils';\nimport type { 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 type { 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 type { 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 type { ButtonProps } from '@models';\nimport { getClassName } from '@utils';\nimport type { 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\n aria-label={label}\n type={type}\n onClick={onClick}\n disabled={disabled}\n className={extendedClass}\n {...rest}\n >\n <Icon name={icon} />\n {text}\n </PrimaryButton>\n );\n case ButtonView.Secondary:\n return (\n <SecondaryButton\n aria-label={label}\n type={type}\n onClick={onClick}\n disabled={disabled}\n className={extendedClass}\n {...rest}\n >\n <Icon name={icon} />\n {text}\n </SecondaryButton>\n );\n case ButtonView.Icon:\n return (\n <IconButton\n aria-label={label}\n type={type}\n onClick={onClick}\n disabled={disabled}\n {...rest}\n className={className}\n >\n <Icon name={icon} />\n </IconButton>\n );\n case ButtonView.Inner:\n return (\n <InnerButton\n label={label}\n icon={icon}\n onClick={onClick}\n disabled={disabled}\n {...rest}\n className={className}\n ></InnerButton>\n );\n default:\n return null;\n }\n};\n\nconst Button = withTooltip(ButtonSelector);\n\nexport default Button;\n","import type { ChopLogicComponentProps } from '@models';\nimport { type FC, type 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<HTMLTextAreaElement | HTMLInputElement | null>;\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 as unknown as RefObject<HTMLTextAreaElement & HTMLInputElement>}\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 type { ChopLogicComponentProps } from '@models';\nimport type { 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> = ({\n value,\n placeholder,\n onClick,\n className,\n ...rest\n}) => {\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onClick(e as unknown as React.MouseEvent);\n }\n };\n\n return (\n <span\n onClick={onClick}\n className={className}\n role=\"button\"\n tabIndex={0}\n onKeyDown={handleKeyDown}\n aria-label=\"Editable text\"\n {...rest}\n >\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 { type 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 type { EditableTextProps } from '@models';\nimport { getClassName } from '@utils';\nimport { type 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 (\n <ReadView\n value={internalValue}\n placeholder={placeholder}\n onClick={handleClick}\n className={containerClass}\n {...rest}\n />\n );\n};\n\nexport default EditableText;\n","import { getClassName } from '@utils/get-class-name';\nimport type { 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> = ({\n errorId,\n testId,\n message = 'Error!',\n visible = false,\n className,\n}) => {\n const errorClass = getClassName([\n styles.errorMessage,\n className,\n { [styles.errorMessage__visible]: visible },\n ]);\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 type { HeaderProps } from '@models';\nimport { getClassName } from '@utils';\nimport type { 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 type { ChopLogicSVGElementProps } from '@models';\n\nfunction ArrowDownIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n height=\"1em\"\n width=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\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 type { ChopLogicSVGElementProps } from '@models';\n\nfunction ArrowUpIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n height=\"1em\"\n width=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\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 type { ChopLogicSVGElementProps } from '@models';\n\nfunction BackIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 512 512\"\n fill=\"currentColor\"\n height=\"1em\"\n width=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\n {title && <title>{title}</title>}\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={48}\n d=\"M328 112L184 256l144 144\"\n />\n </svg>\n );\n}\n\nexport default BackIcon;\n","import type { ChopLogicSVGElementProps } from '@models';\n\nfunction CancelIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 470 1000\"\n fill=\"currentColor\"\n height=\"1em\"\n width=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\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 type { ChopLogicSVGElementProps } from '@models';\n\nfunction CheckboxCheckedIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n height=\"1em\"\n width=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\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 type { ChopLogicSVGElementProps } from '@models';\n\nfunction CheckboxUncheckedIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n height=\"1em\"\n width=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\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-2zm0 14H2V2h12v12z\"\n />\n </svg>\n );\n}\n\nexport default CheckboxUncheckedIcon;\n","import type { ChopLogicSVGElementProps } from '@models';\n\nfunction CheckMarkIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 512 512\"\n fill=\"currentColor\"\n height=\"1em\"\n width=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\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 type { ChopLogicSVGElementProps } from '@models';\n\nfunction ChevronDownIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n viewBox=\"0 0 16 16\"\n height=\"1em\"\n width=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\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 type { ChopLogicSVGElementProps } from '@models';\n\nfunction ChevronLeftIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n viewBox=\"0 0 16 16\"\n height=\"1em\"\n width=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\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 type { ChopLogicSVGElementProps } from '@models';\n\nfunction ChevronRightIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n viewBox=\"0 0 16 16\"\n height=\"1em\"\n width=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\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 type { ChopLogicSVGElementProps } from '@models';\n\nfunction ChevronUpIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n viewBox=\"0 0 16 16\"\n height=\"1em\"\n width=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\n {title && <title>{title}</title>}\n <path\n fillRule=\"evenodd\"\n 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 />\n </svg>\n );\n}\n\nexport default ChevronUpIcon;\n","import type { ChopLogicSVGElementProps } from '@models';\n\nfunction ChopLogicIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 280 256\"\n height=\"1em\"\n width=\"1em\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n {...rest}\n >\n {title && <title>{title}</title>}\n <path\n d=\"M0 0 C4.76230855 3.36266518 7.81320428 7.46188181 11.1875 12.125 C12.24216337 13.5660757 13.29809698 15.00622287 14.35546875 16.4453125 C14.81590576 17.07969238 15.27634277 17.71407227 15.75073242 18.36767578 C17.04425721 20.13210596 17.04425721 20.13210596 19 22 C21.45691736 22.27137994 23.80831694 22.41876229 26.27270508 22.48095703 C27.39761856 22.51994614 27.39761856 22.51994614 28.54525757 22.5597229 C36.42406694 22.81416493 44.30721179 22.92686954 52.18920898 23.02978516 C55.92081633 23.08308458 59.64724321 23.1801945 63.37670898 23.31689453 C84.35655583 25.26105467 84.35655583 25.26105467 103.23583984 18.56933594 C106.18414756 15.35782641 108.22633024 11.93677559 110.01620483 7.97698975 C111.55419162 4.88632188 113.69974387 2.55774185 116 0 C128.83036971 4.78249141 141.56100107 9.79362247 154.25 14.9375 C154.97388916 15.22998627 155.69777832 15.52247253 156.44360352 15.82382202 C158.51045901 16.65962063 160.57579006 17.49906768 162.640625 18.33984375 C163.84235352 18.82831787 165.04408203 19.31679199 166.28222656 19.82006836 C169 21 169 21 170 22 C170.09558036 23.44213999 170.12188394 24.88894079 170.12025452 26.33424377 C170.12231651 27.73726242 170.12231651 27.73726242 170.12442017 29.16862488 C170.12082489 30.20296158 170.11722961 31.23729828 170.11352539 32.30297852 C170.11367142 33.38577087 170.11381744 34.46856323 170.1139679 35.58416748 C170.11326823 39.18243374 170.10547333 42.78064897 170.09765625 46.37890625 C170.09579226 48.86612418 170.09436827 51.35334248 170.09336853 53.84056091 C170.0899335 59.73021191 170.08204277 65.6198439 170.07201904 71.50948709 C170.05976246 78.87025374 170.05437791 86.23102264 170.04882812 93.59179688 C170.03808815 106.72787398 170.02120089 119.86393583 170 133 C151.06967744 140.89236866 132.13863614 148.78270747 113.1875 156.625 C103.33382546 160.7031227 93.48307564 164.78720661 83.65625 168.9296875 C82.56465324 169.38947495 82.56465324 169.38947495 81.45100403 169.85855103 C78.06157766 171.28664398 74.67354342 172.71788404 71.2878418 174.15478516 C70.11390869 174.65026855 68.93997559 175.14575195 67.73046875 175.65625 C66.71364014 176.08744141 65.69681152 176.51863281 64.64916992 176.96289062 C59.63254723 178.92682143 57.51480259 179.10005466 52.39282227 176.90434265 C51.65604248 176.57497208 50.9192627 176.2456015 50.16015625 175.90625 C49.37882324 175.56837967 48.59749023 175.23050934 47.79248047 174.88240051 C46.09962676 174.14923864 44.40895601 173.41102041 42.72024536 172.66836548 C38.18822062 170.67605224 33.64005534 168.72116956 29.09375 166.76171875 C27.69915306 166.15894356 27.69915306 166.15894356 26.27638245 165.54399109 C16.58944702 161.36752317 6.81871302 157.40760927 -2.97848511 153.49804688 C-19.43689165 146.93011567 -35.67735138 139.92476002 -52 133 C-52 96.37 -52 59.74 -52 22 C-42.9998755 17.49993775 -42.9998755 17.49993775 -39.59106445 16.10888672 C-38.82699783 15.79531219 -38.06293121 15.48173767 -37.27571106 15.15866089 C-36.47960922 14.83559967 -35.68350739 14.51253845 -34.86328125 14.1796875 C-34.02081345 13.83495392 -33.17834564 13.49022034 -32.31034851 13.13504028 C-29.64557853 12.04544558 -26.97907277 10.96017414 -24.3125 9.875 C-22.51225488 9.13960416 -20.71212362 8.40392953 -18.91210938 7.66796875 C-5.6596176 2.2530978 -5.6596176 2.2530978 0 0 Z M-11.94140625 21.80859375 C-12.62428207 22.09477066 -13.3071579 22.38094757 -14.01072693 22.67579651 C-15.4547304 23.28190678 -16.89799559 23.88977849 -18.34057617 24.49926758 C-20.5552334 25.4344316 -22.77251816 26.36313281 -24.99023438 27.29101562 C-26.39078607 27.87982536 -27.79118209 28.46900555 -29.19140625 29.05859375 C-29.85805801 29.3377916 -30.52470978 29.61698944 -31.21156311 29.90464783 C-34.33446734 31.08413857 -34.33446734 31.08413857 -37 33 C-37.09517803 35.76938966 -37.12554265 38.51377159 -37.11352539 41.28344727 C-37.11367142 42.15166107 -37.11381744 43.01987488 -37.1139679 43.91439819 C-37.11326846 46.79842586 -37.10547463 49.6823898 -37.09765625 52.56640625 C-37.09579218 54.56037867 -37.09436823 56.55435155 -37.09336853 58.54832458 C-37.08954248 63.80745702 -37.07971145 69.06656203 -37.06866455 74.32568359 C-37.0584523 79.68782175 -37.05387131 85.04996431 -37.04882812 90.41210938 C-37.03808926 100.94141833 -37.0210118 111.47070689 -37 122 C-30.10706527 125.17474994 -23.18230671 128.23050018 -16.1640625 131.1171875 C-15.25796234 131.49173065 -14.35186218 131.8662738 -13.41830444 132.25216675 C-5.33942155 135.5889415 2.74673128 138.90819752 10.83319092 142.2265625 C16.69302415 144.63296073 22.54439783 147.05816673 28.3866272 149.50698853 C31.78903654 150.93109541 35.19613923 152.34371057 38.60430908 153.75396729 C40.19171829 154.41394871 41.7770079 155.07905331 43.36004639 155.74945068 C45.54712904 156.67477955 47.74104616 157.58156378 49.9375 158.484375 C50.88600327 158.89379837 50.88600327 158.89379837 51.85366821 159.31149292 C58.87051259 162.14601756 64.04211534 159.78832833 70.67578125 157 C71.42210312 156.69226151 72.16842499 156.38452301 72.93736267 156.06745911 C75.39827919 155.05098432 77.8553738 154.02559934 80.3125 153 C82.03656097 152.28551337 83.76084883 151.57157402 85.48535156 150.8581543 C89.11681978 149.35463918 92.74669848 147.84737004 96.37548828 146.33740234 C102.01544909 143.99156272 107.66164636 141.66099081 113.30859375 139.33203125 C116.06455595 138.1941379 118.82034641 137.05583016 121.57601929 135.91723633 C123.34102778 135.18803548 125.10618192 134.45918704 126.87149048 133.73071289 C129.35786966 132.70398863 131.8431374 131.67461825 134.328125 130.64453125 C135.04443588 130.34924026 135.76074677 130.05394928 136.49876404 129.74971008 C142.4035322 127.29711676 148.16835556 124.65074747 154 122 C154 92.63 154 63.26 154 33 C146.86813137 29.43406569 139.90410754 26.1471377 132.5625 23.125 C131.58345703 22.70992187 130.60441406 22.29484375 129.59570312 21.8671875 C128.65791016 21.48046875 127.72011719 21.09375 126.75390625 20.6953125 C125.91158447 20.34484863 125.0692627 19.99438477 124.20141602 19.63330078 C121.85568739 18.7335591 121.85568739 18.7335591 119 20 C117.73316561 21.76857094 117.73316561 21.76857094 116.61845398 23.95852661 C109.35331607 36.44201687 109.35331607 36.44201687 103.70349503 39.06697845 C97.40299026 40.67302839 90.96927829 40.37348111 84.51953125 40.1796875 C82.45456456 40.1765686 80.38957996 40.17970302 78.32463074 40.18875122 C74.01617145 40.1882156 69.71451501 40.12628301 65.4074707 40.01708984 C59.90742961 39.88065187 54.4172597 39.87775323 48.91598988 39.91819572 C44.65900498 39.93831649 40.4042422 39.89831762 36.14768028 39.83942032 C34.1213617 39.81646278 32.09479489 39.80935492 30.06836891 39.81893539 C13.53070111 39.8320163 13.53070111 39.8320163 8.57943726 35.35797119 C5.9608611 32.49535312 3.95664251 29.34854046 2 26 C0.36731927 23.6394595 -1.31177381 21.32131102 -3 19 C-6.22619879 19 -9.00894647 20.56778986 -11.94140625 21.80859375 Z \"\n transform=\"translate(81,71)\"\n />\n <path\n d=\"M0 0 C6.66413509 4.53970493 11.15858821 11.11190897 13.74609375 18.71484375 C15.37449208 27.9465155 15.20981593 36.68733928 10.453125 44.96484375 C4.96449589 52.73427048 -1.87012365 58.49368244 -11.25390625 60.71484375 C-21.57017363 61.80427716 -30.10474226 60.99853102 -38.6875 55.01953125 C-45.22231262 49.71871444 -48.62063638 43.61465336 -51.25390625 35.71484375 C-52.05352095 24.16631015 -51.55581187 14.79022661 -44.06640625 5.40234375 C-40.3282064 1.43150914 -36.18304357 -1.03053233 -31.25390625 -3.28515625 C-30.32578125 -3.71828125 -29.39765625 -4.15140625 -28.44140625 -4.59765625 C-18.1791078 -6.81109317 -9.06907914 -5.17110405 0 0 Z M-34.25390625 11.71484375 C-34.25390625 14.02484375 -34.25390625 16.33484375 -34.25390625 18.71484375 C-30.62390625 18.71484375 -26.99390625 18.71484375 -23.25390625 18.71484375 C-23.25390625 27.62484375 -23.25390625 36.53484375 -23.25390625 45.71484375 C-20.61390625 45.71484375 -17.97390625 45.71484375 -15.25390625 45.71484375 C-15.25390625 36.80484375 -15.25390625 27.89484375 -15.25390625 18.71484375 C-11.62390625 18.71484375 -7.99390625 18.71484375 -4.25390625 18.71484375 C-4.25390625 16.40484375 -4.25390625 14.09484375 -4.25390625 11.71484375 C-14.15390625 11.71484375 -24.05390625 11.71484375 -34.25390625 11.71484375 Z \"\n transform=\"translate(108.25390625,124.28515625)\"\n />\n <path\n d=\"M0 0 C7.28899191 5.85069584 12.11411313 14.09184168 13.5234375 23.375 C14.17280025 32.95310053 11.58701319 41.84832271 5.5234375 49.375 C-0.91929658 56.33164866 -6.57686846 59.86226531 -16.02734375 60.68359375 C-26.61118107 61.03461549 -34.03011216 59.44937844 -42.2890625 52.75 C-49.52351892 45.91247836 -52.56537761 37.64931478 -52.8515625 27.875 C-52.75423034 18.51164591 -50.1863564 10.87979663 -43.7890625 3.9375 C-31.41135254 -7.33631553 -14.14669134 -9.28237161 0 0 Z M-29.4765625 11.375 C-29.4765625 22.595 -29.4765625 33.815 -29.4765625 45.375 C-27.1665625 45.375 -24.8565625 45.375 -22.4765625 45.375 C-21.19043574 44.31521067 -21.19043574 44.31521067 -21.37890625 41.87109375 C-21.39050781 40.86175781 -21.40210938 39.85242188 -21.4140625 38.8125 C-21.4346875 37.018125 -21.4553125 35.22375 -21.4765625 33.375 C-16.1965625 33.375 -10.9165625 33.375 -5.4765625 33.375 C-5.4765625 31.065 -5.4765625 28.755 -5.4765625 26.375 C-10.7565625 26.375 -16.0365625 26.375 -21.4765625 26.375 C-21.4765625 23.405 -21.4765625 20.435 -21.4765625 17.375 C-15.8665625 17.375 -10.2565625 17.375 -4.4765625 17.375 C-4.1465625 15.395 -3.8165625 13.415 -3.4765625 11.375 C-12.0565625 11.375 -20.6365625 11.375 -29.4765625 11.375 Z \"\n transform=\"translate(209.4765625,124.625)\"\n />\n <path\n d=\"M0 0 C1.91997055 -0.00539545 3.83993576 -0.01316497 5.7598877 -0.02319336 C9.77486435 -0.03495827 13.7884127 -0.0179448 17.80322266 0.01953125 C22.93531222 0.06511636 28.06405513 0.03885564 33.19602203 -0.00904846 C37.15807048 -0.0380368 41.11933277 -0.02872102 45.08140564 -0.00802612 C46.97273663 -0.00271115 48.86414034 -0.00916239 50.75538635 -0.02786255 C65.52784388 -0.14189377 65.52784388 -0.14189377 70.45336914 2.91455078 C72.4251995 4.86722043 74.00815204 6.7100503 75.46875 9.0625 C75.1749646 9.63486389 74.8811792 10.20722778 74.57849121 10.79693604 C73.88126797 12.22033442 73.22408479 13.6647897 72.62756348 15.13323975 C69.89839905 21.63271587 66.47455294 27.17838591 60.46875 31.0625 C50.3378657 34.13473359 39.49797675 33.66866543 29.01318359 33.40917969 C24.807035 33.30646394 20.62133496 33.36718056 16.41589355 33.47126007 C-8.01514819 33.98318435 -8.01514819 33.98318435 -15.34326172 29.24389648 C-20.17939244 24.59052352 -23.03088459 19.21762243 -25.53125 13.0625 C-26.18700248 11.72376519 -26.85052634 10.38871172 -27.53125 9.0625 C-20.96578654 -1.51188323 -11.08200882 -0.10957611 0 0 Z \"\n transform=\"translate(115.53125,56.9375)\"\n />\n <path\n d=\"M0 0 C5.57894737 3.15789474 5.57894737 3.15789474 7 6 C7.42038217 14.68789809 7.42038217 14.68789809 5 18 C4.01 18.66 3.02 19.32 2 20 C1.55305285 22.23452637 1.55305285 22.23452637 1.63923645 24.87210083 C1.63305046 26.41601501 1.63305046 26.41601501 1.6267395 27.99111938 C1.63752533 29.12471893 1.64831116 30.25831848 1.65942383 31.42626953 C1.65898575 32.61649719 1.65854767 33.80672485 1.65809631 35.03302002 C1.65983133 38.30154545 1.67490236 41.56968823 1.69581819 44.83813715 C1.71454041 48.25209047 1.7163319 51.66605087 1.71989441 55.08004761 C1.72922803 61.54700949 1.75385947 68.01381967 1.78394288 74.48071468 C1.81744606 81.84214735 1.83396259 89.20358717 1.84902918 96.56507707 C1.880408 111.71013598 1.93319392 126.85505284 2 142 C0.4042311 141.88029377 -1.19068411 141.74917295 -2.78515625 141.61328125 C-4.11752319 141.50560425 -4.11752319 141.50560425 -5.47680664 141.39575195 C-10.02082425 140.68304247 -12.84941699 138.30928411 -15.8125 134.9375 C-17.78350736 131.72164588 -18.13303222 129.04889908 -18.17700195 125.36425781 C-18.18983719 124.42608215 -18.20267242 123.48790649 -18.21589661 122.52130127 C-18.22328354 121.5088031 -18.23067047 120.49630493 -18.23828125 119.453125 C-18.246353 118.4085614 -18.25442474 117.3639978 -18.26274109 116.28778076 C-18.27657636 114.07533424 -18.287301 111.86286642 -18.29516602 109.65039062 C-18.31236273 106.27692898 -18.35625297 102.90445148 -18.40039062 99.53125 C-18.41051925 97.38021553 -18.41903482 95.22917274 -18.42578125 93.078125 C-18.44328934 92.07372375 -18.46079742 91.06932251 -18.47883606 90.03448486 C-18.4596453 83.79765276 -17.8402306 80.00000499 -14 75 C-12.41481567 74.14414307 -12.41481567 74.14414307 -10.79760742 73.27099609 C-7.84048174 71.33801424 -7.84048174 71.33801424 -7.44497681 68.73126221 C-7.21974518 65.69296018 -7.19501625 62.71051727 -7.23828125 59.6640625 C-7.23322823 57.99589981 -7.23322823 57.99589981 -7.22807312 56.29403687 C-7.22837206 53.94207129 -7.24362904 51.59006711 -7.27270508 49.23828125 C-7.31228395 45.64461704 -7.29344465 42.05466005 -7.26757812 38.4609375 C-7.27513968 36.17446488 -7.28609558 33.88800046 -7.30078125 31.6015625 C-7.29379715 30.52951569 -7.28681305 29.45746887 -7.27961731 28.35293579 C-7.40487217 21.70582531 -8.19326878 18.64167911 -13 14 C-13.89117557 10.93900566 -13.47019022 9.29133151 -13 6 C-9.63548925 0.54717224 -6.28548686 -0.6162242 0 0 Z \"\n transform=\"translate(19,46)\"\n />\n <path\n d=\"M0 0 C2.80703896 1.34040619 3.86054551 2.54745461 6 5 C7.28998174 9.17347032 7.29348391 11.22226764 5.75 15.3125 C4 18 4 18 1 20 C0.52850692 22.13856067 0.52850692 22.13856067 0.58007812 24.64575195 C0.56416626 25.61047928 0.54825439 26.5752066 0.53186035 27.56916809 C0.53165894 28.61497543 0.53145752 29.66078278 0.53125 30.73828125 C0.52363647 31.81119919 0.51602295 32.88411713 0.50817871 33.98954773 C0.49735683 36.26343455 0.49453303 38.53737116 0.49902344 40.8112793 C0.49999329 44.28844557 0.45844462 47.76338844 0.4140625 51.24023438 C0.40885389 53.44791206 0.40616733 55.65559742 0.40625 57.86328125 C0.38985474 58.9030159 0.37345947 59.94275055 0.35656738 61.01399231 C0.35637177 66.87403859 0.35637177 66.87403859 3.22460938 71.82104492 C4.14048828 72.5401001 5.05636719 73.25915527 6 74 C10.68564469 78.47439303 11.59366408 81.34706517 11.79589844 87.79293823 C11.80137695 88.78681549 11.80685547 89.78069275 11.8125 90.8046875 C11.83473633 91.84263458 11.85697266 92.88058167 11.87988281 93.94998169 C11.92135268 96.14012976 11.95088514 98.33053234 11.96923828 100.52099609 C11.99984142 103.85771015 12.07309395 107.19146843 12.15234375 110.52734375 C12.18743858 112.66141803 12.22007163 114.79553451 12.25 116.9296875 C12.27167236 117.9195163 12.29334473 118.90934509 12.31567383 119.9291687 C12.34219703 126.00356707 11.61891432 130.48923818 9 136 C4.7301903 140.0615263 2.17235676 141.12991113 -3.625 141.0625 C-4.62789063 141.05347656 -5.63078125 141.04445312 -6.6640625 141.03515625 C-7.82035156 141.01775391 -7.82035156 141.01775391 -9 141 C-9.02318444 131.82910742 -9.04094622 122.65822496 -9.05181217 113.48730946 C-9.05702764 109.2287524 -9.06410104 104.97021542 -9.07543945 100.71166992 C-9.0863158 96.60088084 -9.09228691 92.49011106 -9.09487724 88.3793087 C-9.09672293 86.81205631 -9.10032707 85.24480497 -9.10573006 83.67756081 C-9.11300348 81.4800858 -9.11398828 79.28269021 -9.11352539 77.08520508 C-9.115746 75.83500076 -9.11796661 74.58479645 -9.12025452 73.29670715 C-9.01388081 70.3805343 -8.61123855 67.83960969 -8 65 C-7.89603332 63.46245586 -7.83275609 61.92170145 -7.80712891 60.38085938 C-7.79106598 59.49644165 -7.77500305 58.61202393 -7.75845337 57.70080566 C-7.71369546 53.69101093 -7.67299487 49.6813727 -7.64990234 45.67138672 C-7.6332999 43.55701728 -7.60595404 41.44270492 -7.56787109 39.32861328 C-7.51314096 36.27086462 -7.49124047 33.21442221 -7.4765625 30.15625 C-7.45389313 29.21342163 -7.43122375 28.27059326 -7.40786743 27.29919434 C-7.42598698 21.67120672 -7.42598698 21.67120672 -10.47021484 16.99023438 C-11.30504395 16.33345703 -12.13987305 15.67667969 -13 15 C-14.43304064 12.13391871 -14.30644155 10.18699217 -14 7 C-10.39201991 0.62590184 -7.36619305 -1.18897736 0 0 Z \"\n transform=\"translate(267,46)\"\n />\n <path\n d=\"M0 0 C1.68647082 -0.04657255 3.37393806 -0.06316166 5.06103516 -0.05566406 C6.4019371 -0.06995453 6.4019371 -0.06995453 7.76992798 -0.08453369 C9.66119547 -0.09670016 11.55258467 -0.09585607 13.44384766 -0.08300781 C16.33404026 -0.07135381 19.21835942 -0.12348428 22.10791016 -0.18066406 C23.94644772 -0.18455023 25.78499786 -0.18467369 27.62353516 -0.18066406 C28.48514252 -0.20110779 29.34674988 -0.22155151 30.23446655 -0.24261475 C36.06705214 -0.13032286 36.06705214 -0.13032286 38.68292236 2.20031738 C40.04072076 3.99811851 41.12728332 5.59102188 41.97509766 7.67871094 C41.47509766 10.36621094 41.47509766 10.36621094 39.97509766 12.67871094 C39.46837524 13.72164307 39.46837524 13.72164307 38.95141602 14.78564453 C35.73917522 17.86257043 32.14010974 17.28926612 27.85400391 17.28027344 C26.9576976 17.28884369 26.0613913 17.29741394 25.13792419 17.3062439 C23.24245584 17.31772877 21.34689932 17.3187321 19.45141602 17.31005859 C16.55087864 17.30373987 13.65442658 17.35063202 10.75439453 17.40136719 C8.91260281 17.40591356 7.0708001 17.40731998 5.22900391 17.40527344 C3.92885094 17.43290268 3.92885094 17.43290268 2.60243225 17.46109009 C0.24298836 17.42484122 -1.75627718 17.33006886 -4.02490234 16.67871094 C-6.6553077 13.73967998 -8.0597361 12.10689478 -7.96240234 8.11621094 C-7.65302734 7.31183594 -7.34365234 6.50746094 -7.02490234 5.67871094 C-6.69796387 4.81858398 -6.37102539 3.95845703 -6.03417969 3.07226562 C-3.7470591 0.34772975 -3.36586368 0.29521357 0 0 Z \"\n transform=\"translate(123.02490234375,191.3212890625)\"\n />\n </svg>\n );\n}\n\nexport default ChopLogicIcon;\n","import type { ChopLogicSVGElementProps } from '@models';\n\nfunction ClearIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 1024 1024\"\n fill=\"currentColor\"\n height=\"1em\"\n width=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\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 type { 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 aria-hidden=\"true\"\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 type { 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 aria-hidden=\"true\"\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 type { ChopLogicSVGElementProps } from '@models';\n\nfunction DeleteIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 1024 1024\"\n fill=\"currentColor\"\n height=\"1em\"\n width=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\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 type { ChopLogicSVGElementProps } from '@models';\n\nfunction DocumentsIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n width=\"1em\"\n height=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\n {title && <title>{title}</title>}\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M10.945 1.25h2.11c1.367 0 2.47 0 3.337.117c.9.12 1.658.38 2.26.981c.298.299.512.636.667 1.01c.932.116 1.715.372 2.333.99c.602.602.86 1.36.982 2.26c.116.867.116 1.97.116 3.337v4.11c0 1.367 0 2.47-.116 3.337c-.122.9-.38 1.658-.982 2.26c-.618.618-1.4.874-2.333.991c-.155.373-.369.71-.667 1.009c-.602.602-1.36.86-2.26.982c-.867.116-1.97.116-3.337.116h-2.11c-1.367 0-2.47 0-3.337-.116c-.9-.122-1.658-.38-2.26-.982a3.1 3.1 0 0 1-.667-1.009c-.932-.117-1.715-.373-2.333-.991c-.602-.602-.86-1.36-.981-2.26c-.117-.867-.117-1.97-.117-3.337v-4.11c0-1.367 0-2.47.117-3.337c.12-.9.38-1.658.981-2.26c.618-.618 1.4-.874 2.333-.99a3.1 3.1 0 0 1 .667-1.01c.602-.602 1.36-.86 2.26-.981c.867-.117 1.97-.117 3.337-.117M4.328 4.94c-.437.106-.71.26-.919.47c-.277.276-.457.664-.556 1.398c-.101.756-.103 1.757-.103 3.192v4c0 1.435.002 2.437.103 3.192c.099.734.28 1.122.556 1.399c.209.209.482.363.92.469c-.079-.812-.079-1.806-.079-3.005v-8.11c0-1.198 0-2.193.078-3.005m15.344 14.12c.437-.106.71-.26.919-.469c.277-.277.457-.665.556-1.4c.101-.754.103-1.755.103-3.19v-4c0-1.436-.002-2.437-.103-3.193c-.099-.734-.28-1.122-.556-1.399c-.209-.209-.482-.363-.92-.469c.079.812.079 1.807.079 3.005v8.11c0 1.198 0 2.193-.078 3.005M7.808 2.853c-.734.099-1.122.28-1.399.556c-.277.277-.457.665-.556 1.4C5.752 5.562 5.75 6.564 5.75 8v8c0 1.435.002 2.436.103 3.192c.099.734.28 1.122.556 1.399c.277.277.665.457 1.4.556c.754.101 1.756.103 3.191.103h2c1.435 0 2.437-.002 3.192-.103c.734-.099 1.122-.28 1.399-.556c.277-.277.457-.665.556-1.4c.101-.755.103-1.756.103-3.191V8c0-1.435-.002-2.437-.103-3.192c-.099-.734-.28-1.122-.556-1.399c-.277-.277-.665-.457-1.4-.556c-.754-.101-1.756-.103-3.191-.103h-2c-1.435 0-2.437.002-3.192.103M8.25 9A.75.75 0 0 1 9 8.25h6a.75.75 0 0 1 0 1.5H9A.75.75 0 0 1 8.25 9m0 4a.75.75 0 0 1 .75-.75h6a.75.75 0 0 1 0 1.5H9a.75.75 0 0 1-.75-.75m0 4a.75.75 0 0 1 .75-.75h3a.75.75 0 0 1 0 1.5H9a.75.75 0 0 1-.75-.75\"\n clipRule=\"evenodd\"\n ></path>\n </svg>\n );\n}\n\nexport default DocumentsIcon;\n","import type { ChopLogicSVGElementProps } from '@models';\n\nfunction DownloadIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 1024 1024\"\n fill=\"currentColor\"\n height=\"1em\"\n width=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\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 type { ChopLogicSVGElementProps } from '@models';\n\nfunction EditIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n width=\"1em\"\n height=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\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 type { ChopLogicSVGElementProps } from '@models';\n\nfunction EmailIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n width=\"1em\"\n height=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\n {title && <title>{title}</title>}\n <path\n fill=\"currentColor\"\n d=\"m16.484 11.976l6.151-5.344v10.627zm-7.926.905l2.16 1.875c.339.288.781.462 1.264.462h.017h-.001h.014c.484 0 .926-.175 1.269-.465l-.003.002l2.16-1.875l6.566 5.639H1.995zM1.986 5.365h20.03l-9.621 8.356a.6.6 0 0 1-.38.132h-.014h.001h-.014a.6.6 0 0 1-.381-.133l.001.001zm-.621 1.266l6.15 5.344l-6.15 5.28zm21.6-2.441c-.24-.12-.522-.19-.821-.19H1.859a1.9 1.9 0 0 0-.835.197l.011-.005A1.86 1.86 0 0 0 0 5.855v12.172a1.86 1.86 0 0 0 1.858 1.858h20.283a1.86 1.86 0 0 0 1.858-1.858V5.855c0-.727-.419-1.357-1.029-1.66l-.011-.005z\"\n ></path>\n </svg>\n );\n}\n\nexport default EmailIcon;\n","import type { ChopLogicSVGElementProps } from '@models';\n\nfunction ErrorIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n height=\"1em\"\n width=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\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 type { ChopLogicSVGElementProps } from '@models';\n\nfunction ForwardIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 512 512\"\n fill=\"currentColor\"\n height=\"1em\"\n width=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\n {title && <title>{title}</title>}\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={48}\n d=\"M184 112l144 144-144 144\"\n />\n </svg>\n );\n}\n\nexport default ForwardIcon;\n","import type { ChopLogicSVGElementProps } from '@models';\n\nconst GraduateIcon = ({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"1em\"\n height=\"1em\"\n fill=\"currentColor\"\n viewBox=\"0 0 448 512\"\n aria-hidden=\"true\"\n {...rest}\n >\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 type { ChopLogicSVGElementProps } from '@models';\n\nfunction HelpIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 512 512\"\n fill=\"currentColor\"\n height=\"1em\"\n width=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\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 type { ChopLogicSVGElementProps } from '@models';\n\nfunction HideIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n height=\"1em\"\n width=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\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 type { ChopLogicSVGElementProps } from '@models';\n\nconst HomeIcon = ({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"1em\"\n height=\"1em\"\n fill=\"currentColor\"\n viewBox=\"0 0 1024 1024\"\n aria-hidden=\"true\"\n {...rest}\n >\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 type { ChopLogicSVGElementProps } from '@models';\n\nfunction InfoIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 1024 1024\"\n fill=\"currentColor\"\n height=\"1em\"\n width=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\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 type { ChopLogicSVGElementProps } from '@models';\n\nconst LoginIcon = ({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"1em\"\n height=\"1em\"\n fill=\"currentColor\"\n viewBox=\"0 0 1024 1024\"\n aria-hidden=\"true\"\n {...rest}\n >\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 type { ChopLogicSVGElementProps } from '@models';\n\nfunction PasteIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n height=\"1em\"\n width=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\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 type { ChopLogicSVGElementProps } from '@models';\n\nfunction PhoneIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n width=\"1em\"\n height=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\n {title && <title>{title}</title>}\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeMiterlimit=\"10\"\n strokeWidth=\"1.5\"\n d=\"M12.735 20.191a15 15 0 0 1-.92-.447a19 19 0 0 1-4.1-3.12A18 18 0 0 1 3.88 11.42a11.3 11.3 0 0 1-1.022-3.325a5.93 5.93 0 0 1 .37-3.465c.289-.47.637-.9 1.035-1.279a1.8 1.8 0 0 1 1.278-.601c.505.076.962.34 1.278.742c.69.767 1.43 1.457 2.159 2.186c.287.246.466.595.498.972c-.012.317-.134.62-.345.857c-.242.307-.536.588-.817.882a1.54 1.54 0 0 0-.46 1.279a3.7 3.7 0 0 0 .881 1.457c.486.665.971 1.28 1.52 1.931a13.6 13.6 0 0 0 3.463 2.865a1.28 1.28 0 0 0 1.278.153a4 4 0 0 0 1.137-.946c.275-.335.669-.55 1.099-.601c.383.02.744.184 1.01.46c.344.294.638.64.958.959c.319.32.575.55.843.844q.482.425.907.908c.22.284.324.64.294.997a2.1 2.1 0 0 1-.703 1.087a4.78 4.78 0 0 1-3.756 1.458a10.7 10.7 0 0 1-4.05-1.049Z\"\n ></path>\n </svg>\n );\n}\n\nexport default PhoneIcon;\n","import type { ChopLogicSVGElementProps } from '@models';\n\nfunction PlusCircleIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n width=\"1em\"\n height=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\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 type { ChopLogicSVGElementProps } from '@models';\n\nfunction ProjectsIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n width=\"1em\"\n height=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\n {title && <title>{title}</title>}\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeMiterlimit=\"10\"\n strokeWidth=\"1.5\"\n d=\"M10 21V3m-7 7h18M5.4 3h13.2A2.4 2.4 0 0 1 21 5.4v13.2a2.4 2.4 0 0 1-2.4 2.4H5.4A2.4 2.4 0 0 1 3 18.6V5.4A2.4 2.4 0 0 1 5.4 3\"\n ></path>\n </svg>\n );\n}\n\nexport default ProjectsIcon;\n","import type { ChopLogicSVGElementProps } from '@models';\n\nfunction QuestionIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 512 512\"\n fill=\"currentColor\"\n height=\"1em\"\n width=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\n {title && <title>{title}</title>}\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeMiterlimit={10}\n strokeWidth={32}\n d=\"M256 80a176 176 0 10176 176A176 176 0 00256 80z\"\n />\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 type { ChopLogicSVGElementProps } from '@models';\n\nfunction RemoveIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 512 512\"\n fill=\"currentColor\"\n height=\"1em\"\n width=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\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 type { ChopLogicSVGElementProps } from '@models';\n\nfunction SaveIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 1024 1024\"\n fill=\"currentColor\"\n height=\"1em\"\n width=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\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 type { ChopLogicSVGElementProps } from '@models';\n\nfunction SearchIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n width=\"1em\"\n height=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\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 type { ChopLogicSVGElementProps } from '@models';\n\nfunction SettingsIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 14 14\"\n width=\"1em\"\n height=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\n {title && <title>{title}</title>}\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"m5.23 2.25l.43-1.11A1 1 0 0 1 6.59.5h.82a1 1 0 0 1 .93.64l.43 1.11l1.46.84l1.18-.18a1 1 0 0 1 1 .49l.4.7a1 1 0 0 1-.08 1.13l-.73.93v1.68l.75.93a1 1 0 0 1 .08 1.13l-.4.7a1 1 0 0 1-1 .49l-1.18-.18l-1.46.84l-.43 1.11a1 1 0 0 1-.93.64h-.84a1 1 0 0 1-.93-.64l-.43-1.11l-1.46-.84l-1.18.18a1 1 0 0 1-1-.49l-.4-.7a1 1 0 0 1 .08-1.13L2 7.84V6.16l-.75-.93a1 1 0 0 1-.08-1.13l.4-.7a1 1 0 0 1 1-.49l1.18.18ZM5 7a2 2 0 1 0 2-2a2 2 0 0 0-2 2Z\"\n ></path>\n </svg>\n );\n}\n\nexport default SettingsIcon;\n","import type { ChopLogicSVGElementProps } from '@models';\n\nfunction ShowIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n height=\"1em\"\n width=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\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 type { ChopLogicSVGElementProps } from '@models';\n\nfunction UploadIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n viewBox=\"0 0 16 16\"\n height=\"1em\"\n width=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\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 type { ChopLogicSVGElementProps } from '@models';\n\nfunction WarningIcon({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n height=\"1em\"\n width=\"1em\"\n aria-hidden=\"true\"\n {...rest}\n >\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 type { ChopLogicSVGElementProps } from '@models';\nimport type { 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 ChopLogicIcon from './svg/ChopLogic';\nimport ClearIcon from './svg/ClearIcon';\nimport CopyIcon from './svg/CopyIcon';\nimport CutIcon from './svg/CutIcon';\nimport DeleteIcon from './svg/DeleteIcon';\nimport DocumentsIcon from './svg/Documents';\nimport DownloadIcon from './svg/DownloadIcon';\nimport EditIcon from './svg/EditIcon';\nimport EmailIcon from './svg/Email';\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 PhoneIcon from './svg/Phone';\nimport PlusCircleIcon from './svg/PlusCircle';\nimport ProjectsIcon from './svg/Projects';\nimport QuestionIcon from './svg/QuestionIcon';\nimport RemoveIcon from './svg/RemoveIcon';\nimport SaveIcon from './svg/SaveIcon';\nimport SearchIcon from './svg/Search';\nimport SettingsIcon from './svg/Settings';\nimport ShowIcon from './svg/ShowIcon';\nimport UploadIcon from './svg/UploadIcon';\nimport WarningIcon from './svg/WarningIcon';\n\ntype Icons = {\n [key in IconName]: ({ title, ...rest }: Readonly<ChopLogicSVGElementProps>) => ReactElement;\n};\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.ChopLogic]: ChopLogicIcon,\n [IconName.Clear]: ClearIcon,\n [IconName.Copy]: CopyIcon,\n [IconName.Cut]: CutIcon,\n [IconName.Delete]: DeleteIcon,\n [IconName.Documents]: DocumentsIcon,\n [IconName.Download]: DownloadIcon,\n [IconName.Edit]: EditIcon,\n [IconName.Email]: EmailIcon,\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.Phone]: PhoneIcon,\n [IconName.PlusCircle]: PlusCircleIcon,\n [IconName.Projects]: ProjectsIcon,\n [IconName.Question]: QuestionIcon,\n [IconName.Save]: SaveIcon,\n [IconName.Search]: SearchIcon,\n [IconName.Settings]: SettingsIcon,\n [IconName.Show]: ShowIcon,\n [IconName.Upload]: UploadIcon,\n [IconName.Warning]: WarningIcon,\n [IconName.Remove]: RemoveIcon,\n};\n","import { IconDictionary } from '@assets/icons';\nimport type { IconProps } from '@models';\nimport { getClassName } from '@utils';\nimport type { FC } from 'react';\n\nimport styles from './Icon.module.scss';\n\nconst Icon: FC<IconProps> = ({ name, testId, className, hidden, ...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} aria-hidden={hidden} {...rest} />;\n};\n\nexport default Icon;\n","import {\n type ForwardRefRenderFunction,\n forwardRef,\n type InputHTMLAttributes,\n type PropsWithChildren,\n} 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 type { IconName } from '@enums';\nimport type { 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> = ({\n label,\n required,\n inputId,\n icon,\n iconPosition,\n isTextHidden = false,\n}) => {\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 { Icon } from '@atoms';\nimport type { LinkProps } from '@models';\nimport { getClassName } from '@utils';\nimport type { FC } from 'react';\n\nimport styles from './Link.module.scss';\n\nconst Link: FC<LinkProps> = ({\n href,\n children,\n icon,\n iconPosition = 'left',\n external = false,\n disabled = false,\n className,\n target,\n ...rest\n}) => {\n const linkClass = getClassName([styles.link, className, { [styles.link__disabled]: disabled }]);\n const isExternal = external || href.startsWith('http') || href.startsWith('//');\n const linkTarget = isExternal ? target || '_blank' : target;\n const iconElement = icon ? (\n <Icon name={icon} className={styles.link_icon} aria-hidden=\"true\" />\n ) : null;\n const isLeftIcon = icon && iconPosition === 'left';\n const isRightIcon = icon && iconPosition === 'right';\n\n return (\n <a\n href={href}\n className={linkClass}\n target={linkTarget}\n {...(isExternal && {\n 'aria-label':\n typeof children === 'string'\n ? `${children} (opens in new window)`\n : 'Opens in new window',\n })}\n aria-disabled={disabled}\n {...rest}\n >\n {isLeftIcon && iconElement}\n <span className={styles.link_text}>{children}</span>\n {isRightIcon && iconElement}\n </a>\n );\n};\n\nexport default Link;\n","import { LoaderView } from '@enums';\nimport type { LoaderProps } from '@models';\nimport { getClassName } from '@utils';\nimport type { 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 { type ReactElement, type 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 container.remove();\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 { type 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 = ({\n ref,\n onClickOutsideHandler,\n dependentRef,\n}: UseClickOutsideParams): void => {\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n const isOutsideRef = ref?.current && !ref.current.contains(event.target as Node);\n const hasNoDependentRef = !dependentRef?.current;\n const isOutsideDependentRef = hasNoDependentRef\n ? true\n : !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 type { Dimensions } from '@models';\nimport { type RefObject, useEffect, useState } from 'react';\n\ntype useContainerDimensionsParams = {\n ref: RefObject<HTMLElement | null>;\n isVisible?: boolean;\n};\n\nexport const useContainerDimensions = ({\n ref,\n isVisible,\n}: 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 let timeoutId: NodeJS.Timeout;\n\n if (isOpened) {\n setIsMounted(true);\n } else {\n timeoutId = setTimeout(() => {\n setIsMounted(false);\n }, delay);\n }\n\n return () => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n };\n }, [isOpened, delay]);\n\n return isMounted;\n};\n","import { type 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 { type 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 { type 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 = Array.from(\n modalElement.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\n ),\n );\n const firstElement = focusableElements[0] as HTMLElement;\n const lastElement = focusableElements.at(-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 type { FormContextProps } from '@models';\nimport { createContext } from 'react';\n\nexport const FormContext = createContext<FormContextProps>({});\n","import { ThemeMode } from '@enums';\nimport type { 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 { type FC, type ReactNode, useEffect, useMemo, useState } from 'react';\n\nimport { ThemeContext } from './ThemeContext';\n\nexport const ThemeProvider: FC<{ children: ReactNode; injectedMode?: ThemeMode }> = ({\n children,\n injectedMode,\n}) => {\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 { type RefObject, useEffect, useState } from 'react';\n\nimport { useContainerDimensions } from '../use-container-dimensions/use-container-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 = ({\n wrapperRef,\n tooltipRef,\n isOpened,\n spacing = 4,\n}: 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\n useEffect(() => {\n if (!isOpened || !wrapperRef?.current) {\n return;\n }\n\n const updatePosition = () => {\n const rect = wrapperRef.current?.getBoundingClientRect();\n if (!rect) return;\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\n // Initial position calculation\n updatePosition();\n\n // Set up resize observer for window changes\n const resizeObserver = new ResizeObserver(updatePosition);\n resizeObserver.observe(document.documentElement);\n\n return () => {\n resizeObserver.disconnect();\n };\n }, [isOpened, wrapperRef, tooltipHeight, tooltipWidth, spacing]);\n\n return position;\n};\n","import type { Dimensions } from '@models';\nimport { useEffect, useState } from 'react';\n\nfunction getWindowDimensions(): Dimensions {\n const { innerWidth: width, innerHeight: height } = globalThis;\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 {\n useAutoClose,\n useClickOutside,\n useElementIds,\n useKeyPress,\n useTooltipPosition,\n} from '@hooks';\nimport { type 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({\n ref: tooltipRef,\n onClickOutsideHandler: closeTooltip,\n dependentRef: wrapperRef,\n });\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 type { TooltipProps } from '@models';\nimport { getClassName } from '@utils';\nimport type { 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 {\n openTooltip,\n closeTooltip,\n toggleTooltip,\n handleContextMenu,\n elementId,\n top,\n left,\n isOpened,\n wrapperRef,\n 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={\n visibleOn === 'contextmenu' ? (e: MouseEvent) => handleContextMenu(e) : undefined\n }\n tabIndex={-1}\n ref={wrapperRef}\n aria-describedby={elementId}\n >\n {children}\n {isOpened && (\n <Portal>\n <div\n style={{ ...style, top, left }}\n ref={tooltipRef}\n role=\"tooltip\"\n id={elementId}\n {...rest}\n className={tooltipClass}\n >\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 type { AlertProps } from '@models';\nimport { getClassName } from '@utils';\nimport type { 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 type { 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 {\n type ChangeEvent,\n type ChangeEventHandler,\n useCallback,\n useContext,\n useState,\n} 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 type { CheckboxProps } from '@models';\nimport { getClassName } from '@utils';\nimport type { 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 type { MultiSelectValue } from '@models';\nimport type { 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 type { 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(\n (item) => item === option.id || item?.id === option.id,\n );\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 = (\n options: MultiSelectValue[],\n id: string,\n): 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 type { MultiSelectValue, SelectValue } from '@models';\nimport { useCallback, useContext, useState } from 'react';\n\nimport {\n getMultiSelectFormValues,\n getMultiSelectInitialValues,\n getMultiSelectUpdatedValues,\n} 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({\n name,\n options,\n initialValues,\n defaultValue,\n });\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 type { MultiSelectValue } from '@models';\nimport { getClassName } from '@utils';\nimport type { 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([\n styles.option,\n styles.option__multi,\n { [styles.option__selected]: selected },\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 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 type { MultiSelectValue } from '@models';\nimport { getClassName, handleDropdownListKeyPress } from '@utils';\nimport type { 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> = ({\n options,\n opened,\n onClose,\n onSelect,\n dropdownId,\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 <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 type { MultiSelectProps } from '@models';\nimport { getClassName } from '@utils';\nimport { type 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\n options={values}\n opened={opened}\n onClose={handleClose}\n dropdownId={dropdownId}\n onSelect={handleSelect}\n />\n </div>\n );\n};\n\nexport default MultiSelect;\n","import type { 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 type { NumericInputValidator } from '@models';\nimport {\n type ChangeEvent,\n type ChangeEventHandler,\n useCallback,\n useContext,\n useState,\n} 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 type { NumericInputProps } from '@models';\nimport { getClassName } from '@utils';\nimport type { 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 } =\n 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\n errorId={errorId}\n message={errorMessage}\n visible={!valid}\n className={styles.errorMessage}\n />\n </Input>\n </div>\n );\n};\n\nexport default NumericInput;\n","import { Button, Input, Label } from '@atoms';\nimport { ButtonView, IconName } from '@enums';\nimport { useDebounce, useElementIds } from '@hooks';\nimport type { SearchProps } from '@models';\nimport { getClassName } from '@utils';\nimport { type FC, useCallback, useEffect, useRef, useState } from 'react';\n\nimport styles from './Search.module.scss';\n\nconst Search: FC<SearchProps> = ({\n label,\n onSearch,\n onBlur,\n onFocus,\n onClear,\n id,\n tabIndex,\n className,\n maxLength = 50,\n minLength = 1,\n searchMode = 'automatic',\n name = 'q',\n placeholder = 'Type to search...',\n disabled = false,\n clearable = true,\n spellCheck = false,\n autoComplete = 'off',\n debounceDelay = 500,\n ...rest\n}) => {\n const { elementId } = useElementIds(id);\n const inputClass = getClassName([styles.wrapper, className]);\n const [searchValue, setSearchValue] = useState('');\n const inputRef = useRef<HTMLInputElement>(null);\n const isSearchButtonVisible = searchMode === 'manual';\n const isLabelIconVisible = !isSearchButtonVisible;\n const isClearButtonVisible = clearable && searchValue.length > 0;\n const isSearchValueValid =\n searchValue.length >= minLength &&\n searchValue.trim().length > 0 &&\n searchValue.length <= maxLength;\n const debouncedSearchValue = useDebounce(searchValue, debounceDelay);\n\n useEffect(() => {\n if (\n debouncedSearchValue.trim().length > 0 &&\n searchMode === 'automatic' &&\n isSearchValueValid\n ) {\n onSearch?.(debouncedSearchValue);\n }\n }, [debouncedSearchValue]);\n\n const handleChange = useCallback((event: React.ChangeEvent<HTMLInputElement>) => {\n const value = event.target.value;\n setSearchValue(value);\n }, []);\n\n const handleClear = useCallback(() => {\n setSearchValue('');\n if (inputRef.current) {\n inputRef.current.focus();\n }\n onClear?.();\n }, [onClear]);\n\n const handleSearchClick = useCallback(() => {\n onSearch?.(searchValue);\n }, [onSearch, searchValue]);\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n // Trigger immediate search on Enter\n event.preventDefault();\n if (onSearch) {\n onSearch(searchValue);\n }\n } else if (event.key === 'Escape') {\n // Clear on Escape\n event.preventDefault();\n handleClear();\n }\n },\n [onSearch, searchValue, handleClear],\n );\n\n return (\n <div {...rest} className={inputClass}>\n <Label\n label={label}\n required={false}\n inputId={elementId}\n icon={isLabelIconVisible ? IconName.Search : undefined}\n iconPosition={isLabelIconVisible ? 'left' : undefined}\n />\n <Input\n ref={inputRef}\n id={elementId}\n name={name}\n type=\"search\"\n value={searchValue}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onBlur={onBlur}\n onFocus={onFocus}\n disabled={disabled}\n placeholder={placeholder}\n autoComplete={autoComplete}\n maxLength={maxLength}\n minLength={minLength}\n spellCheck={spellCheck}\n tabIndex={tabIndex}\n >\n <span>\n {isClearButtonVisible && (\n <Button\n view={ButtonView.Inner}\n onClick={handleClear}\n label={`Clear search input for ${label}`}\n icon={IconName.Remove}\n />\n )}\n {isSearchButtonVisible && (\n <Button\n view={ButtonView.Inner}\n onClick={handleSearchClick}\n label=\"Perform search\"\n icon={IconName.Search}\n disabled={disabled || !isSearchValueValid}\n />\n )}\n </span>\n </Input>\n </div>\n );\n};\n\nexport default Search;\n","import ArrowDownIcon from '@assets/icons/svg/ArrowDownIcon';\nimport ArrowUpIcon from '@assets/icons/svg/ArrowUpIcon';\nimport type { SelectValue } from '@models';\nimport type { 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> = ({\n opened,\n onClick,\n comboboxId,\n dropdownId,\n selected,\n name,\n placeholder,\n disabled,\n required,\n}) => {\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 type { SelectValue } from '@models';\nimport { getClassName } from '@utils';\nimport type { 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 type { SelectValue } from '@models';\nimport { getClassName, handleDropdownListKeyPress, moveFocusOnElementById } from '@utils';\nimport type { 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> = ({\n options,\n opened,\n onClose,\n onSelect,\n dropdownId,\n comboboxId,\n selected,\n onClear,\n}) => {\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 type { 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.hasOwn(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 type { 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 type { SelectProps } from '@models';\nimport { getClassName } from '@utils';\nimport { type 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 } =\n 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 type { 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 type { ChopLogicRegExpWithFlags, TextInputValidator } from '@models';\nimport {\n type ChangeEvent,\n type ChangeEventHandler,\n useCallback,\n useContext,\n useState,\n} 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 type { TextInputProps } from '@models';\nimport { getClassName } from '@utils';\nimport type { 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 } =\n 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\n errorId={errorId}\n message={errorMessage}\n visible={!valid}\n className={styles.errorMessage}\n />\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 type { DialogProps } from '@models';\nimport { getClassName } from '@utils';\nimport { type 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 type { 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(\n state: FormValidationState,\n params: FormInputParams,\n): 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 type { FormInputParams, FormValues } from '@models';\nimport { type FormEvent, type 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 type { FormProps } from '@models';\nimport { getClassName } from '@utils';\nimport { type FC, useMemo } 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 baseClass = getClassName([styles.form, className]);\n const columnsClass = styles[`columns-${columnsNumber}`];\n const formClass = `${baseClass} ${columnsClass}`;\n const buttonColumnsClass = styles[`buttons-${columnsNumber}`];\n const buttonsClass = `${styles.buttons} ${buttonColumnsClass}`;\n const contextValue = useMemo(\n () => ({ onChangeFormInput: handleInputChange, initialValues, resetSignal }),\n [handleInputChange, initialValues, resetSignal],\n );\n\n return (\n <form onSubmit={handleSubmit} onReset={handleReset} {...rest} className={formClass}>\n <FormContext.Provider value={contextValue}>\n {children}\n <div className={buttonsClass}>\n {hasReset && (\n <Button type=\"reset\" text=\"Reset\" icon={IconName.Clear} view={ButtonView.Secondary} />\n )}\n <Button\n type=\"submit\"\n text=\"Submit\"\n icon={IconName.Forward}\n extended={!hasReset}\n disabled={!valid}\n />\n </div>\n </FormContext.Provider>\n </form>\n );\n};\n\nexport default Form;\n","import type { GridColumn, GridItem, GridRowValue, RenderDataItemCallback } from '@models';\nimport type { ReactElement } from 'react';\n\nexport function getGridRowValues({\n item,\n columns,\n renderDataItem,\n}: {\n item: GridItem;\n columns: GridColumn[];\n renderDataItem?: RenderDataItemCallback;\n}): GridRowValue[] {\n const result: GridRowValue[] = [];\n for (const column of columns) {\n let value: string | ReactElement;\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 result.push({ field: column.field, value });\n }\n\n return result;\n}\n","import type { 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 type { 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> = ({\n name,\n label,\n disabled,\n required = false,\n onChange,\n checked = false,\n ...props\n}) => {\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 type { 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> = ({\n rowId,\n isRowSelected,\n selectRowById,\n deselectRowById,\n disabled,\n}) => {\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\n label=\"Select row\"\n onChange={handleSelectById}\n id={`select_row_${rowId}`}\n checked={isRowSelected}\n disabled={disabled}\n />\n </td>\n );\n};\n","import type { GridRowValue } from '@models';\nimport { getClassName } from '@utils';\nimport type { FC } 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: GridRowValue[];\n disabled?: boolean;\n};\n\nexport const GridRow: FC<Props> = ({\n rowId,\n selectRowById,\n deselectRowById,\n selectable,\n values,\n selectedIds,\n disabled,\n}) => {\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((rowValue) => {\n const valueKey = `cell-${rowId}-${rowValue.field}`;\n return <GridDataCell key={valueKey} value={rowValue.value} />;\n })}\n </tr>\n );\n};\n","import type { GridColumn, GridItem, RenderDataItemCallback } from '@models';\nimport { getGridRowValues } from '@organisms/grid/Grid.helpers';\nimport type { 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> = ({\n selectRowById,\n deselectRowById,\n renderDataItem,\n selectedIds,\n selectable,\n data,\n columns,\n}) => {\n return (\n <tbody className={styles.body}>\n {data.map((item) => {\n const gridRowValues = 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={gridRowValues}\n selectedIds={selectedIds}\n />\n );\n })}\n </tbody>\n );\n};\n","import type { GridColumn } from '@models';\nimport { getClassName } from '@utils';\nimport type { FC } from 'react';\n\nimport styles from './GridColumnGroup.module.scss';\n\nexport const GridColumnGroup: FC<{ columns: GridColumn[]; selectable: boolean }> = ({\n columns,\n selectable,\n}) => {\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 type { GridItem } from '@models';\nimport { useState } from 'react';\n\nexport const useGridController = ({\n data,\n id,\n onSelect,\n}: {\n data: GridItem[];\n id?: string;\n onSelect?: (ids: string[]) => void;\n}) => {\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 type { FC } from 'react';\n\nimport styles from './HeaderCell.module.scss';\n\nexport const GridHeaderCell: FC<{ title?: string; component?: React.ReactElement }> = ({\n title,\n component,\n}) => {\n return <th className={styles.headerCell}>{component ?? title ?? ''}</th>;\n};\n","import type { 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> = ({\n gridId,\n isAllSelected,\n selectAll,\n deselectAll,\n disabled,\n}) => {\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 type { GridColumn } from '@models';\nimport type { 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\n key={`${column.title}_${gridId}`}\n title={column.title}\n component={column.component}\n />\n ))}\n </tr>\n </thead>\n );\n};\n","import type { GridProps } from '@models';\nimport { getClassName } from '@utils';\nimport type { 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> = ({\n columns,\n data,\n id,\n onSelect,\n renderDataItem,\n caption,\n selectable = false,\n className,\n ...rest\n}) => {\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 type { MenuItem } from '@models';\nimport type { 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 const handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n e.stopPropagation();\n if (e.key === 'Enter') {\n onClick?.();\n }\n };\n\n return (\n <li\n className={styles.menuLeaf}\n tabIndex={0}\n role=\"menuitem\"\n onFocus={onFocus}\n onClick={onClick}\n onKeyDown={handleKeyDown}\n onMouseOver={onHover}\n >\n <Icon name={icon} hidden />\n {leafContent}\n </li>\n );\n};\n","import { Icon } from '@atoms';\nimport { IconName, OrientationMode } from '@enums';\nimport { useClickOutside } from '@hooks';\nimport type { MenuItem } from '@models';\nimport { type FC, type KeyboardEvent, type 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> = ({\n item,\n isSubMenuOpened,\n toggleSubMenu,\n closeSubMenu,\n openSubMenu,\n openedOn,\n mode,\n children,\n}) => {\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\n className={styles.text}\n ref={dependentRef}\n onClick={toggleSubMenu}\n onKeyDown={handleKeyDown}\n >\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 type { MenuItem } from '@models';\nimport { getClassName } from '@utils';\nimport { type FC, type 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([\n styles.subMenuBar,\n { [styles.subMenuBar__horizontal]: mode === OrientationMode.Horizontal },\n ]);\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) => (\n <MenuListItem item={child} key={child.id} mode={mode} openedOn={openedOn} />\n ))}\n </ul>\n </SubMenu>\n );\n};\n","import { OrientationMode } from '@enums';\nimport type { MenuProps } from '@models';\nimport { getClassName } from '@utils';\nimport type { FC } from 'react';\n\nimport { MenuListItem } from './list-item/MenuListItem';\nimport styles from './Menu.module.scss';\n\nconst Menu: FC<MenuProps> = ({\n items = [],\n mode = OrientationMode.Vertical,\n openedOn = 'click',\n className,\n ...rest\n}) => {\n const menuClass = getClassName([\n styles.menuBar,\n className,\n { [styles.menuBar__vertical]: mode === OrientationMode.Vertical },\n ]);\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 type { ChopLogicTabItem } from '@models';\nimport type { 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\n role=\"tabpanel\"\n data-testid=\"tab-content\"\n aria-labelledby={selectedTabId}\n id={contentId}\n className={styles.tabContent}\n >\n {isExtendedTab ? extendedTabContent : content}\n </div>\n );\n};\n","import { Button } from '@atoms';\nimport { ButtonView, IconName } from '@enums';\nimport { type 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\n view={ButtonView.Icon}\n icon={IconName.CheckMark}\n onClick={onSave}\n label=\"Save tab title\"\n />\n <Button\n view={ButtonView.Icon}\n icon={IconName.Cancel}\n onClick={onCancel}\n label=\"Cancel tab title change\"\n id={cancelButtonId}\n />\n </span>\n </div>\n );\n};\n","import { Button } from '@atoms';\nimport { ButtonView, IconName, OrientationMode } from '@enums';\nimport { getClassName } from '@utils';\nimport { type 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\n view={ButtonView.Icon}\n icon={IconName.Edit}\n onClick={toggleEditMode}\n label=\"Edit tab\"\n tooltip=\"Edit tab\"\n />\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 type { ChopLogicTabItem } from '@models';\nimport { getClassName, moveFocusOnElementById } from '@utils';\nimport type { FC, KeyboardEvent } 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 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}) => {\n const listClass = getClassName([\n styles.tabList,\n { [styles.tabList__vertical]: mode === OrientationMode.Vertical },\n ]);\n\n const handleListKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n const currentFocusedTabIndex = tabIds.indexOf(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 (\n (e.key === 'ArrowUp' && mode === OrientationMode.Horizontal) ||\n (e.key === 'ArrowLeft' && mode === OrientationMode.Vertical)\n ) {\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 return (\n <div role=\"tablist\" data-testid=\"tab-list\" 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={\n onTabTitleChange ? (newTitle) => onTabTitleChange(id, newTitle) : undefined\n }\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 type { ChopLogicTabItem, TabsProps } from '@models';\nimport { getClassName } from '@utils';\nimport { type 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([\n styles.tabs,\n className,\n { [styles.tabs__vertical]: mode === OrientationMode.Vertical },\n ]);\n\n const handleTabSelect = (id: string) => {\n setSelectedTabId(id);\n onTabSelect?.(id);\n };\n\n const handleTabTitleChange = (tabId: string, newTitle: string) => {\n setTabs((prevTabs) =>\n prevTabs.map((tab) => (tab.id === tabId ? { ...tab, title: newTitle } : tab)),\n );\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 handleTabSelect(newTabId);\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 onTabDelete={handleTabDelete}\n />\n <TabContent\n tabs={tabs}\n selectedTabId={selectedTabId}\n extendedTabContent={extendedTabContent}\n extendable={extendable}\n />\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","owner","debugStack","debugTask","refProp","jsxDEVImpl","isStaticChildren","children","isArrayImpl","validateChildKeys","keys","k","didWarnAboutKeySpread","node","isValidElement","object","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","option","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","ChopLogicIcon","ClearIcon","CopyIcon","CutIcon","DeleteIcon","DocumentsIcon","DownloadIcon","EditIcon","EmailIcon","ErrorIcon","ForwardIcon","GraduateIcon","HelpIcon","HideIcon","HomeIcon","InfoIcon","LoginIcon","PasteIcon","PhoneIcon","PlusCircleIcon","ProjectsIcon","QuestionIcon","RemoveIcon","SaveIcon","SearchIcon","SettingsIcon","ShowIcon","UploadIcon","WarningIcon","IconDictionary","hidden","iconClass","Input","forwardRef","Label","required","inputId","iconPosition","isTextHidden","isLeftIconVisible","isRightIconVisible","Link","href","external","target","linkClass","isExternal","linkTarget","iconElement","isLeftIcon","isRightIcon","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","timeoutId","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","useTooltipPosition","wrapperRef","tooltipRef","spacing","position","setPosition","tooltipWidth","tooltipHeight","updatePosition","rect","top","left","resizeObserver","getWindowDimensions","width","height","useWindowDimensions","windowDimensions","setWindowDimensions","handleResize","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","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","Search","onSearch","onClear","maxLength","minLength","searchMode","clearable","spellCheck","autoComplete","debounceDelay","searchValue","setSearchValue","isSearchButtonVisible","isLabelIconVisible","isClearButtonVisible","isSearchValueValid","debouncedSearchValue","handleClear","handleSearchClick","SelectCombobox","SelectOption","handleOptionSelect","SelectDropdown","getSelectInitialValue","valueId","useSelectController","setSelected","Select","selectClass","validateTextInputValue","getTextInputInitialValue","useTextInputController","passwordShown","setPasswordShown","togglePassword","TextInput","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","baseClass","columnsClass","formClass","buttonColumnsClass","buttonsClass","contextValue","getGridRowValues","renderDataItem","result","column","GridDataCell","GridCheckbox","SelectGridRowCell","rowId","isRowSelected","selectRowById","deselectRowById","handleSelectById","GridRow","selectable","rowValue","valueKey","GridBody","gridRowValues","GridColumnGroup","index","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","listClass","handleListKeyDown","currentFocusedTabIndex","newIndex","getPreviousIndex","getNextIndex","newTabId","currentIndex","totalTabs","newTitle","Tabs","initialTabs","defaultTabId","extendedTabLabel","setTabs","initialTabsCount","tabCounter","setTabCounter","defaultId","setSelectedTabId","tabsClass","handleTabSelect","handleTabTitleChange","prevTabs","tab","handleTabAdd","newTabTitle","newTab","prev","handleTabDelete","newSelectedTabId","Input$1"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|