chop-logic-components 2.2.0 → 2.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.
Files changed (250) hide show
  1. package/README.md +2 -2
  2. package/dist/{components/containers/grid/elements/Body.d.ts → atoms/grid/body/GridBody.d.ts} +4 -4
  3. package/dist/atoms/grid/checkbox/GridCheckbox.d.ts +6 -0
  4. package/dist/atoms/grid/column-group/GridColumnGroup.d.ts +6 -0
  5. package/dist/{components/containers/grid/elements/DataCell.d.ts → atoms/grid/data-cell/GridDataCell.d.ts} +1 -2
  6. package/dist/{components/containers/grid/elements/Row.d.ts → atoms/grid/grid-row/GridRow.d.ts} +3 -3
  7. package/dist/{components/containers/grid/elements/Head.d.ts → atoms/grid/head/GridHead.d.ts} +3 -3
  8. package/dist/{components/containers/grid/elements → atoms/grid/header-cell}/HeaderCell.d.ts +1 -2
  9. package/dist/{components/containers/grid/elements/SelectAllRowsCell.d.ts → atoms/grid/select-all-grid-rows-cell/SelectAllGridRowsCell.d.ts} +3 -3
  10. package/dist/{components/containers/grid/elements/SelectRowCell.d.ts → atoms/grid/select-grid-row-cell/SelectGridRowCell.d.ts} +3 -3
  11. package/dist/atoms/header/Header.d.ts +4 -0
  12. package/dist/atoms/header/__docs__/Header.stories.d.ts +6 -0
  13. package/dist/atoms/icon/__docs__/Icon.stories.d.ts +6 -0
  14. package/dist/atoms/index.d.ts +22 -0
  15. package/dist/atoms/input/error-message/ErrorMessage.d.ts +10 -0
  16. package/dist/atoms/input/icon-button/IconButton.d.ts +4 -0
  17. package/dist/atoms/input/inner-button/InnerButton.d.ts +9 -0
  18. package/dist/atoms/input/input/Input.d.ts +4 -0
  19. package/dist/atoms/input/label/Label.d.ts +11 -0
  20. package/dist/{components/inputs/multi-select/elements → atoms/input/multi-select}/Combobox.d.ts +4 -4
  21. package/dist/atoms/input/multi-select/Dropdown.d.ts +11 -0
  22. package/dist/atoms/input/multi-select/Option.d.ts +8 -0
  23. package/dist/atoms/input/primary-button/PrimaryButton.d.ts +4 -0
  24. package/dist/atoms/input/secondary-button/SecondaryButton.d.ts +4 -0
  25. package/dist/{components/inputs/select/elements → atoms/input/select/combobox}/Combobox.d.ts +3 -3
  26. package/dist/{components/inputs/select/elements → atoms/input/select/dropdown}/Dropdown.d.ts +3 -3
  27. package/dist/{components/inputs/select/elements → atoms/input/select/option}/Option.d.ts +3 -3
  28. package/dist/{elements → atoms}/loader/__docs__/Loader.example.d.ts +1 -2
  29. package/dist/atoms/loader/__docs__/Loader.stories.d.ts +6 -0
  30. package/dist/atoms/menu/item/MenuItem.d.ts +10 -0
  31. package/dist/atoms/menu/leaf/MenuLeaf.d.ts +5 -0
  32. package/dist/atoms/menu/sub-menu/SubMenu.d.ts +14 -0
  33. package/dist/atoms/portal/__docs__/Portal.example.d.ts +2 -0
  34. package/dist/{components/containers → atoms}/portal/__docs__/Portal.stories.d.ts +2 -2
  35. package/dist/{components/containers/tabs/elements → atoms/tabs/button}/TabButton.d.ts +4 -4
  36. package/dist/atoms/tabs/content/TabContent.d.ts +6 -0
  37. package/dist/{components/containers/tabs/elements → atoms/tabs/list}/TabList.d.ts +4 -4
  38. package/dist/{components/modals/tooltip/controller.d.ts → atoms/tooltip/Tooltip.controller.d.ts} +6 -2
  39. package/dist/{components/modals → atoms}/tooltip/Tooltip.d.ts +1 -1
  40. package/dist/atoms/tooltip/__docs__/Tooltip.example.d.ts +3 -0
  41. package/dist/atoms/tooltip/__docs__/Tooltip.stories.d.ts +9 -0
  42. package/dist/chop-logic-components.css +1 -1
  43. package/dist/enums/chop-logic-button-view.d.ts +3 -2
  44. package/dist/hocs/index.d.ts +1 -1
  45. package/dist/hooks/index.d.ts +12 -10
  46. package/dist/hooks/use-auto-close/__docs__/use-auto-close.example.d.ts +2 -0
  47. package/dist/hooks/use-auto-close/__docs__/use-auto-close.stories.d.ts +6 -0
  48. package/dist/hooks/use-auto-close/use-auto-close.d.ts +6 -0
  49. package/dist/hooks/use-click-outside/__docs__/use-click-outside.example.d.ts +1 -0
  50. package/dist/hooks/use-click-outside/__docs__/{useClickOutside.stories.d.ts → use-click-outside.stories.d.ts} +2 -2
  51. package/dist/hooks/use-container-dimensions/__docs__/use-container-dimensions.example.d.ts +1 -0
  52. package/dist/hooks/use-container-dimensions/__docs__/{useContainerDimensions.stories.d.ts → use-container-dimensions.stories.d.ts} +2 -2
  53. package/dist/hooks/use-container-dimensions/{index.d.ts → use-container-dimensions.d.ts} +1 -1
  54. package/dist/hooks/use-is-mounted/__docs__/use-is-mounted.example.d.ts +1 -0
  55. package/dist/hooks/use-is-mounted/__docs__/use-is-mounted.stories.d.ts +6 -0
  56. package/dist/hooks/use-is-mounted/use-is-mounted.d.ts +1 -0
  57. package/dist/hooks/use-is-overflow/__docs__/use-is-overflow.example.d.ts +4 -0
  58. package/dist/hooks/use-is-overflow/__docs__/use-is-overflow.stories.d.ts +6 -0
  59. package/dist/hooks/use-is-overflow/use-is-overflow.d.ts +2 -0
  60. package/dist/hooks/use-key-press/__docs__/use-key-press.example.d.ts +1 -0
  61. package/dist/hooks/use-key-press/__docs__/{useKeyPress.stories.d.ts → use-key-press.stories.d.ts} +2 -2
  62. package/dist/hooks/use-modal-focus-trap/__docs__/use-modal-focus-trap.example.d.ts +1 -0
  63. package/dist/hooks/use-modal-focus-trap/__docs__/{useModalFocusTrap.stories.d.ts → use-modal-focus-trap.stories.d.ts} +2 -2
  64. package/dist/hooks/use-tooltip-position/__docs__/use-tooltip-position.example.d.ts +1 -0
  65. package/dist/hooks/use-tooltip-position/__docs__/{useTooltipPosition.stories.d.ts → use-tooltip-position.stories.d.ts} +2 -2
  66. package/dist/hooks/use-window-dimensions/__docs__/use-window-dimensions.example.d.ts +1 -0
  67. package/dist/hooks/use-window-dimensions/__docs__/{useWindowDimensions.stories.d.ts → use-window-dimensions.stories.d.ts} +2 -2
  68. package/dist/hooks/use-window-dimensions/use-window-dimensions.d.ts +2 -0
  69. package/dist/index.cjs.js +4 -4
  70. package/dist/index.cjs.js.map +1 -1
  71. package/dist/index.d.ts +3 -2
  72. package/dist/index.es.js +1638 -1511
  73. package/dist/index.es.js.map +1 -1
  74. package/dist/models/{common.d.ts → _common.d.ts} +4 -0
  75. package/dist/models/{components/alert.d.ts → alert.d.ts} +4 -2
  76. package/dist/models/{components/button.d.ts → button.d.ts} +2 -2
  77. package/dist/models/{components/checkbox.d.ts → checkbox.d.ts} +1 -1
  78. package/dist/models/{components/dialog.d.ts → dialog.d.ts} +3 -1
  79. package/dist/models/{components/form.d.ts → form.d.ts} +1 -1
  80. package/dist/models/{components/grid.d.ts → grid.d.ts} +1 -1
  81. package/dist/models/header.d.ts +9 -0
  82. package/dist/models/{components/icon.d.ts → icon.d.ts} +4 -4
  83. package/dist/models/index.d.ts +17 -16
  84. package/dist/models/loader.d.ts +6 -0
  85. package/dist/models/{components/menu.d.ts → menu.d.ts} +3 -2
  86. package/dist/models/{components/multi-select.d.ts → multi-select.d.ts} +1 -1
  87. package/dist/models/{components/numeric.d.ts → numeric.d.ts} +1 -1
  88. package/dist/models/{components/select.d.ts → select.d.ts} +1 -1
  89. package/dist/models/{components/tabs.d.ts → tabs.d.ts} +2 -2
  90. package/dist/models/{components/text.d.ts → text.d.ts} +1 -1
  91. package/dist/models/{components/tooltip.d.ts → tooltip.d.ts} +4 -2
  92. package/dist/molecules/index.d.ts +6 -0
  93. package/dist/{components → molecules}/inputs/button/Button.d.ts +2 -2
  94. package/dist/{components → molecules}/inputs/button/__docs__/Button.example.d.ts +1 -2
  95. package/dist/molecules/inputs/button/__docs__/Button.stories.d.ts +9 -0
  96. package/dist/{components → molecules}/inputs/checkbox/__docs__/Checkbox.example.d.ts +1 -2
  97. package/dist/{components → molecules}/inputs/checkbox/__docs__/Checkbox.stories.d.ts +2 -2
  98. package/dist/{components → molecules}/inputs/multi-select/__docs__/MultiSelect.example.d.ts +1 -2
  99. package/dist/{components → molecules}/inputs/multi-select/__docs__/MultiSelect.stories.d.ts +2 -2
  100. package/dist/{components → molecules}/inputs/numeric/__docs__/NumericInput.example.d.ts +1 -2
  101. package/dist/{components → molecules}/inputs/numeric/__docs__/NumericInput.stories.d.ts +2 -2
  102. package/dist/{components → molecules}/inputs/select/__docs__/Select.example.d.ts +1 -2
  103. package/dist/molecules/inputs/select/__docs__/Select.stories.d.ts +6 -0
  104. package/dist/{components → molecules}/inputs/text/__docs__/TextInput.example.d.ts +1 -2
  105. package/dist/{components → molecules}/inputs/text/__docs__/TextInput.stories.d.ts +2 -2
  106. package/dist/{components/modals → organisms}/alert/Alert.d.ts +1 -1
  107. package/dist/organisms/alert/Alert.helpers.d.ts +3 -0
  108. package/dist/organisms/alert/__docs__/Alert.example.d.ts +3 -0
  109. package/dist/organisms/alert/__docs__/Alert.stories.d.ts +6 -0
  110. package/dist/{components/modals → organisms}/dialog/Dialog.d.ts +1 -1
  111. package/dist/{components/modals → organisms}/dialog/__docs__/Dialog.example.d.ts +1 -1
  112. package/dist/{components/modals → organisms}/dialog/__docs__/Dialog.stories.d.ts +2 -2
  113. package/dist/{components/containers/form/controller.d.ts → organisms/form/Form.controller.d.ts} +1 -1
  114. package/dist/{components/containers → organisms}/form/Form.d.ts +1 -1
  115. package/dist/{components/containers/form/helpers.d.ts → organisms/form/Form.helpers.d.ts} +1 -1
  116. package/dist/organisms/form/Form.helpers.test.d.ts +1 -0
  117. package/dist/organisms/form/__docs__/Form.example.d.ts +3 -0
  118. package/dist/{components/containers → organisms}/form/__docs__/Form.stories.d.ts +2 -2
  119. package/dist/organisms/form/__tests__/Form.test.d.ts +1 -0
  120. package/dist/{components/containers/grid/controller.d.ts → organisms/grid/Grid.controller.d.ts} +1 -1
  121. package/dist/{components/containers → organisms}/grid/Grid.d.ts +1 -1
  122. package/dist/{components/containers/grid/helpers.d.ts → organisms/grid/Grid.helpers.d.ts} +1 -1
  123. package/dist/organisms/grid/__docs__/Grid.example.d.ts +3 -0
  124. package/dist/{components/containers → organisms}/grid/__docs__/Grid.stories.d.ts +2 -2
  125. package/dist/organisms/grid/__tests__/Grid.test.d.ts +1 -0
  126. package/dist/organisms/grid/__tests__/helpers.test.d.ts +1 -0
  127. package/dist/organisms/index.d.ts +6 -0
  128. package/dist/{components/containers → organisms}/menu/Menu.d.ts +1 -1
  129. package/dist/organisms/menu/Menu.test.d.ts +1 -0
  130. package/dist/{components/containers → organisms}/menu/__docs__/Menu.example.d.ts +1 -1
  131. package/dist/organisms/menu/__docs__/Menu.stories.d.ts +8 -0
  132. package/dist/{components/containers → organisms}/tabs/Tabs.d.ts +1 -1
  133. package/dist/organisms/tabs/Tabs.test.d.ts +1 -0
  134. package/dist/organisms/tabs/__docs__/Tabs.example.d.ts +3 -0
  135. package/dist/organisms/tabs/__docs__/Tabs.stories.d.ts +7 -0
  136. package/package.json +11 -13
  137. package/dist/components/containers/form/__docs__/Form.example.d.ts +0 -4
  138. package/dist/components/containers/grid/__docs__/Grid.example.d.ts +0 -4
  139. package/dist/components/containers/grid/elements/Checkbox.d.ts +0 -6
  140. package/dist/components/containers/grid/elements/ColumnGroup.d.ts +0 -7
  141. package/dist/components/containers/menu/__docs__/Menu.stories.d.ts +0 -7
  142. package/dist/components/containers/menu/elements/MenuItem.d.ts +0 -9
  143. package/dist/components/containers/menu/elements/MenuLeaf.d.ts +0 -6
  144. package/dist/components/containers/menu/elements/SubMenu.d.ts +0 -12
  145. package/dist/components/containers/portal/__docs__/Portal.example.d.ts +0 -3
  146. package/dist/components/containers/tabs/__docs__/Tabs.example.d.ts +0 -4
  147. package/dist/components/containers/tabs/__docs__/Tabs.stories.d.ts +0 -7
  148. package/dist/components/containers/tabs/elements/TabContent.d.ts +0 -7
  149. package/dist/components/index.d.ts +0 -14
  150. package/dist/components/inputs/button/__docs__/Button.stories.d.ts +0 -9
  151. package/dist/components/inputs/multi-select/elements/Dropdown.d.ts +0 -11
  152. package/dist/components/inputs/multi-select/elements/Option.d.ts +0 -8
  153. package/dist/components/inputs/select/__docs__/Select.stories.d.ts +0 -6
  154. package/dist/components/modals/alert/__docs__/Alert.example.d.ts +0 -4
  155. package/dist/components/modals/alert/__docs__/Alert.stories.d.ts +0 -8
  156. package/dist/components/modals/alert/elements/AlertHeader.d.ts +0 -10
  157. package/dist/components/modals/alert/helpers.d.ts +0 -4
  158. package/dist/components/modals/dialog/elements/Header/index.d.ts +0 -6
  159. package/dist/components/modals/dialog/elements/Layout/index.d.ts +0 -8
  160. package/dist/components/modals/tooltip/__docs__/Tooltip.example.d.ts +0 -4
  161. package/dist/components/modals/tooltip/__docs__/Tooltip.stories.d.ts +0 -9
  162. package/dist/elements/error-message/ErrorMessage.d.ts +0 -10
  163. package/dist/elements/icon/__docs__/Icon.example.d.ts +0 -4
  164. package/dist/elements/icon/__docs__/Icon.stories.d.ts +0 -6
  165. package/dist/elements/index.d.ts +0 -4
  166. package/dist/elements/input-inner-button/InputInnerButton.d.ts +0 -10
  167. package/dist/elements/label/Label.d.ts +0 -12
  168. package/dist/elements/loader/__docs__/Loader.stories.d.ts +0 -6
  169. package/dist/hooks/use-click-outside/__docs__/useClickOutside.example.d.ts +0 -2
  170. package/dist/hooks/use-container-dimensions/__docs__/useContainerDimensions.example.d.ts +0 -2
  171. package/dist/hooks/use-key-press/__docs__/useKeyPress.example.d.ts +0 -2
  172. package/dist/hooks/use-modal-focus-trap/__docs__/useModalFocusTrap.example.d.ts +0 -2
  173. package/dist/hooks/use-mount/__docs__/useMount.example.d.ts +0 -2
  174. package/dist/hooks/use-mount/__docs__/useMount.stories.d.ts +0 -6
  175. package/dist/hooks/use-mount/index.d.ts +0 -1
  176. package/dist/hooks/use-tooltip-position/__docs__/useTooltipPosition.example.d.ts +0 -2
  177. package/dist/hooks/use-window-dimensions/__docs__/useWindowDimensions.example.d.ts +0 -2
  178. package/dist/hooks/use-window-dimensions/index.d.ts +0 -5
  179. package/dist/models/components/loader.d.ts +0 -5
  180. /package/dist/{components/__tests__/index.test.d.ts → atoms/grid/body/GridBody.test.d.ts} +0 -0
  181. /package/dist/{components/containers/form/__tests__/Form.test.d.ts → atoms/grid/column-group/GridColumnGroup.test.d.ts} +0 -0
  182. /package/dist/{components/containers/form/__tests__/helpers.test.d.ts → atoms/grid/grid-row/GridRow.test.d.ts} +0 -0
  183. /package/dist/{components/containers/grid/__tests__/Body.test.d.ts → atoms/grid/head/GridHead.test.d.ts} +0 -0
  184. /package/dist/{components/containers/grid/__tests__/ColumnGroup.test.d.ts → atoms/grid/select-all-grid-rows-cell/SelectAllGridRowsCell.test.d.ts} +0 -0
  185. /package/dist/{components/containers/grid/__tests__/Grid.test.d.ts → atoms/grid/select-grid-row-cell/SelectGridRowCell.test.d.ts} +0 -0
  186. /package/dist/{components/containers/grid/__tests__/Head.test.d.ts → atoms/header/Header.test.d.ts} +0 -0
  187. /package/dist/{elements → atoms}/icon/Icon.d.ts +0 -0
  188. /package/dist/{elements/icon/__tests__ → atoms/icon}/Icon.test.d.ts +0 -0
  189. /package/dist/{elements/error-message/__tests__ → atoms/input/error-message}/ErrorMessage.test.d.ts +0 -0
  190. /package/dist/{components/containers/grid/__tests__/Row.test.d.ts → atoms/input/icon-button/IconButton.test.d.ts} +0 -0
  191. /package/dist/{components/containers/grid/__tests__/SelectAllRowsCell.test.d.ts → atoms/input/inner-button/InnerButton.test.d.ts} +0 -0
  192. /package/dist/{elements/label/__tests__ → atoms/input/label}/Label.test.d.ts +0 -0
  193. /package/dist/{components/containers/grid/__tests__/SelectRowCell.test.d.ts → atoms/input/primary-button/PrimaryButton.test.d.ts} +0 -0
  194. /package/dist/{components/containers/grid/__tests__/helpers.test.d.ts → atoms/input/secondary-button/SecondaryButton.test.d.ts} +0 -0
  195. /package/dist/{elements → atoms}/loader/Loader.d.ts +0 -0
  196. /package/dist/{elements/loader/__tests__ → atoms/loader}/Loader.test.d.ts +0 -0
  197. /package/dist/{components/containers/menu/__tests__ → atoms/menu/item}/MenuItem.test.d.ts +0 -0
  198. /package/dist/{components/containers/menu/__tests__ → atoms/menu/leaf}/MenuLeaf.test.d.ts +0 -0
  199. /package/dist/{components/containers/menu/__tests__ → atoms/menu/sub-menu}/SubMenu.test.d.ts +0 -0
  200. /package/dist/{components/containers → atoms}/portal/Portal.d.ts +0 -0
  201. /package/dist/{components/containers/portal/__tests__ → atoms/portal}/Portal.test.d.ts +0 -0
  202. /package/dist/{components/containers/menu/__tests__/Menu.test.d.ts → atoms/tabs/button/TabButton.test.d.ts} +0 -0
  203. /package/dist/{components/containers/tabs/__tests__/TabList.test.d.ts → atoms/tabs/content/TabContent.test.d.ts} +0 -0
  204. /package/dist/{components/containers/tabs/__tests__/Tabs.test.d.ts → atoms/tabs/list/TabList.test.d.ts} +0 -0
  205. /package/dist/{components/modals/tooltip/__tests__ → atoms/tooltip}/Tooltip.test.d.ts +0 -0
  206. /package/dist/hocs/with-tooltip/{index.d.ts → with-tooltip.d.ts} +0 -0
  207. /package/dist/hocs/with-tooltip/{__tests__/with-tooltip.test.d.ts → with-tooltip.test.d.ts} +0 -0
  208. /package/dist/{components/inputs/button/__tests__/Button.test.d.ts → hooks/use-auto-close/use-auto-close.test.d.ts} +0 -0
  209. /package/dist/hooks/use-chop-logic-theme/{index.d.ts → use-chop-logic-theme.d.ts} +0 -0
  210. /package/dist/hooks/use-click-outside/{index.d.ts → use-click-outside.d.ts} +0 -0
  211. /package/dist/hooks/use-click-outside/{__tests__/use-click-outside.test.d.ts → use-click-outside.test.d.ts} +0 -0
  212. /package/dist/hooks/use-element-ids/{index.d.ts → use-element-ids.d.ts} +0 -0
  213. /package/dist/hooks/use-element-ids/{__tests__/use-element-ids.test.d.ts → use-element-ids.test.d.ts} +0 -0
  214. /package/dist/{components/inputs/checkbox/__tests__/Checkbox.test.d.ts → hooks/use-is-mounted/use-is-mounted.test.d.ts} +0 -0
  215. /package/dist/{components/inputs/multi-select/__tests__/MultiSelect.test.d.ts → hooks/use-is-overflow/use-is-overflow.test.d.ts} +0 -0
  216. /package/dist/hooks/use-key-press/{index.d.ts → use-key-press.d.ts} +0 -0
  217. /package/dist/hooks/use-key-press/{__tests__/use-key-press.test.d.ts → use-key-press.test.d.ts} +0 -0
  218. /package/dist/hooks/use-modal-focus-trap/{index.d.ts → use-modal-focus-trap.d.ts} +0 -0
  219. /package/dist/hooks/use-modal-focus-trap/{__tests__/use-modal-focus-trap.test.d.ts → use-modal-focus-trap.test.d.ts} +0 -0
  220. /package/dist/hooks/use-reset-form-input/{index.d.ts → use-reset-form-input.d.ts} +0 -0
  221. /package/dist/hooks/use-tooltip-position/{index.d.ts → use-tooltip-position.d.ts} +0 -0
  222. /package/dist/hooks/use-tooltip-position/{__tests__/use-tooltip-position.test.d.ts → use-tooltip-position.test.d.ts} +0 -0
  223. /package/dist/hooks/use-window-dimensions/{__tests__/use-window-dimensions.test.d.ts → use-window-dimensions.test.d.ts} +0 -0
  224. /package/dist/{components/inputs/multi-select/__tests__/helpers.test.d.ts → molecules/inputs/button/Button.test.d.ts} +0 -0
  225. /package/dist/{components/inputs/checkbox/controller.d.ts → molecules/inputs/checkbox/Checkbox.controller.d.ts} +0 -0
  226. /package/dist/{components → molecules}/inputs/checkbox/Checkbox.d.ts +0 -0
  227. /package/dist/{components/inputs/checkbox/helpers.d.ts → molecules/inputs/checkbox/Checkbox.helpers.d.ts} +0 -0
  228. /package/dist/{components/inputs/numeric/__tests__/NumericInput.test.d.ts → molecules/inputs/checkbox/__tests__/Checkbox.test.d.ts} +0 -0
  229. /package/dist/{components → molecules}/inputs/multi-select/MultiSelect.d.ts +0 -0
  230. /package/dist/{components/inputs/multi-select/controller.d.ts → molecules/inputs/multi-select/Multiselect.controller.d.ts} +0 -0
  231. /package/dist/{components/inputs/multi-select/helpers.d.ts → molecules/inputs/multi-select/Multiselect.helpers.d.ts} +0 -0
  232. /package/dist/{components/inputs/numeric/__tests__/helpers.test.d.ts → molecules/inputs/multi-select/__tests__/MultiSelect.test.d.ts} +0 -0
  233. /package/dist/{components/inputs/select → molecules/inputs/multi-select}/__tests__/helpers.test.d.ts +0 -0
  234. /package/dist/{components/inputs/numeric/controller.d.ts → molecules/inputs/numeric/NumericInput.controller.d.ts} +0 -0
  235. /package/dist/{components → molecules}/inputs/numeric/NumericInput.d.ts +0 -0
  236. /package/dist/{components/inputs/numeric/helpers.d.ts → molecules/inputs/numeric/NumericInput.helpers.d.ts} +0 -0
  237. /package/dist/{components/inputs/select/__tests__/Select.test.d.ts → molecules/inputs/numeric/__tests__/NumericInput.test.d.ts} +0 -0
  238. /package/dist/{components/inputs/text → molecules/inputs/numeric}/__tests__/helpers.test.d.ts +0 -0
  239. /package/dist/{components/inputs/select/controller.d.ts → molecules/inputs/select/Select.controller.d.ts} +0 -0
  240. /package/dist/{components → molecules}/inputs/select/Select.d.ts +0 -0
  241. /package/dist/{components/inputs/select/helpers.d.ts → molecules/inputs/select/Select.helpers.d.ts} +0 -0
  242. /package/dist/{components/inputs/text/__tests__/TextInput.test.d.ts → molecules/inputs/select/__tests__/Select.test.d.ts} +0 -0
  243. /package/dist/{components/modals/alert → molecules/inputs/select}/__tests__/helpers.test.d.ts +0 -0
  244. /package/dist/{components/inputs/text/controller.d.ts → molecules/inputs/text/TextInput.controller.d.ts} +0 -0
  245. /package/dist/{components → molecules}/inputs/text/TextInput.d.ts +0 -0
  246. /package/dist/{components/inputs/text/helpers.d.ts → molecules/inputs/text/TextInput.helpers.d.ts} +0 -0
  247. /package/dist/{components/modals/alert/__tests__/Alert.test.d.ts → molecules/inputs/text/__tests__/TextInput.test.d.ts} +0 -0
  248. /package/dist/{components/modals/dialog/__tests__/Dialog.test.d.ts → molecules/inputs/text/__tests__/helpers.test.d.ts} +0 -0
  249. /package/dist/{elements/input-inner-button/__tests__/InputInnerButton.test.d.ts → organisms/alert/Alert.test.d.ts} +0 -0
  250. /package/dist/{hooks/use-mount/__tests__/use-mount.test.d.ts → organisms/dialog/Dialog.test.d.ts} +0 -0
@@ -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/utils/get-class-name.ts","../src/elements/error-message/ErrorMessage.tsx","../src/assets/icons/svg/ArrowDownIcon.tsx","../src/assets/icons/svg/ArrowUpIcon.tsx","../src/assets/icons/svg/BackIcon.tsx","../src/assets/icons/svg/CancelIcon.tsx","../src/assets/icons/svg/CheckboxCheckedIcon.tsx","../src/assets/icons/svg/CheckboxUncheckedIcon.tsx","../src/assets/icons/svg/CheckMarkIcon.tsx","../src/assets/icons/svg/ChevronDownIcon.tsx","../src/assets/icons/svg/ChevronLeftIcon.tsx","../src/assets/icons/svg/ChevronRightIcon.tsx","../src/assets/icons/svg/ChevronUpIcon.tsx","../src/assets/icons/svg/ClearIcon.tsx","../src/assets/icons/svg/CopyIcon.tsx","../src/assets/icons/svg/CutIcon.tsx","../src/assets/icons/svg/DeleteIcon.tsx","../src/assets/icons/svg/DownloadIcon.tsx","../src/assets/icons/svg/ErrorIcon.tsx","../src/assets/icons/svg/ForwardIcon.tsx","../src/assets/icons/svg/GraduateIcon.tsx","../src/assets/icons/svg/HelpIcon.tsx","../src/assets/icons/svg/HideIcon.tsx","../src/assets/icons/svg/HomeIcon.tsx","../src/assets/icons/svg/InfoIcon.tsx","../src/assets/icons/svg/LoginIcon.tsx","../src/assets/icons/svg/PasteIcon.tsx","../src/assets/icons/svg/QuestionIcon.tsx","../src/assets/icons/svg/RemoveIcon.tsx","../src/assets/icons/svg/SaveIcon.tsx","../src/assets/icons/svg/ShowIcon.tsx","../src/assets/icons/svg/UploadIcon.tsx","../src/assets/icons/svg/WarningIcon.tsx","../src/enums/chop-logic-alert-mode.ts","../src/enums/chop-logic-button-view.ts","../src/enums/chop-logic-icon-name.ts","../src/enums/chop-logic-loader-view.ts","../src/enums/chop-logic-orientation-mode.ts","../src/enums/chop-logic-theme-mode.ts","../src/enums/chop-logic-tooltip-container.ts","../src/assets/icons/index.tsx","../src/elements/icon/Icon.tsx","../src/elements/input-inner-button/InputInnerButton.tsx","../src/elements/label/Label.tsx","../src/hocs/with-tooltip/index.tsx","../src/utils/move-focus-on-element-by-id.ts","../src/utils/handle-dropdown-list-key-press.ts","../src/components/inputs/button/Button.tsx","../src/hooks/use-click-outside/index.ts","../src/hooks/use-container-dimensions/index.ts","../src/hooks/use-element-ids/index.tsx","../src/hooks/use-key-press/index.ts","../src/hooks/use-modal-focus-trap/index.ts","../src/hooks/use-mount/index.ts","../src/contexts/form/context.tsx","../src/contexts/theme/context.ts","../src/contexts/theme/provider.tsx","../src/hooks/use-reset-form-input/index.ts","../src/hooks/use-window-dimensions/index.ts","../src/hooks/use-tooltip-position/index.ts","../src/hooks/use-chop-logic-theme/index.ts","../src/components/inputs/checkbox/helpers.ts","../src/components/inputs/checkbox/controller.ts","../src/components/inputs/checkbox/Checkbox.tsx","../src/components/inputs/multi-select/elements/Combobox.tsx","../src/components/inputs/multi-select/elements/Option.tsx","../src/components/inputs/multi-select/elements/Dropdown.tsx","../src/components/inputs/multi-select/helpers.ts","../src/components/inputs/multi-select/controller.ts","../src/components/inputs/multi-select/MultiSelect.tsx","../src/components/inputs/numeric/helpers.ts","../src/components/inputs/numeric/controller.ts","../src/components/inputs/numeric/NumericInput.tsx","../src/components/inputs/select/elements/Combobox.tsx","../src/components/inputs/select/elements/Option.tsx","../src/components/inputs/select/elements/Dropdown.tsx","../src/components/inputs/select/helpers.ts","../src/components/inputs/select/controller.ts","../src/components/inputs/select/Select.tsx","../src/components/inputs/text/helpers.ts","../src/components/inputs/text/controller.ts","../src/components/inputs/text/TextInput.tsx","../src/components/modals/dialog/elements/Header/index.tsx","../src/components/modals/dialog/elements/Layout/index.tsx","../src/components/modals/dialog/Dialog.tsx","../src/components/modals/tooltip/controller.ts","../src/components/modals/tooltip/Tooltip.tsx","../src/components/containers/form/helpers.ts","../src/components/containers/form/controller.ts","../src/components/containers/form/Form.tsx","../src/components/containers/grid/helpers.ts","../src/components/containers/grid/elements/DataCell.tsx","../src/components/containers/grid/elements/Checkbox.tsx","../src/components/containers/grid/elements/SelectRowCell.tsx","../src/components/containers/grid/elements/Row.tsx","../src/components/containers/grid/elements/Body.tsx","../src/components/containers/grid/elements/ColumnGroup.tsx","../src/components/containers/grid/elements/HeaderCell.tsx","../src/components/containers/grid/elements/SelectAllRowsCell.tsx","../src/components/containers/grid/elements/Head.tsx","../src/components/containers/grid/controller.ts","../src/components/containers/grid/Grid.tsx","../src/components/containers/menu/elements/MenuLeaf.tsx","../src/components/containers/menu/elements/SubMenu.tsx","../src/components/containers/menu/elements/MenuItem.tsx","../src/components/containers/menu/Menu.tsx","../src/components/containers/portal/Portal.tsx","../src/components/containers/tabs/elements/TabContent.tsx","../src/components/containers/tabs/elements/TabButton.tsx","../src/components/containers/tabs/elements/TabList.tsx","../src/components/containers/tabs/Tabs.tsx","../src/components/modals/alert/helpers.tsx","../src/components/modals/alert/elements/AlertHeader.tsx","../src/components/modals/alert/Alert.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","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","import React from 'react';\nimport { getClassName } from '@utils/get-class-name.ts';\nimport styles from './ErrorMessage.module.scss';\n\ntype ChopLogicErrorMessageProps = {\n errorId: string;\n visible?: boolean;\n message?: string;\n testId?: string;\n style?: React.CSSProperties;\n};\n\nconst ChopLogicErrorMessage: React.FC<ChopLogicErrorMessageProps> = ({\n errorId,\n testId,\n message = 'Invalid input',\n visible = false,\n style,\n}) => {\n return (\n <span\n id={errorId}\n className={getClassName([styles.errorMessage, { [styles.errorMessage__visible]: visible }])}\n data-testid={testId}\n style={style}\n aria-hidden={!visible}\n >\n {message}\n </span>\n );\n};\n\nexport default ChopLogicErrorMessage;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ArrowDownIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 24 24' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M21.886 5.536A1.002 1.002 0 0021 5H3a1.002 1.002 0 00-.822 1.569l9 13a.998.998 0 001.644 0l9-13a.998.998 0 00.064-1.033zM12 17.243L4.908 7h14.184L12 17.243z' />\n </svg>\n );\n}\n\nexport default ArrowDownIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ArrowUpIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 24 24' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M3 19h18a1.002 1.002 0 00.823-1.569l-9-13c-.373-.539-1.271-.539-1.645 0l-9 13A.999.999 0 003 19zm9-12.243L19.092 17H4.908L12 6.757z' />\n </svg>\n );\n}\n\nexport default ArrowUpIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction BackIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 512 512' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path fill='none' stroke='currentColor' strokeLinecap='round' strokeLinejoin='round' strokeWidth={48} d='M328 112L184 256l144 144' />\n </svg>\n );\n}\n\nexport default BackIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction CancelIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 470 1000' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M452 656c12 12 18 26.333 18 43s-6 31-18 43c-12 10.667-26.333 16-43 16s-31-5.333-43-16L234 590 102 742c-12 10.667-26.333 16-43 16s-31-5.333-43-16C5.333 730 0 715.667 0 699s5.333-31 16-43l138-156L16 342C5.333 330 0 315.667 0 299s5.333-31 16-43c12-10.667 26.333-16 43-16s31 5.333 43 16l132 152 132-152c12-10.667 26.333-16 43-16s31 5.333 43 16c12 12 18 26.333 18 43s-6 31-18 43L314 500l138 156' />\n </svg>\n );\n}\n\nexport default CancelIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction CheckboxCheckedIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 16 16' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path\n fill='currentColor'\n d='M14 0H2C.9 0 0 .9 0 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zM7 12.414L3.293 8.707l1.414-1.414L7 9.586l4.793-4.793 1.414 1.414L7 12.414z'\n />\n </svg>\n );\n}\n\nexport default CheckboxCheckedIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction CheckboxUncheckedIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 16 16' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path fill='currentColor' d='M14 0H2C.9 0 0 .9 0 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zm0 14H2V2h12v12z' />\n </svg>\n );\n}\n\nexport default CheckboxUncheckedIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction CheckMarkIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 512 512' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7l233.4-233.3c12.5-12.5 32.8-12.5 45.3 0z' />\n </svg>\n );\n}\n\nexport default CheckMarkIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ChevronDownIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg fill='currentColor' viewBox='0 0 16 16' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path\n fillRule='evenodd'\n d='M1.553 6.776a.5.5 0 01.67-.223L8 9.44l5.776-2.888a.5.5 0 11.448.894l-6 3a.5.5 0 01-.448 0l-6-3a.5.5 0 01-.223-.67z'\n />\n </svg>\n );\n}\n\nexport default ChevronDownIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ChevronLeftIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg fill='currentColor' viewBox='0 0 16 16' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path\n fillRule='evenodd'\n d='M9.224 1.553a.5.5 0 01.223.67L6.56 8l2.888 5.776a.5.5 0 11-.894.448l-3-6a.5.5 0 010-.448l3-6a.5.5 0 01.67-.223z'\n />\n </svg>\n );\n}\n\nexport default ChevronLeftIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ChevronRightIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg fill='currentColor' viewBox='0 0 16 16' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path\n fillRule='evenodd'\n d='M6.776 1.553a.5.5 0 01.671.223l3 6a.5.5 0 010 .448l-3 6a.5.5 0 11-.894-.448L9.44 8 6.553 2.224a.5.5 0 01.223-.671z'\n />\n </svg>\n );\n}\n\nexport default ChevronRightIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ChevronUpIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg fill='currentColor' viewBox='0 0 16 16' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path fillRule='evenodd' d='M7.776 5.553a.5.5 0 01.448 0l6 3a.5.5 0 11-.448.894L8 6.56 2.224 9.447a.5.5 0 11-.448-.894l6-3z' />\n </svg>\n );\n}\n\nexport default ChevronUpIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ClearIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 1024 1024' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <defs>\n <style />\n </defs>\n <path d='M899.1 869.6l-53-305.6H864c14.4 0 26-11.6 26-26V346c0-14.4-11.6-26-26-26H618V138c0-14.4-11.6-26-26-26H432c-14.4 0-26 11.6-26 26v182H160c-14.4 0-26 11.6-26 26v192c0 14.4 11.6 26 26 26h17.9l-53 305.6c-.3 1.5-.4 3-.4 4.4 0 14.4 11.6 26 26 26h723c1.5 0 3-.1 4.4-.4 14.2-2.4 23.7-15.9 21.2-30zM204 390h272V182h72v208h272v104H204V390zm468 440V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H416V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H202.8l45.1-260H776l45.1 260H672z' />\n </svg>\n );\n}\n\nexport default ClearIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction CopyIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg\n fill='none'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth={2}\n viewBox='0 0 24 24'\n height='1em'\n width='1em'\n {...rest}\n >\n {title && <title>{title}</title>}\n <path d='M11 9 H20 A2 2 0 0 1 22 11 V20 A2 2 0 0 1 20 22 H11 A2 2 0 0 1 9 20 V11 A2 2 0 0 1 11 9 z' />\n <path d='M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1' />\n </svg>\n );\n}\n\nexport default CopyIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction CutIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg\n fill='none'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth={2}\n viewBox='0 0 24 24'\n height='1em'\n width='1em'\n role='img'\n {...rest}\n >\n {title && <title>{title}</title>}\n <path stroke='none' d='M0 0h24v24H0z' />\n <path d='M10 17 A3 3 0 0 1 7 20 A3 3 0 0 1 4 17 A3 3 0 0 1 10 17 z' />\n <path d='M20 17 A3 3 0 0 1 17 20 A3 3 0 0 1 14 17 A3 3 0 0 1 20 17 z' />\n <path d='M9.15 14.85L18 4M6 4l8.85 10.85' />\n </svg>\n );\n}\n\nexport default CutIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction DeleteIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 1024 1024' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z' />\n </svg>\n );\n}\n\nexport default DeleteIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction DownloadIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 1024 1024' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z' />\n </svg>\n );\n}\n\nexport default DownloadIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ErrorIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 24 24' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M11 7h2v7h-2zm0 8h2v2h-2z' />\n <path d='M21.707 7.293l-5-5A.996.996 0 0016 2H8a.996.996 0 00-.707.293l-5 5A.996.996 0 002 8v8c0 .266.105.52.293.707l5 5A.996.996 0 008 22h8c.266 0 .52-.105.707-.293l5-5A.996.996 0 0022 16V8a.996.996 0 00-.293-.707zM20 15.586L15.586 20H8.414L4 15.586V8.414L8.414 4h7.172L20 8.414v7.172z' />\n </svg>\n );\n}\n\nexport default ErrorIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ForwardIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 512 512' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path fill='none' stroke='currentColor' strokeLinecap='round' strokeLinejoin='round' strokeWidth={48} d='M184 112l144 144-144 144' />\n </svg>\n );\n}\n\nexport default ForwardIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nconst GraduateIcon = ({ title, ...rest }: ChopLogicSVGElementProps) => (\n <svg width='1em' height='1em' fill='currentColor' viewBox='0 0 448 512' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M219.3.5c3.1-.6 6.3-.6 9.4 0l200 40C439.9 42.7 448 52.6 448 64s-8.1 21.3-19.3 23.5L352 102.9V160c0 70.7-57.3 128-128 128S96 230.7 96 160v-57.1l-48-9.6v65.1l15.7 78.4c.9 4.7-.3 9.6-3.3 13.3S52.8 256 48 256H16c-4.8 0-9.3-2.1-12.4-5.9s-4.3-8.6-3.3-13.3L16 158.4V86.6C6.5 83.3 0 74.3 0 64c0-11.4 8.1-21.3 19.3-23.5l200-40zM111.9 327.7c10.5-3.4 21.8.4 29.4 8.5l71 75.5c6.3 6.7 17 6.7 23.3 0l71-75.5c7.6-8.1 18.9-11.9 29.4-8.5 65 20.9 112 81.7 112 153.6 0 17-13.8 30.7-30.7 30.7H30.7C13.8 512 0 498.2 0 481.3c0-71.9 47-132.7 111.9-153.6z' />\n </svg>\n);\n\nexport default GraduateIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction HelpIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 512 512' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM192.13 260.18a64 64 0 1159.69 59.69 64.07 64.07 0 01-59.69-59.69zm240-66.64l-96.37 5.84a4.06 4.06 0 01-3.44-1.59 96 96 0 00-18.07-18.07 4.06 4.06 0 01-1.59-3.44l5.84-96.37a4 4 0 015.42-3.51A193 193 0 01435.6 188.12a4 4 0 01-3.51 5.42zM193.54 79.91l5.84 96.37a4.06 4.06 0 01-1.59 3.44 96 96 0 00-18.07 18.07 4.06 4.06 0 01-3.44 1.59l-96.37-5.84a4 4 0 01-3.51-5.42A193 193 0 01188.12 76.4a4 4 0 015.42 3.51zM79.91 318.46l96.37-5.84a4.06 4.06 0 013.44 1.59 96 96 0 0018.07 18.07 4.06 4.06 0 011.59 3.44l-5.84 96.37a4 4 0 01-5.42 3.51A193 193 0 0176.4 323.88a4 4 0 013.51-5.42zm238.55 113.63l-5.84-96.37a4.06 4.06 0 011.59-3.44 96 96 0 0018.07-18.07 4.06 4.06 0 013.44-1.59l96.37 5.84a4 4 0 013.51 5.42A193 193 0 01323.88 435.6a4 4 0 01-5.42-3.51z' />\n </svg>\n );\n}\n\nexport default HelpIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction HideIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 24 24' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M12 19c.946 0 1.81-.103 2.598-.281l-1.757-1.757c-.273.021-.55.038-.841.038-5.351 0-7.424-3.846-7.926-5a8.642 8.642 0 011.508-2.297L4.184 8.305c-1.538 1.667-2.121 3.346-2.132 3.379a.994.994 0 000 .633C2.073 12.383 4.367 19 12 19zm0-14c-1.837 0-3.346.396-4.604.981L3.707 2.293 2.293 3.707l18 18 1.414-1.414-3.319-3.319c2.614-1.951 3.547-4.615 3.561-4.657a.994.994 0 000-.633C21.927 11.617 19.633 5 12 5zm4.972 10.558l-2.28-2.28c.19-.39.308-.819.308-1.278 0-1.641-1.359-3-3-3-.459 0-.888.118-1.277.309L8.915 7.501A9.26 9.26 0 0112 7c5.351 0 7.424 3.846 7.926 5-.302.692-1.166 2.342-2.954 3.558z' />\n </svg>\n );\n}\n\nexport default HideIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nconst HomeIcon = ({ title, ...rest }: ChopLogicSVGElementProps) => (\n <svg width='1em' height='1em' fill='currentColor' viewBox='0 0 1024 1024' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M946.5 505 560.1 118.8l-25.9-25.9a31.5 31.5 0 0 0-44.4 0L77.5 505a63.9 63.9 0 0 0-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0 0 18.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z' />\n </svg>\n);\n\nexport default HomeIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction InfoIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 1024 1024' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z' />\n <path d='M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z' />\n </svg>\n );\n}\n\nexport default InfoIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nconst LoginIcon = ({ title, ...rest }: ChopLogicSVGElementProps) => (\n <svg width='1em' height='1em' fill='currentColor' viewBox='0 0 1024 1024' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M521.7 82c-152.5-.4-286.7 78.5-363.4 197.7-3.4 5.3.4 12.3 6.7 12.3h70.3c4.8 0 9.3-2.1 12.3-5.8 7-8.5 14.5-16.7 22.4-24.5 32.6-32.5 70.5-58.1 112.7-75.9 43.6-18.4 90-27.8 137.9-27.8 47.9 0 94.3 9.3 137.9 27.8 42.2 17.8 80.1 43.4 112.7 75.9 32.6 32.5 58.1 70.4 76 112.5C865.7 417.8 875 464.1 875 512c0 47.9-9.4 94.2-27.8 137.8-17.8 42.1-43.4 80-76 112.5s-70.5 58.1-112.7 75.9A352.8 352.8 0 0 1 520.6 866c-47.9 0-94.3-9.4-137.9-27.8A353.84 353.84 0 0 1 270 762.3c-7.9-7.9-15.3-16.1-22.4-24.5-3-3.7-7.6-5.8-12.3-5.8H165c-6.3 0-10.2 7-6.7 12.3C234.9 863.2 368.5 942 520.6 942c236.2 0 428-190.1 430.4-425.6C953.4 277.1 761.3 82.6 521.7 82zM395.02 624v-76h-314c-4.4 0-8-3.6-8-8v-56c0-4.4 3.6-8 8-8h314v-76c0-6.7 7.8-10.5 13-6.3l141.9 112a8 8 0 0 1 0 12.6l-141.9 112c-5.2 4.1-13 .4-13-6.3z' />\n </svg>\n);\n\nexport default LoginIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction PasteIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 24 24' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M20 11V5c0-1.103-.897-2-2-2h-3a1 1 0 00-1-1H8a1 1 0 00-1 1H4c-1.103 0-2 .897-2 2v13c0 1.103.897 2 2 2h7c0 1.103.897 2 2 2h7c1.103 0 2-.897 2-2v-7c0-1.103-.897-2-2-2zm-9 2v5H4V5h3v2h8V5h3v6h-5c-1.103 0-2 .897-2 2zm2 7v-7h7l.001 7H13z' />\n </svg>\n );\n}\n\nexport default PasteIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction QuestionIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 512 512' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path fill='none' stroke='currentColor' strokeMiterlimit={10} strokeWidth={32} d='M256 80a176 176 0 10176 176A176 176 0 00256 80z' />\n <path\n fill='none'\n stroke='currentColor'\n strokeLinecap='round'\n strokeMiterlimit={10}\n strokeWidth={28}\n d='M200 202.29s.84-17.5 19.57-32.57C230.68 160.77 244 158.18 256 158c10.93-.14 20.69 1.67 26.53 4.45 10 4.76 29.47 16.38 29.47 41.09 0 26-17 37.81-36.37 50.8S251 281.43 251 296'\n />\n <path d='M270 348 A20 20 0 0 1 250 368 A20 20 0 0 1 230 348 A20 20 0 0 1 270 348 z' />\n </svg>\n );\n}\n\nexport default QuestionIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction RemoveIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 512 512' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path\n fill='none'\n stroke='currentColor'\n strokeLinejoin='round'\n strokeWidth={32}\n d='M135.19 390.14a28.79 28.79 0 0021.68 9.86h246.26A29 29 0 00432 371.13V140.87A29 29 0 00403.13 112H156.87a28.84 28.84 0 00-21.67 9.84v0L46.33 256l88.86 134.11z'\n />\n <path\n fill='none'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth={32}\n d='M336.67 192.33L206.66 322.34M336.67 322.34L206.66 192.33M336.67 192.33L206.66 322.34M336.67 322.34L206.66 192.33'\n />\n </svg>\n );\n}\n\nexport default RemoveIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction SaveIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 1024 1024' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z' />\n </svg>\n );\n}\n\nexport default SaveIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ShowIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 24 24' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M12 9a3.02 3.02 0 00-3 3c0 1.642 1.358 3 3 3 1.641 0 3-1.358 3-3 0-1.641-1.359-3-3-3z' />\n <path d='M12 5c-7.633 0-9.927 6.617-9.948 6.684L1.946 12l.105.316C2.073 12.383 4.367 19 12 19s9.927-6.617 9.948-6.684l.106-.316-.105-.316C21.927 11.617 19.633 5 12 5zm0 12c-5.351 0-7.424-3.846-7.926-5C4.578 10.842 6.652 7 12 7c5.351 0 7.424 3.846 7.926 5-.504 1.158-2.578 5-7.926 5z' />\n </svg>\n );\n}\n\nexport default ShowIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction UploadIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg fill='currentColor' viewBox='0 0 16 16' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M.5 9.9a.5.5 0 01.5.5v2.5a1 1 0 001 1h12a1 1 0 001-1v-2.5a.5.5 0 011 0v2.5a2 2 0 01-2 2H2a2 2 0 01-2-2v-2.5a.5.5 0 01.5-.5z' />\n <path d='M7.646 1.146a.5.5 0 01.708 0l3 3a.5.5 0 01-.708.708L8.5 2.707V11.5a.5.5 0 01-1 0V2.707L5.354 4.854a.5.5 0 11-.708-.708l3-3z' />\n </svg>\n );\n}\n\nexport default UploadIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction WarningIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 24 24' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path fill='none' d='M0 0h24v24H0z' />\n <path d='M4 20v-6a8 8 0 1116 0v6h1v2H3v-2h1zm2 0h12v-6a6 6 0 10-12 0v6zm5-18h2v3h-2V2zm8.778 2.808l1.414 1.414-2.12 2.121-1.415-1.414 2.121-2.121zM2.808 6.222l1.414-1.414 2.121 2.12L4.93 8.344 2.808 6.222zM7 14a5 5 0 015-5v2a3 3 0 00-3 3H7z' />\n </svg>\n );\n}\n\nexport default WarningIcon;\n","export enum ChopLogicAlertMode {\n Success = 'success',\n Error = 'error',\n Warning = 'warning',\n Info = 'info',\n Help = 'help',\n}\n","export enum ChopLogicButtonView {\n Primary = 'primary',\n Flat = 'flat',\n Icon = 'icon',\n}\n","export enum ChopLogicIconName {\n ArrowDown = 'arrow-down',\n ArrowUp = 'arrow-up',\n Back = 'back',\n Cancel = 'cancel',\n CheckboxChecked = 'checkbox-checked',\n CheckboxUnchecked = 'checkbox-unchecked',\n CheckMark = 'check-mark',\n ChevronDown = 'chevron-down',\n ChevronLeft = 'chevron-left',\n ChevronRight = 'chevron-right',\n ChevronUp = 'chevron-up',\n Clear = 'clear',\n Copy = 'copy',\n Cut = 'cut',\n Delete = 'delete',\n Download = 'download',\n Error = 'error',\n Forward = 'forward',\n Graduate = 'graduate',\n Help = 'help',\n Hide = 'hide',\n Home = 'home',\n Info = 'info',\n Login = 'login',\n Paste = 'paste',\n Question = 'question',\n Save = 'save',\n Show = 'show',\n Upload = 'upload',\n Warning = 'warning',\n Remove = 'remove',\n}\n","export enum ChopLogicLoaderView {\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 ChopLogicOrientationMode {\n Vertical = 'vertical',\n Horizontal = 'horizontal',\n}\n","export enum ChopLogicThemeMode {\n Light = 'cl-components-light-theme',\n Dark = 'cl-components-dark-theme',\n}\n","export enum ChopLogicTooltipContainer {\n Span = 'span',\n Div = 'div',\n P = 'p',\n Strong = 'strong',\n Em = 'em',\n}\n","import ArrowDownIcon from './svg/ArrowDownIcon.tsx';\nimport ArrowUpIcon from './svg/ArrowUpIcon.tsx';\nimport BackIcon from './svg/BackIcon.tsx';\nimport CancelIcon from './svg/CancelIcon.tsx';\nimport CheckboxCheckedIcon from './svg/CheckboxCheckedIcon.tsx';\nimport CheckboxUncheckedIcon from './svg/CheckboxUncheckedIcon.tsx';\nimport CheckMarkIcon from './svg/CheckMarkIcon.tsx';\nimport ChevronDownIcon from './svg/ChevronDownIcon.tsx';\nimport ChevronLeftIcon from './svg/ChevronLeftIcon.tsx';\nimport ChevronRightIcon from './svg/ChevronRightIcon.tsx';\nimport ChevronUpIcon from './svg/ChevronUpIcon.tsx';\nimport ClearIcon from './svg/ClearIcon.tsx';\nimport CopyIcon from './svg/CopyIcon.tsx';\nimport CutIcon from './svg/CutIcon.tsx';\nimport DeleteIcon from './svg/DeleteIcon.tsx';\nimport DownloadIcon from './svg/DownloadIcon.tsx';\nimport ErrorIcon from './svg/ErrorIcon.tsx';\nimport ForwardIcon from './svg/ForwardIcon.tsx';\nimport GraduateIcon from './svg/GraduateIcon.tsx';\nimport HelpIcon from './svg/HelpIcon.tsx';\nimport HideIcon from './svg/HideIcon.tsx';\nimport HomeIcon from './svg/HomeIcon.tsx';\nimport InfoIcon from './svg/InfoIcon.tsx';\nimport LoginIcon from './svg/LoginIcon.tsx';\nimport PasteIcon from './svg/PasteIcon.tsx';\nimport QuestionIcon from './svg/QuestionIcon.tsx';\nimport RemoveIcon from './svg/RemoveIcon.tsx';\nimport SaveIcon from './svg/SaveIcon.tsx';\nimport ShowIcon from './svg/ShowIcon.tsx';\nimport UploadIcon from './svg/UploadIcon.tsx';\nimport WarningIcon from './svg/WarningIcon.tsx';\nimport { ChopLogicSVGElementProps } from '@models';\nimport { ReactElement } from 'react';\nimport { ChopLogicIconName } from '@enums';\n\ntype ChopLogicIcons = { [key in ChopLogicIconName]: ({ title, ...rest }: ChopLogicSVGElementProps) => ReactElement };\n\nexport const ChopLogicIconDictionary: ChopLogicIcons = {\n [ChopLogicIconName.ArrowDown]: ArrowDownIcon,\n [ChopLogicIconName.ArrowUp]: ArrowUpIcon,\n [ChopLogicIconName.Back]: BackIcon,\n [ChopLogicIconName.Cancel]: CancelIcon,\n [ChopLogicIconName.CheckboxChecked]: CheckboxCheckedIcon,\n [ChopLogicIconName.CheckboxUnchecked]: CheckboxUncheckedIcon,\n [ChopLogicIconName.CheckMark]: CheckMarkIcon,\n [ChopLogicIconName.ChevronDown]: ChevronDownIcon,\n [ChopLogicIconName.ChevronUp]: ChevronUpIcon,\n [ChopLogicIconName.ChevronLeft]: ChevronLeftIcon,\n [ChopLogicIconName.ChevronRight]: ChevronRightIcon,\n [ChopLogicIconName.Clear]: ClearIcon,\n [ChopLogicIconName.Copy]: CopyIcon,\n [ChopLogicIconName.Cut]: CutIcon,\n [ChopLogicIconName.Delete]: DeleteIcon,\n [ChopLogicIconName.Download]: DownloadIcon,\n [ChopLogicIconName.Error]: ErrorIcon,\n [ChopLogicIconName.Forward]: ForwardIcon,\n [ChopLogicIconName.Graduate]: GraduateIcon,\n [ChopLogicIconName.Help]: HelpIcon,\n [ChopLogicIconName.Hide]: HideIcon,\n [ChopLogicIconName.Home]: HomeIcon,\n [ChopLogicIconName.Info]: InfoIcon,\n [ChopLogicIconName.Login]: LoginIcon,\n [ChopLogicIconName.Paste]: PasteIcon,\n [ChopLogicIconName.Question]: QuestionIcon,\n [ChopLogicIconName.Save]: SaveIcon,\n [ChopLogicIconName.Show]: ShowIcon,\n [ChopLogicIconName.Upload]: UploadIcon,\n [ChopLogicIconName.Warning]: WarningIcon,\n [ChopLogicIconName.Remove]: RemoveIcon,\n};\n","import React from 'react';\nimport { ChopLogicIconProps } from '@models';\nimport { ChopLogicIconDictionary } from '@assets/icons';\n\nconst ChopLogicIcon: React.FC<ChopLogicIconProps> = ({ name, testId, ...rest }) => {\n if (!name) return null;\n const Component = ChopLogicIconDictionary[name];\n\n return <Component data-testid={testId} {...rest} />;\n};\n\nexport default ChopLogicIcon;\n","import React from 'react';\nimport { ChopLogicIcon } from '@elements';\nimport { ChopLogicIconName } from '@enums';\nimport styles from './InputInnerButton.module.scss';\n\ntype ClearInputButtonProps = {\n onClick: (event: React.MouseEvent<HTMLButtonElement>) => void;\n label: string;\n icon: ChopLogicIconName;\n disabled?: boolean;\n};\n\nconst InputInnerButton: React.FC<ClearInputButtonProps> = ({ onClick, label, icon, disabled }) => {\n return (\n <button className={styles.inputButton} onClick={onClick} aria-label={label} type='button' disabled={disabled}>\n <ChopLogicIcon name={icon} />\n </button>\n );\n};\n\nexport default InputInnerButton;\n","import React, { PropsWithChildren } from 'react';\nimport styles from './Label.module.scss';\n\ntype ChopLogicLabelProps = {\n label: string;\n required: boolean;\n inputId: string;\n isTextHidden?: boolean;\n icon?: React.ReactElement;\n iconPosition?: 'left' | 'right';\n style?: React.CSSProperties;\n};\n\nconst ChopLogicLabel: React.FC<PropsWithChildren<ChopLogicLabelProps>> = ({\n label,\n required,\n inputId,\n icon,\n iconPosition,\n isTextHidden = false,\n style,\n}) => {\n const isLeftIconVisible = !!icon && iconPosition === 'left';\n const isRightIconVisible = !!icon && iconPosition === 'right';\n\n return (\n <label className={styles.label} htmlFor={inputId} style={style}>\n {isLeftIconVisible && icon}\n {!isTextHidden && (\n <span>\n {label}\n {required && <abbr title='required'>*</abbr>}\n </span>\n )}\n {isRightIconVisible && icon}\n </label>\n );\n};\n\nexport default ChopLogicLabel;\n","import React from 'react';\nimport { ChopLogicTooltip } from '@components';\n\ntype WithTooltipProps = {\n tooltip?: string;\n visibleOn?: 'hover' | 'click' | 'focus' | 'contextmenu';\n};\n\nexport function withTooltip<P extends object>(Component: React.ComponentType<P>): React.FC<P & WithTooltipProps> {\n return ({ tooltip, visibleOn, ...props }: WithTooltipProps) =>\n tooltip?.length ? (\n <ChopLogicTooltip tooltipContent={tooltip} visibleOn={visibleOn}>\n <Component {...(props as P)} />\n </ChopLogicTooltip>\n ) : (\n <Component {...(props as P)} />\n );\n}\n","export function moveFocusOnElementById(id: string) {\n const element = document.getElementById(id);\n\n if (element) element.focus();\n}\n","import { KeyboardEvent } from 'react';\nimport { ChopLogicSelectValue } from '@models';\n\nimport { moveFocusOnElementById } from './move-focus-on-element-by-id.ts';\n\nexport function handleDropdownListKeyPress({\n e,\n options,\n onClose,\n}: {\n e: KeyboardEvent<HTMLUListElement>;\n options: ChopLogicSelectValue[];\n onClose: () => void;\n}) {\n let focusedId: string = '';\n options.forEach((value) => {\n const element = document.getElementById(value.id);\n if (element === document.activeElement) {\n focusedId = value.id;\n }\n });\n\n const currentFocusIndex = options.findIndex((value) => value.id === focusedId);\n\n switch (e.key) {\n case 'Escape':\n e.preventDefault();\n onClose();\n break;\n case 'ArrowUp': {\n e.preventDefault();\n const previousOptionIndex = currentFocusIndex - 1 >= 0 ? currentFocusIndex - 1 : options.length - 1;\n const previousValue = options[previousOptionIndex];\n if (previousValue) moveFocusOnElementById(previousValue.id);\n break;\n }\n case 'ArrowDown':\n case 'Tab': {\n e.preventDefault();\n const nextOptionIndex = currentFocusIndex === options.length - 1 ? 0 : currentFocusIndex + 1;\n const nextValue = options[nextOptionIndex];\n if (nextValue) moveFocusOnElementById(nextValue.id);\n break;\n }\n }\n}\n","import React from 'react';\nimport { ChopLogicIcon } from '@elements';\nimport { ChopLogicButtonView } from '@enums';\nimport { withTooltip } from '@hocs';\nimport { ChopLogicButtonProps } from '@models';\nimport styles from './Button.module.scss';\nimport { getClassName } from '@utils';\n\nconst ChopLogicButton: React.FC<ChopLogicButtonProps> = ({\n onClick,\n text,\n icon,\n label,\n disabled = false,\n extended = false,\n type = 'button',\n view = ChopLogicButtonView.Primary,\n className,\n ...rest\n}) => {\n const primaryClassName = getClassName([styles.primary, className, { [styles.primary__extended]: extended }]);\n const flatClassName = getClassName([styles.flat, className]);\n const iconClassName = getClassName([styles.icon, icon]);\n\n switch (view) {\n case ChopLogicButtonView.Primary:\n return (\n <button aria-label={label} type={type} onClick={onClick} disabled={disabled} {...rest} className={primaryClassName}>\n <span className={styles.primary_shadow}></span>\n <span className={styles.primary_edge}></span>\n <span className={styles.primary_front}>\n <ChopLogicIcon name={icon} />\n {text}\n </span>\n </button>\n );\n case ChopLogicButtonView.Flat:\n return (\n <button aria-label={label} type={type} onClick={onClick} disabled={disabled} {...rest} className={flatClassName}>\n <ChopLogicIcon name={icon} />\n {text}\n </button>\n );\n case ChopLogicButtonView.Icon:\n return (\n <button aria-label={label} type={type} onClick={onClick} disabled={disabled} {...rest} className={iconClassName}>\n <ChopLogicIcon name={icon} />\n </button>\n );\n default:\n return null;\n }\n};\n\nexport default withTooltip(ChopLogicButton);\n","import React, { useEffect } from 'react';\n\ntype UseClickOutsideParams = {\n ref: React.RefObject<HTMLElement | null>;\n onClickOutsideHandler: () => void;\n dependentRef?: React.RefObject<HTMLElement | null>;\n};\n\nexport const useClickOutside = ({ ref, onClickOutsideHandler, dependentRef }: UseClickOutsideParams): void => {\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n const isOutsideRef = ref?.current && !ref.current.contains(event.target as Node);\n const isOutsideDependentRef = !dependentRef?.current ? true : !dependentRef.current.contains(event.target as Node);\n if (isOutsideRef && isOutsideDependentRef) {\n onClickOutsideHandler();\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [ref, dependentRef, onClickOutsideHandler]);\n};\n","import React, { useEffect, useState } from 'react';\n\nimport { Dimensions } from '../use-window-dimensions';\n\ntype useContainerDimensionsParams = {\n ref: React.RefObject<HTMLElement | null>;\n isVisible?: boolean;\n};\n\nexport const useContainerDimensions = ({ ref, isVisible }: useContainerDimensionsParams): Dimensions => {\n const [dimensions, setDimensions] = useState<Dimensions>({ width: 0, height: 0 });\n\n useEffect(() => {\n if (ref?.current && isVisible) {\n setDimensions({\n width: ref.current.offsetWidth,\n height: ref.current.offsetHeight,\n });\n }\n }, [ref, isVisible]);\n\n return dimensions;\n};\n","import { useId } from 'react';\n\nexport function useElementIds(id?: string) {\n const randomId = useId();\n const elementId = id ?? randomId;\n const errorId = `${elementId}_error`;\n const dropdownId = `${elementId}_dropdown`;\n\n return {\n elementId,\n errorId,\n dropdownId,\n };\n}\n","import React, { useEffect } from 'react';\n\ntype useKeyPressParams = {\n keyCode: string;\n ref: React.RefObject<HTMLDivElement | null>;\n onKeyPress: () => void;\n};\n\nexport const useKeyPress = ({ ref, keyCode, onKeyPress }: useKeyPressParams) => {\n useEffect(() => {\n const handleKeyPress = (e: KeyboardEvent) => {\n if (e?.code === keyCode && ref?.current) {\n onKeyPress();\n }\n };\n\n document.addEventListener('keydown', handleKeyPress, false);\n return () => {\n document.removeEventListener('keydown', handleKeyPress, false);\n };\n }, [ref, keyCode, onKeyPress]);\n};\n","import React, { useEffect } from 'react';\n\ntype ModalFocusTrapParams = {\n modalRef: React.RefObject<HTMLDivElement | null>;\n isOpened: boolean;\n};\n\nexport const useModalFocusTrap = ({ modalRef, isOpened }: ModalFocusTrapParams) => {\n useEffect(() => {\n const modalElement = modalRef.current;\n if (!isOpened || !modalElement) return;\n\n const focusableElements = modalElement.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])');\n const firstElement = focusableElements[0] as HTMLElement;\n const lastElement = focusableElements[focusableElements.length - 1] as HTMLElement;\n\n const handleTabKeyPress = (event: KeyboardEvent) => {\n if (event.key === 'Tab') {\n if (event.shiftKey && document.activeElement === firstElement) {\n event.preventDefault();\n lastElement.focus();\n } else if (!event.shiftKey && document.activeElement === lastElement) {\n event.preventDefault();\n firstElement.focus();\n }\n }\n };\n\n modalElement.addEventListener('keydown', handleTabKeyPress);\n\n return () => {\n modalElement.removeEventListener('keydown', handleTabKeyPress);\n };\n }, [modalRef, isOpened]);\n};\n","import { useEffect, useState } from 'react';\n\nexport const useMount = (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 React from 'react';\nimport { ChopLogicFormData, ChopLogicFormInputParams } from '@models';\n\nexport interface ChopLogicFormContextProps {\n onChangeFormInput?: (params: ChopLogicFormInputParams) => void;\n initialValues?: ChopLogicFormData;\n resetSignal?: number;\n}\n\nexport const ChopLogicFormContext = React.createContext<ChopLogicFormContextProps>({});\n","import { createContext } from 'react';\nimport { ChopLogicThemeMode } from '@enums';\n\nexport interface ChopLogicThemeContextProps {\n mode?: ChopLogicThemeMode;\n setMode: (mode: ChopLogicThemeMode) => void;\n}\n\nexport const ChopLogicThemeContext = createContext<ChopLogicThemeContextProps>({\n mode: ChopLogicThemeMode.Light,\n setMode: () => {},\n});\n","import { FC, ReactNode, useEffect, useState } from 'react';\nimport { ChopLogicThemeContext } from './context.ts';\nimport { ChopLogicThemeMode } from '@enums';\nimport '@styles/root.scss';\n\nexport const ChopLogicThemeProvider: FC<{ children: ReactNode; injectedMode?: ChopLogicThemeMode }> = ({ children, injectedMode }) => {\n const [mode, setMode] = useState(ChopLogicThemeMode.Light);\n\n useEffect(() => {\n if (mode && typeof mode === 'string') {\n document.body.classList.remove(ChopLogicThemeMode.Light, ChopLogicThemeMode.Dark);\n document.body.classList.add(mode);\n }\n }, [mode]);\n\n useEffect(() => {\n if (injectedMode && typeof injectedMode === 'string') {\n document.body.classList.remove(ChopLogicThemeMode.Light, ChopLogicThemeMode.Dark);\n document.body.classList.add(injectedMode);\n }\n }, [injectedMode]);\n\n return <ChopLogicThemeContext.Provider value={{ mode, setMode }}>{children}</ChopLogicThemeContext.Provider>;\n};\n","import { useContext, useEffect } from 'react';\nimport { ChopLogicFormContext } from '@contexts';\n\nexport const useResetFormInput = (onReset: () => void) => {\n const { resetSignal } = useContext(ChopLogicFormContext);\n\n useEffect(() => {\n if (resetSignal) {\n onReset();\n }\n }, [resetSignal, onReset]);\n};\n","import { useEffect, useState } from 'react';\n\nexport type Dimensions = { width: number; height: number };\n\nfunction getWindowDimensions(): Dimensions {\n const { innerWidth: width, innerHeight: height } = window;\n\n return { width, height };\n}\n\nexport function useWindowDimensions(): Dimensions {\n const [windowDimensions, setWindowDimensions] = useState<Dimensions>(getWindowDimensions());\n\n useEffect(() => {\n function handleResize() {\n setWindowDimensions(getWindowDimensions());\n }\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n return windowDimensions;\n}\n","import React, { useEffect, useState } from 'react';\n\nimport { useContainerDimensions } from '../use-container-dimensions';\nimport { useWindowDimensions } from '../use-window-dimensions';\n\ntype useTooltipPositionParams = {\n wrapperRef: React.RefObject<HTMLElement | null>;\n tooltipRef: React.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 { useContext } from 'react';\nimport { ChopLogicThemeContext } from '@contexts';\n\nexport const useChopLogicTheme = () => useContext(ChopLogicThemeContext);\n","import { ChopLogicFormData } from '@models';\n\nexport function getCheckboxInitialValue({\n defaultChecked,\n initialValues,\n name,\n}: {\n defaultChecked?: boolean;\n initialValues?: ChopLogicFormData;\n name: string;\n}): boolean {\n if (initialValues && initialValues?.[name] !== undefined) {\n return !!initialValues?.[name];\n }\n\n return Boolean(defaultChecked);\n}\n","import React, { useCallback, useContext, useState } from 'react';\nimport { ChopLogicFormContext } from '@contexts';\nimport { useResetFormInput } from '@hooks';\n\nimport { getCheckboxInitialValue } from './helpers';\n\nexport function useChopLogicCheckboxController({\n name,\n defaultChecked,\n onChange,\n}: {\n name: string;\n defaultChecked?: boolean;\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\n}) {\n const { onChangeFormInput, initialValues } = useContext(ChopLogicFormContext);\n const initialValue = getCheckboxInitialValue({ initialValues, name, defaultChecked });\n const [isChecked, setIsChecked] = useState<boolean>(initialValue);\n\n const handleChange = (e: React.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 React from 'react';\nimport { ChopLogicLabel } from '@elements';\nimport { useElementIds } from '@hooks';\nimport CheckboxCheckedIcon from '@assets/icons/svg/CheckboxCheckedIcon.tsx';\nimport CheckboxUncheckedIcon from '@assets/icons/svg/CheckboxUncheckedIcon.tsx';\nimport { ChopLogicCheckboxProps } from '@models';\nimport { useChopLogicCheckboxController } from './controller';\nimport styles from './Checkbox.module.scss';\nimport { getClassName } from '@utils';\n\nconst ChopLogicCheckbox: React.FC<ChopLogicCheckboxProps> = ({\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 } = useChopLogicCheckboxController({ 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 <ChopLogicLabel\n label={label}\n required={required}\n inputId={elementId}\n isTextHidden={noLabel}\n icon={checked ? <CheckboxCheckedIcon /> : <CheckboxUncheckedIcon />}\n iconPosition={iconPosition}\n />\n </div>\n );\n};\n\nexport default ChopLogicCheckbox;\n","import React from 'react';\nimport ArrowDownIcon from '@assets/icons/svg/ArrowDownIcon.tsx';\nimport ArrowUpIcon from '@assets/icons/svg/ArrowUpIcon.tsx';\nimport { ChopLogicMultiSelectValue } from '@models';\nimport styles from '../../select/Select.module.scss';\n\ntype MultiSelectComboboxProps = {\n opened: boolean;\n disabled: boolean;\n required: boolean;\n onClick: () => void;\n comboboxId: string;\n dropdownId: string;\n values?: ChopLogicMultiSelectValue[];\n placeholder?: string;\n name: string;\n};\n\nconst SelectCombobox: React.FC<MultiSelectComboboxProps> = ({\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 > 1) {\n selectedValues = <span>{`${selectedLabels.length} items selected`}</span>;\n } else if (selectedLabels && selectedLabels.length === 1) {\n selectedValues = <span>{selectedLabels[0]}</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\nexport default SelectCombobox;\n","import React, { KeyboardEvent } from 'react';\nimport CheckboxCheckedIcon from '@assets/icons/svg/CheckboxCheckedIcon.tsx';\nimport CheckboxUncheckedIcon from '@assets/icons/svg/CheckboxUncheckedIcon.tsx';\nimport { ChopLogicMultiSelectValue } from '@models';\nimport { getClassName } from '@utils';\nimport styles from '@components/inputs/select/Select.module.scss';\n\ntype MultiSelectOptionProps = {\n value: ChopLogicMultiSelectValue;\n onSelect: (id: string) => void;\n};\n\nconst SelectOption: React.FC<MultiSelectOptionProps> = ({ 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\nexport default SelectOption;\n","import React from 'react';\nimport { ChopLogicMultiSelectValue } from '@models';\nimport { getClassName, handleDropdownListKeyPress } from '@utils';\nimport styles from '../../select/Select.module.scss';\nimport SelectOption from './Option';\n\ntype MultiSelectDropdownProps = {\n options: ChopLogicMultiSelectValue[];\n opened: boolean;\n dropdownId: string;\n onClose: () => void;\n onSelect: (id: string) => void;\n};\n\nconst MultiSelectDropdown: React.FC<MultiSelectDropdownProps> = ({ 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 <SelectOption key={item.id} value={item} onSelect={() => onSelect(item.id)} />\n ))}\n </ul>\n );\n};\n\nexport default MultiSelectDropdown;\n","import { ChopLogicFormData, ChopLogicMultiSelectValue, ChopLogicSelectValue } from '@models';\n\nexport function getMultiSelectInitialValues({\n name,\n options,\n initialValues,\n defaultValue,\n}: {\n name: string;\n options: ChopLogicSelectValue[];\n initialValues?: ChopLogicFormData;\n defaultValue?: string | number | readonly string[];\n}): ChopLogicMultiSelectValue[] {\n return options.map((option) => {\n let selected = false;\n\n if (initialValues && initialValues?.[name] && Array.isArray(initialValues[name])) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const selectedId = (initialValues[name] as Array<any>).find((item) => item === option.id || item?.id === option.id);\n if (selectedId) selected = true;\n }\n\n if (!initialValues?.[name] && Array.isArray(defaultValue)) {\n const selectedId = defaultValue.find((item) => item === option.id);\n if (selectedId) selected = true;\n }\n\n return { ...option, selected };\n });\n}\n\nexport const getMultiSelectFormValues = (options: ChopLogicMultiSelectValue[]): string[] => {\n return options.filter((item) => item.selected).map((item) => item.id);\n};\n\nexport const getMultiSelectUpdatedValues = (options: ChopLogicMultiSelectValue[], id: string): ChopLogicMultiSelectValue[] => {\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 { useCallback, useContext, useState } from 'react';\nimport { ChopLogicFormContext } from '@contexts';\nimport { useResetFormInput } from '@hooks';\nimport { ChopLogicMultiSelectValue, ChopLogicSelectValue } from '@models';\n\nimport { getMultiSelectFormValues, getMultiSelectInitialValues, getMultiSelectUpdatedValues } from './helpers';\n\nexport function useChopLogicMultiSelectController({\n name,\n defaultValue,\n onChange,\n options,\n}: {\n name: string;\n defaultValue?: string | number | readonly string[];\n onChange?: (values?: ChopLogicSelectValue[]) => void;\n options: ChopLogicSelectValue[];\n}) {\n const [opened, setOpened] = useState(false);\n const { onChangeFormInput, initialValues } = useContext(ChopLogicFormContext);\n const initialOptions = getMultiSelectInitialValues({ name, options, initialValues, defaultValue });\n const [values, setValues] = useState<ChopLogicMultiSelectValue[]>(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 React, { useRef } from 'react';\nimport { ChopLogicLabel } from '@elements';\nimport { useClickOutside, useElementIds, useKeyPress } from '@hooks';\nimport { ChopLogicMultiSelectProps } from '@models';\nimport SelectCombobox from './elements/Combobox';\nimport SelectDropdown from './elements/Dropdown';\nimport { useChopLogicMultiSelectController } from './controller';\nimport styles from '../select/Select.module.scss';\nimport { getClassName } from '@utils';\n\nconst ChopLogicMultiSelect: React.FC<ChopLogicMultiSelectProps> = ({\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 } = useChopLogicMultiSelectController({\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 <ChopLogicLabel label={label} required={required} inputId={elementId} />\n <SelectCombobox\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 <SelectDropdown options={values} opened={opened} onClose={handleClose} dropdownId={dropdownId} onSelect={handleSelect} />\n </div>\n );\n};\n\nexport default ChopLogicMultiSelect;\n","import { ChopLogicFormData, ChopLogicNumericInputValidator } from '@models';\n\nexport function getNumericInputInitialValue({\n name,\n initialValues,\n defaultValue,\n}: {\n name: string;\n initialValues?: ChopLogicFormData;\n defaultValue?: string | number | readonly string[];\n}): number {\n if (initialValues && initialValues[name]) {\n return Number(initialValues[name]);\n }\n\n if (defaultValue && typeof defaultValue === 'number') {\n return defaultValue;\n }\n\n return 0;\n}\n\nexport function validateNumericInputValue({\n value,\n required,\n validator,\n maxValue,\n minValue,\n}: {\n value?: number;\n required?: boolean;\n validator?: ChopLogicNumericInputValidator;\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 React, { ChangeEventHandler, useCallback, useContext, useState } from 'react';\nimport { ChopLogicFormContext } from '@contexts';\nimport { useResetFormInput } from '@hooks';\nimport { ChopLogicNumericInputValidator } from '@models';\n\nimport { getNumericInputInitialValue, validateNumericInputValue } from './helpers';\n\nexport function useChopLogicNumericInputController({\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?: ChopLogicNumericInputValidator;\n}) {\n const { onChangeFormInput, initialValues } = useContext(ChopLogicFormContext);\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: React.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 React from 'react';\nimport { ChopLogicErrorMessage, ChopLogicInputInnerButton, ChopLogicLabel } from '@elements';\nimport { ChopLogicIconName } from '@enums';\nimport { useElementIds } from '@hooks';\nimport { ChopLogicNumericInputProps } from '@models';\nimport { useChopLogicNumericInputController } from './controller';\nimport styles from './NumericInput.module.scss';\nimport { getClassName } from '@utils';\n\nconst ChopLogicNumericInput: React.FC<ChopLogicNumericInputProps> = ({\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 } = useChopLogicNumericInputController({\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 <ChopLogicLabel label={label} required={required} inputId={elementId} />\n <div>\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 <ChopLogicInputInnerButton\n onClick={decrement}\n label={`Decrement value for ${label}`}\n icon={ChopLogicIconName.ChevronLeft}\n disabled={disabled}\n />\n <ChopLogicInputInnerButton\n onClick={increment}\n label={`Increment value for ${label}`}\n icon={ChopLogicIconName.ChevronRight}\n disabled={disabled}\n />\n </span>\n )}\n </div>\n <ChopLogicErrorMessage errorId={errorId} message={errorMessage} visible={!valid} />\n </div>\n );\n};\n\nexport default ChopLogicNumericInput;\n","import React from 'react';\nimport ArrowDownIcon from '@assets/icons/svg/ArrowDownIcon.tsx';\nimport ArrowUpIcon from '@assets/icons/svg/ArrowUpIcon.tsx';\nimport { ChopLogicSelectValue } from '@models';\nimport styles from '../Select.module.scss';\n\ntype SelectComboboxProps = {\n opened: boolean;\n disabled: boolean;\n required: boolean;\n onClick: () => void;\n comboboxId: string;\n dropdownId: string;\n selected?: ChopLogicSelectValue;\n placeholder?: string;\n name: string;\n};\n\nconst SelectCombobox: React.FC<SelectComboboxProps> = ({\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\nexport default SelectCombobox;\n","import React, { KeyboardEvent } from 'react';\nimport CheckMarkIcon from '@assets/icons/svg/CheckMarkIcon.tsx';\nimport { ChopLogicSelectValue } from '@models';\nimport styles from '../Select.module.scss';\nimport { getClassName } from '@utils';\n\ntype SelectOptionProps = {\n value: ChopLogicSelectValue;\n selected: boolean;\n onSelect: (id: string) => void;\n onClear: () => void;\n};\n\nconst SelectOption: React.FC<SelectOptionProps> = ({ 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\nexport default SelectOption;\n","import React from 'react';\nimport { ChopLogicSelectValue } from '@models';\nimport { getClassName, handleDropdownListKeyPress, moveFocusOnElementById } from '@utils';\nimport styles from '../Select.module.scss';\nimport SelectOption from './Option';\n\ntype SelectDropdownProps = {\n options: ChopLogicSelectValue[];\n opened: boolean;\n dropdownId: string;\n comboboxId: string;\n onClose: () => void;\n selected?: ChopLogicSelectValue;\n onSelect: (id: string) => void;\n onClear: () => void;\n};\n\nconst SelectDropdown: React.FC<SelectDropdownProps> = ({\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\nexport default SelectDropdown;\n","import { ChopLogicFormData, ChopLogicSelectValue } from '@models';\n\nexport function getSelectInitialValue({\n name,\n options,\n initialValues,\n defaultValue,\n}: {\n name: string;\n options: ChopLogicSelectValue[];\n initialValues?: ChopLogicFormData;\n defaultValue?: string | number | readonly string[];\n}): ChopLogicSelectValue | undefined {\n let valueId: string;\n\n if (initialValues && initialValues[name]) {\n valueId = ((initialValues[name] as ChopLogicSelectValue)?.id as string) ?? (initialValues[name] as string);\n }\n\n if (!initialValues?.[name] && defaultValue && typeof defaultValue === 'string') {\n valueId = defaultValue;\n }\n\n return options.find((item) => item.id === valueId);\n}\n","import { useCallback, useContext, useState } from 'react';\nimport { ChopLogicFormContext } from '@contexts';\nimport { useResetFormInput } from '@hooks';\nimport { ChopLogicSelectValue } from '@models';\n\nimport { getSelectInitialValue } from './helpers';\n\nexport function useChopLogicSelectController({\n name,\n defaultValue,\n onChange,\n options,\n}: {\n name: string;\n defaultValue?: string | number | readonly string[];\n onChange?: (value?: ChopLogicSelectValue) => void;\n options: ChopLogicSelectValue[];\n}) {\n const { onChangeFormInput, initialValues } = useContext(ChopLogicFormContext);\n const initialValue = getSelectInitialValue({ name, options, defaultValue, initialValues });\n const [opened, setOpened] = useState(false);\n const [selected, setSelected] = useState<ChopLogicSelectValue | 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 React, { useRef } from 'react';\nimport { ChopLogicLabel } from '@elements';\nimport { useClickOutside, useElementIds, useKeyPress } from '@hooks';\nimport { ChopLogicSelectProps } from '@models';\nimport SelectCombobox from './elements/Combobox';\nimport SelectDropdown from './elements/Dropdown';\nimport { useChopLogicSelectController } from './controller';\nimport { getClassName } from '@utils';\nimport styles from './Select.module.scss';\n\nconst ChopLogicSelect: React.FC<ChopLogicSelectProps> = ({\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 } = useChopLogicSelectController({\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 <ChopLogicLabel 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 ChopLogicSelect;\n","import { ChopLogicFormData, ChopLogicRegExpWithFlags, ChopLogicTextInputValidator } from '@models';\n\nexport function validateTextInputValue({\n value,\n required,\n validator,\n}: {\n value: string;\n required: boolean;\n validator?: ChopLogicRegExpWithFlags | ChopLogicTextInputValidator;\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?: ChopLogicFormData;\n defaultValue?: string | number | readonly string[];\n}): string {\n if (initialValues && initialValues?.[name]) {\n return (initialValues[name] as string).toString();\n }\n\n if (defaultValue && typeof defaultValue === 'string') {\n return defaultValue;\n }\n\n return '';\n}\n","import React, { ChangeEventHandler, useCallback, useContext, useState } from 'react';\nimport { ChopLogicFormContext } from '@contexts';\nimport { useResetFormInput } from '@hooks';\nimport { ChopLogicRegExpWithFlags, ChopLogicTextInputValidator } from '@models';\n\nimport { getTextInputInitialValue, validateTextInputValue } from './helpers';\n\nexport function useChopLogicTextInputController({\n name,\n defaultValue,\n onChange,\n onClear,\n required,\n validator,\n}: {\n name: string;\n required: boolean;\n validator?: ChopLogicRegExpWithFlags | ChopLogicTextInputValidator;\n defaultValue?: string | number | readonly string[];\n onChange?: ChangeEventHandler<HTMLInputElement>;\n onClear?: () => void;\n}) {\n const { onChangeFormInput, initialValues } = useContext(ChopLogicFormContext);\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: React.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 React from 'react';\nimport { ChopLogicErrorMessage, ChopLogicInputInnerButton, ChopLogicLabel } from '@elements';\nimport { ChopLogicIconName } from '@enums';\nimport { useElementIds } from '@hooks';\nimport { ChopLogicTextInputProps } from '@models';\nimport { useChopLogicTextInputController } from './controller';\nimport { getClassName } from '@utils';\nimport styles from './TextInput.module.scss';\n\nconst ChopLogicTextInput: React.FC<ChopLogicTextInputProps> = ({\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 } = useChopLogicTextInputController({\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.text, className]);\n\n return (\n <div {...rest} className={inputClass}>\n <ChopLogicLabel label={label} required={required} inputId={elementId} />\n <div>\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 <ChopLogicInputInnerButton\n onClick={handleClear}\n label={`Clear input for ${label}`}\n icon={ChopLogicIconName.Remove}\n disabled={disabled}\n />\n )}\n {isPasswordButtonVisible && (\n <ChopLogicInputInnerButton\n onClick={togglePassword}\n label='Toggle password visibility'\n icon={passwordShown ? ChopLogicIconName.Hide : ChopLogicIconName.Show}\n disabled={disabled}\n />\n )}\n </span>\n </div>\n <ChopLogicErrorMessage errorId={errorId} message={errorMessage} visible={!valid} />\n </div>\n );\n};\n\nexport default ChopLogicTextInput;\n","import React from 'react';\nimport { ChopLogicButton } from '@components';\nimport { ChopLogicButtonView, ChopLogicIconName } from '@enums';\nimport styles from './Header.module.scss';\n\nconst ChopLogicModalLayoutHeader: React.FC<{\n title: string;\n onClose: () => void;\n}> = ({ title, onClose }): React.ReactElement => {\n return (\n <header className={styles.header}>\n {title}\n <ChopLogicButton icon={ChopLogicIconName.Cancel} view={ChopLogicButtonView.Icon} label='Close modal window' onClick={onClose} />\n </header>\n );\n};\n\nexport default ChopLogicModalLayoutHeader;\n","import React, { HTMLAttributes, PropsWithChildren, useRef } from 'react';\nimport { useKeyPress, useModalFocusTrap } from '@hooks';\nimport styles from './Layout.module.scss';\nimport ChopLogicModalLayoutHeader from '../Header';\n\ntype DialogLayoutProps = PropsWithChildren &\n HTMLAttributes<HTMLDivElement> & {\n title: string;\n onClose: () => void;\n isOpened: boolean;\n };\n\nconst ChopLogicModalLayout: React.FC<DialogLayoutProps> = ({ title, onClose, isOpened, children, ...rest }): React.ReactElement => {\n const modalRef = useRef<HTMLDivElement>(null);\n\n useModalFocusTrap({ modalRef, isOpened });\n useKeyPress({ keyCode: 'Escape', ref: modalRef, onKeyPress: onClose });\n\n return (\n <div ref={modalRef} role='dialog' aria-modal='true' {...rest} className={styles.layout}>\n <ChopLogicModalLayoutHeader title={title} onClose={onClose} />\n <div className={styles.content}>{children}</div>\n </div>\n );\n};\n\nexport default ChopLogicModalLayout;\n","import React from 'react';\nimport { ChopLogicPortal } from '@components';\nimport { useMount } from '@hooks';\nimport { ChopLogicDialogProps } from '@models';\n\nimport ChopLogicModalLayout from './elements/Layout';\nimport styles from './Dialog.module.scss';\nimport { getClassName } from '@utils';\n\nconst ChopLogicDialog: React.FC<ChopLogicDialogProps> = ({ isOpened, onClose, title, children, ...rest }) => {\n const isMounted = useMount(isOpened);\n const isClosing = isMounted && !isOpened;\n\n if (!isMounted) {\n return null;\n }\n\n return (\n <ChopLogicPortal>\n <div className={getClassName([styles.dialog, { [styles.dialog__closing]: isClosing }])}>\n <ChopLogicModalLayout title={title} onClose={onClose} isOpened={isOpened} {...rest}>\n {children}\n </ChopLogicModalLayout>\n </div>\n </ChopLogicPortal>\n );\n};\n\nexport default ChopLogicDialog;\n","import React, { useRef, useState } from 'react';\nimport { useClickOutside, useElementIds, useKeyPress, useTooltipPosition } from '@hooks';\n\nexport const useChopLogicTooltipController = ({ id }: { id?: string }) => {\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: React.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\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 React from 'react';\nimport { ChopLogicPortal } from '@components';\nimport { ChopLogicTooltipContainer } from '@enums';\nimport { ChopLogicTooltipProps } from '@models';\nimport { useChopLogicTooltipController } from './controller';\nimport { getClassName } from '@utils';\nimport styles from './Tooltip.module.scss';\n\nconst ChopLogicTooltip: React.FC<ChopLogicTooltipProps> = ({\n children,\n tooltipContent,\n containerTag = ChopLogicTooltipContainer.Span,\n visibleOn = 'hover',\n id,\n style,\n className,\n ...rest\n}) => {\n const ContainerComponent = containerTag;\n const { openTooltip, closeTooltip, toggleTooltip, handleContextMenu, elementId, top, left, isOpened, wrapperRef, tooltipRef } =\n useChopLogicTooltipController({ id });\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: React.MouseEvent) => handleContextMenu(e) : undefined}\n tabIndex={0}\n ref={wrapperRef}\n aria-describedby={elementId}\n >\n {children}\n {isOpened && (\n <ChopLogicPortal>\n <div style={{ ...style, top, left }} ref={tooltipRef} role='tooltip' id={elementId} {...rest} className={tooltipClass}>\n {tooltipContent}\n </div>\n </ChopLogicPortal>\n )}\n </ContainerComponent>\n );\n};\n\nexport default ChopLogicTooltip;\n","import { ChopLogicFormData, ChopLogicFormInputParams, ChopLogicFormValidationState } from '@models';\n\nexport function getInitialValidationState(data?: ChopLogicFormData): ChopLogicFormValidationState {\n if (!data) return [];\n\n return Object.keys(data).map((key) => [key, true]);\n}\n\nexport function updateValidationState(state: ChopLogicFormValidationState, params: ChopLogicFormInputParams): ChopLogicFormValidationState {\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: ChopLogicFormValidationState): boolean {\n return state.every((item) => item[1]);\n}\n","import React, { FormEvent, useState } from 'react';\nimport { ChopLogicFormData, ChopLogicFormInputParams } from '@models';\n\nimport { getInitialValidationState, isFormDataValid, updateValidationState } from './helpers';\n\nexport function useChopLogicFormController({\n initialValues,\n onReset,\n onSubmit,\n onClickSubmit,\n}: {\n initialValues?: ChopLogicFormData;\n onReset?: React.FormEventHandler<HTMLFormElement>;\n onSubmit?: React.FormEventHandler<HTMLFormElement>;\n onClickSubmit?: (data: ChopLogicFormData) => 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: ChopLogicFormInputParams) => {\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 React from 'react';\nimport { ChopLogicButton } from '@components';\nimport { ChopLogicFormContext } from '@contexts';\nimport { ChopLogicButtonView, ChopLogicIconName } from '@enums';\nimport { ChopLogicFormProps } from '@models';\nimport styles from './Form.module.scss';\nimport { useChopLogicFormController } from './controller';\nimport { getClassName } from '@utils';\n\nconst ChopLogicForm: React.FC<ChopLogicFormProps> = ({\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 } = useChopLogicFormController({\n initialValues,\n onReset,\n onSubmit,\n onClickSubmit,\n });\n const columnsNumber = columns <= 6 && columns >= 1 ? columns : 1;\n const formClass = getClassName([styles.form, className]);\n\n return (\n <form onSubmit={handleSubmit} onReset={handleReset} {...rest} className={`${formClass} ${styles[`columns-${columnsNumber}`]}`}>\n <ChopLogicFormContext.Provider value={{ onChangeFormInput: handleInputChange, initialValues, resetSignal }}>\n {children}\n <div className={`${styles.buttons} ${styles[`buttons-${columnsNumber}`]}`}>\n {hasReset && <ChopLogicButton type='reset' text='Reset' icon={ChopLogicIconName.Clear} view={ChopLogicButtonView.Flat} />}\n <ChopLogicButton type='submit' text='Submit' icon={ChopLogicIconName.Forward} extended={!hasReset} disabled={!valid} />\n </div>\n </ChopLogicFormContext.Provider>\n </form>\n );\n};\n\nexport default ChopLogicForm;\n","import React from 'react';\nimport { ChopLogicGridColumn, ChopLogicGridItem, RenderDataItemCallback } from '@models';\n\nexport function getGridRowValues({\n item,\n columns,\n renderDataItem,\n}: {\n item: ChopLogicGridItem;\n columns: ChopLogicGridColumn[];\n renderDataItem?: RenderDataItemCallback;\n}): (string | React.ReactElement)[] {\n const values = [];\n for (const column of columns) {\n let value;\n\n if (renderDataItem && item[column.field]) {\n value = renderDataItem(item, column.field);\n } else if (item[column.field]) {\n value = (item[column.field] as string).toString();\n } else {\n value = '';\n }\n\n values.push(value);\n }\n\n return values;\n}\n","import React from 'react';\nimport styles from '../Grid.module.scss';\n\nconst GridDataCell: React.FC<{ value: React.ReactElement | string }> = ({ value }) => {\n return <td className={styles.grid_cell}>{value}</td>;\n};\n\nexport default GridDataCell;\n","import React from 'react';\nimport { ChopLogicLabel } from '@elements';\nimport { useElementIds } from '@hooks';\nimport CheckboxCheckedIcon from '@assets/icons/svg/CheckboxCheckedIcon.tsx';\nimport CheckboxUncheckedIcon from '@assets/icons/svg/CheckboxUncheckedIcon.tsx';\nimport styles from '../Grid.module.scss';\nimport { getClassName } from '@utils';\n\ntype ChopLogicGridCheckboxProps = React.InputHTMLAttributes<HTMLInputElement> & {\n label: string;\n};\n\nconst GridCheckbox: React.FC<ChopLogicGridCheckboxProps> = ({\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 <ChopLogicLabel\n label={label}\n required={required}\n inputId={elementId}\n isTextHidden={true}\n iconPosition='left'\n icon={checked ? <CheckboxCheckedIcon /> : <CheckboxUncheckedIcon />}\n />\n </div>\n );\n};\n\nexport default GridCheckbox;\n","import React from 'react';\nimport styles from '../Grid.module.scss';\nimport GridCheckbox from './Checkbox';\n\ntype SelectAllGridRowsCheckbox = {\n rowId: string;\n isRowSelected: boolean;\n selectRowById: (id: string) => void;\n deselectRowById: (id: string) => void;\n disabled?: boolean;\n};\n\nconst SelectGridRowCell: React.FC<SelectAllGridRowsCheckbox> = ({ rowId, isRowSelected, selectRowById, deselectRowById, disabled }) => {\n const handleSelectById = (e: React.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.grid_cell}>\n <GridCheckbox label='Select row' onChange={handleSelectById} id={`select_row_${rowId}`} checked={isRowSelected} disabled={disabled} />\n </td>\n );\n};\n\nexport default SelectGridRowCell;\n","import React from 'react';\nimport styles from '../Grid.module.scss';\nimport GridDataCell from './DataCell';\nimport SelectGridRowCell from './SelectRowCell';\nimport { getClassName } from '@utils';\n\nexport type GridRowProps = {\n rowId: string;\n selectedIds: string[];\n selectRowById: (id: string) => void;\n deselectRowById: (id: string) => void;\n selectable: boolean;\n values: (string | React.ReactElement)[];\n disabled?: boolean;\n};\n\nconst GridRow: React.FC<GridRowProps> = ({ rowId, selectRowById, deselectRowById, selectable, values, selectedIds, disabled }) => {\n const selected = selectedIds.includes(rowId);\n\n return (\n <tr className={getClassName([styles.grid_row, { [styles.grid_row__selected]: selected }])}>\n {selectable && (\n <SelectGridRowCell\n rowId={rowId}\n selectRowById={selectRowById}\n deselectRowById={deselectRowById}\n isRowSelected={selected}\n disabled={disabled}\n />\n )}\n {values.map((value, index) => (\n <GridDataCell key={`row_${index}`} value={value} />\n ))}\n </tr>\n );\n};\n\nexport default GridRow;\n","import React from 'react';\nimport { ChopLogicGridColumn, ChopLogicGridItem, RenderDataItemCallback } from '@models';\nimport { getGridRowValues } from '../helpers';\nimport GridRow from './Row';\nimport styles from '../Grid.module.scss';\n\ntype ChopLogicGridBodyProps = {\n data: ChopLogicGridItem[];\n columns: ChopLogicGridColumn[];\n selectedIds: string[];\n selectRowById: (id: string) => void;\n deselectRowById: (id: string) => void;\n renderDataItem?: RenderDataItemCallback;\n selectable: boolean;\n};\n\nconst ChopLogicGridBody: React.FC<ChopLogicGridBodyProps> = ({\n selectRowById,\n deselectRowById,\n renderDataItem,\n selectedIds,\n selectable,\n data,\n columns,\n}) => {\n return (\n <tbody className={styles.grid_body}>\n {data.map((item) => {\n const values = getGridRowValues({ item, columns, renderDataItem });\n return (\n <GridRow\n key={item.id}\n rowId={item.id}\n disabled={item?.disabled}\n selectRowById={selectRowById}\n deselectRowById={deselectRowById}\n selectable={selectable}\n values={values}\n selectedIds={selectedIds}\n />\n );\n })}\n </tbody>\n );\n};\n\nexport default ChopLogicGridBody;\n","import React from 'react';\nimport { ChopLogicGridColumn } from '@models';\nimport styles from '../Grid.module.scss';\nimport { getClassName } from '@utils';\n\nconst GridColumnGroup: React.FC<{ columns: ChopLogicGridColumn[]; selectable: boolean }> = ({ columns, selectable }) => {\n return (\n <colgroup>\n {selectable && <col className={getClassName([styles.grid_column, styles.grid_column__first])} />}\n {columns.map((column, index) => (\n <col\n key={column?.title}\n className={getClassName([\n styles.grid_column,\n column?.className,\n {\n [styles.grid_column__first]: index === 0 && !selectable,\n [styles.grid_column__highlighted]: !!column?.highlighted,\n },\n ])}\n />\n ))}\n </colgroup>\n );\n};\n\nexport default GridColumnGroup;\n","import React from 'react';\nimport styles from '../Grid.module.scss';\n\nconst GridHeaderCell: React.FC<{ title?: string; component?: React.ReactElement }> = ({ title, component }) => {\n return <th className={styles.header_cell}>{component ?? title ?? ''}</th>;\n};\n\nexport default GridHeaderCell;\n","import React from 'react';\nimport styles from '../Grid.module.scss';\nimport GridCheckbox from './Checkbox';\n\ntype SelectAllGridRowsCheckbox = {\n gridId: string;\n isAllSelected: boolean;\n selectAll: () => void;\n deselectAll: () => void;\n disabled?: boolean;\n};\n\nconst SelectAllRowsCell: React.FC<SelectAllGridRowsCheckbox> = ({ gridId, isAllSelected, selectAll, deselectAll, disabled }) => {\n const handleSelectAll = (e: React.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.header_cell}>\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\nexport default SelectAllRowsCell;\n","import React from 'react';\nimport { ChopLogicGridColumn } from '@models';\nimport styles from '../Grid.module.scss';\nimport GridHeaderCell from './HeaderCell';\nimport SelectAllRowsCell from './SelectAllRowsCell';\n\ntype ChopLogicGridHeadProps = {\n columns: ChopLogicGridColumn[];\n gridId: string;\n selectable: boolean;\n isAllSelected: boolean;\n isAllCheckboxDisabled?: boolean;\n selectAll: () => void;\n deselectAll: () => void;\n};\n\nconst ChopLogicGridHead: React.FC<ChopLogicGridHeadProps> = ({\n columns,\n gridId,\n selectAll,\n deselectAll,\n selectable,\n isAllSelected,\n isAllCheckboxDisabled = false,\n}) => {\n return (\n <thead className={styles.header}>\n <tr className={styles.header_row}>\n {selectable && (\n <SelectAllRowsCell\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\nexport default ChopLogicGridHead;\n","import { useState } from 'react';\nimport { useElementIds } from '@hooks';\nimport { ChopLogicGridItem } from '@models';\n\nexport const useChopLogicGridController = ({\n data,\n id,\n onSelect,\n}: {\n data: ChopLogicGridItem[];\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 React from 'react';\nimport { ChopLogicGridProps } from '@models';\nimport ChopLogicGridBody from './elements/Body';\nimport GridColumnGroup from './elements/ColumnGroup';\nimport ChopLogicGridHead from './elements/Head';\nimport { useChopLogicGridController } from './controller';\nimport styles from './Grid.module.scss';\nimport { getClassName } from '@utils';\n\nconst ChopLogicGrid: React.FC<ChopLogicGridProps> = ({\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 } = useChopLogicGridController({ 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 <ChopLogicGridHead\n gridId={elementId}\n columns={columns}\n selectable={selectable}\n selectAll={handleSelectAll}\n deselectAll={handleDeselectAll}\n isAllSelected={isAllSelected}\n isAllCheckboxDisabled={isAllCheckboxDisabled}\n />\n <ChopLogicGridBody\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 ChopLogicGrid;\n","import React from 'react';\nimport { ChopLogicIcon } from '@elements';\nimport { ChopLogicMenuItem } from '@models';\nimport styles from '../Menu.module.scss';\n\nconst MenuLeaf = ({ item }: { item: ChopLogicMenuItem }): React.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 <ChopLogicIcon name={icon} />\n {leafContent}\n </li>\n );\n};\n\nexport default MenuLeaf;\n","import React, { PropsWithChildren, useRef } from 'react';\nimport { ChopLogicIcon } from '@elements';\nimport { ChopLogicIconName, ChopLogicOrientationMode } from '@enums';\nimport { useClickOutside } from '@hooks';\nimport { ChopLogicMenuItem } from '@models';\nimport styles from '../Menu.module.scss';\n\ntype SubMenuProps = PropsWithChildren & {\n item: ChopLogicMenuItem;\n isSubMenuOpened: boolean;\n mode: ChopLogicOrientationMode;\n toggleSubMenu: () => void;\n closeSubMenu: () => void;\n};\n\nconst SubMenu: React.FC<SubMenuProps> = ({ item, isSubMenuOpened, toggleSubMenu, closeSubMenu, 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 <ChopLogicIcon name={icon} />\n {label}\n </a>\n ) : (\n <span>\n <ChopLogicIcon name={icon} />\n {label}\n </span>\n );\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLLIElement>) => {\n e.stopPropagation();\n if (e.key === ' ') {\n toggleSubMenu();\n }\n };\n\n const onClickOutsideHandler = () => {\n if (mode === ChopLogicOrientationMode.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 ref={ref}\n >\n <span className={styles.text} ref={dependentRef} onClick={toggleSubMenu}>\n {itemContent}\n <ChopLogicIcon name={isSubMenuOpened ? ChopLogicIconName.ArrowUp : ChopLogicIconName.ArrowDown} />\n </span>\n {isSubMenuOpened && children}\n </li>\n );\n};\n\nexport default SubMenu;\n","import React, { PropsWithChildren, useState } from 'react';\nimport { ChopLogicOrientationMode } from '@enums';\nimport { ChopLogicMenuItem } from '@models';\nimport styles from '../Menu.module.scss';\nimport MenuLeaf from './MenuLeaf';\nimport SubMenu from './SubMenu.tsx';\nimport { getClassName } from '@utils';\n\ntype MenuItemProps = PropsWithChildren & {\n item: ChopLogicMenuItem;\n mode: ChopLogicOrientationMode;\n};\n\nconst MenuItem: React.FC<MenuItemProps> = ({ item, mode }) => {\n const isLeaf = !item?.nestedItems?.length;\n const [isSubMenuOpened, setIsSubMenuOpened] = useState(false);\n const subMenuBarClass = getClassName([\n styles.subMenuBar,\n { [styles.subMenuBar__horizontal]: mode === ChopLogicOrientationMode.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 return (\n <SubMenu item={item} isSubMenuOpened={isSubMenuOpened} toggleSubMenu={toggleSubMenu} closeSubMenu={closeSubMenu} mode={mode}>\n <ul className={subMenuBarClass} role='menu' aria-label={item.label}>\n {item?.nestedItems?.map((child) => <MenuItem item={child} key={child.id} mode={mode} />)}\n </ul>\n </SubMenu>\n );\n};\n\nexport default MenuItem;\n","import React from 'react';\nimport { ChopLogicOrientationMode } from '@enums';\nimport { ChopLogicMenuProps } from '@models';\nimport MenuItem from './elements/MenuItem.tsx';\nimport styles from './Menu.module.scss';\nimport { getClassName } from '@utils';\n\nconst ChopLogicMenu: React.FC<ChopLogicMenuProps> = ({ items, mode = ChopLogicOrientationMode.Vertical, className, ...rest }) => {\n const menuClass = getClassName([styles.menuBar, className, { [styles.menuBar__vertical]: mode === ChopLogicOrientationMode.Vertical }]);\n\n return (\n <ul {...rest} role='menubar' className={menuClass}>\n {items.map((item) => (\n <MenuItem key={item.id} item={item} mode={mode} />\n ))}\n </ul>\n );\n};\n\nexport default ChopLogicMenu;\n","import React, { useEffect, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\nconst ChopLogicPortal = ({ children }: { children: React.ReactElement }): React.ReactPortal => {\n const [container] = useState(() => document.createElement('div'));\n\n useEffect(() => {\n // Append a new portal at the end of the body element on mount\n document.body.appendChild(container);\n\n // Remove the portal on unmount\n return () => {\n document.body.removeChild(container);\n };\n }, [container]);\n\n return ReactDOM.createPortal(children, container);\n};\n\nexport default ChopLogicPortal;\n","import React from 'react';\nimport { ChopLogicTabItem } from '@models';\nimport styles from '../Tabs.module.scss';\n\nconst ChopLogicTabContent: React.FC<{\n tabs: ChopLogicTabItem[];\n selectedTabId: string;\n}> = ({ tabs, selectedTabId }): React.ReactElement => {\n const content = tabs.find((item) => item.id === selectedTabId)?.content;\n const contentId = `tabpanel_${selectedTabId}`;\n\n return (\n <div role='tabpanel' aria-labelledby={selectedTabId} id={contentId} className={styles.tabContent}>\n {content}\n </div>\n );\n};\n\nexport default ChopLogicTabContent;\n","import React from 'react';\nimport { ChopLogicOrientationMode } from '@enums';\nimport { getClassName } from '@utils';\nimport styles from '../Tabs.module.scss';\n\ntype ChopLogicTabButtonProps = {\n title: string;\n tabId: string;\n onTabSelect: (id: string) => void;\n tabPanelId: string;\n isSelected: boolean;\n mode: ChopLogicOrientationMode;\n isDisabled?: boolean;\n};\n\nconst ChopLogicTabButton: React.FC<ChopLogicTabButtonProps> = ({\n title,\n onTabSelect,\n tabId,\n isSelected,\n isDisabled = false,\n tabPanelId,\n mode,\n}) => {\n const buttonClass = getClassName([\n styles.tabButton,\n {\n [styles.tabButton__disabled]: isDisabled,\n [styles.tabButton__vertical]: mode === ChopLogicOrientationMode.Vertical,\n [styles.tabButton__selected]: isSelected,\n },\n ]);\n\n return (\n <button\n role='tab'\n id={tabId}\n onClick={() => onTabSelect(tabId)}\n aria-selected={isSelected}\n aria-controls={tabPanelId}\n className={buttonClass}\n >\n {title}\n </button>\n );\n};\n\nexport default ChopLogicTabButton;\n","import React, { KeyboardEvent } from 'react';\nimport { ChopLogicOrientationMode } from '@enums';\nimport { ChopLogicTabItem } from '@models';\nimport { getClassName, moveFocusOnElementById } from '@utils';\nimport ChopLogicTabButton from './TabButton';\nimport styles from '../Tabs.module.scss';\n\ntype ChopLogicTabListProps = {\n tabs: ChopLogicTabItem[];\n tabIds: string[];\n onTabSelect: (id: string) => void;\n selectedTabId: string;\n tabPanelIds: string[];\n mode: ChopLogicOrientationMode;\n};\n\nconst ChopLogicTabList: React.FC<ChopLogicTabListProps> = ({ tabs, onTabSelect, selectedTabId, tabPanelIds, mode, tabIds }) => {\n const listClass = getClassName([styles.tabList, { [styles.tabList__vertical]: mode === ChopLogicOrientationMode.Vertical }]);\n\n const handleListKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n const currentFocusedTabIndex = tabIds.findIndex((id) => id === selectedTabId);\n\n switch (e.key) {\n case 'ArrowLeft':\n case 'ArrowUp': {\n e.preventDefault();\n if (e.key === 'ArrowUp' && mode === ChopLogicOrientationMode.Horizontal) break;\n if (e.key === 'ArrowLeft' && mode === ChopLogicOrientationMode.Vertical) break;\n\n const previousTabIndex = currentFocusedTabIndex - 1 >= 0 ? currentFocusedTabIndex - 1 : tabIds.length - 1;\n const previousTabId = tabIds[previousTabIndex];\n if (previousTabId) {\n moveFocusOnElementById(previousTabId);\n onTabSelect(previousTabId);\n }\n break;\n }\n case 'ArrowRight':\n case 'ArrowDown': {\n e.preventDefault();\n if (e.key === 'ArrowDown' && mode === ChopLogicOrientationMode.Horizontal) break;\n if (e.key === 'ArrowRight' && mode === ChopLogicOrientationMode.Vertical) break;\n\n const nextTabIndex = currentFocusedTabIndex === tabIds.length - 1 ? 0 : currentFocusedTabIndex + 1;\n const nextTabId = tabIds[nextTabIndex];\n if (nextTabId) {\n moveFocusOnElementById(nextTabId);\n onTabSelect(nextTabId);\n }\n break;\n }\n default:\n break;\n }\n };\n\n return (\n <div role='tablist' onKeyDown={handleListKeyDown} className={listClass}>\n {tabs.map(({ id, title, disabled }, index) => {\n return (\n <ChopLogicTabButton\n key={id}\n title={title}\n onTabSelect={onTabSelect}\n tabId={id}\n isSelected={id === selectedTabId}\n isDisabled={disabled}\n tabPanelId={tabPanelIds[index]}\n mode={mode}\n />\n );\n })}\n </div>\n );\n};\n\nexport default ChopLogicTabList;\n","import React, { useState } from 'react';\nimport { ChopLogicOrientationMode } from '@enums';\nimport { ChopLogicTabsProps } from '@models';\nimport ChopLogicTabContent from './elements/TabContent';\nimport ChopLogicTabList from './elements/TabList';\nimport { getClassName } from '@utils';\nimport styles from './Tabs.module.scss';\n\nconst ChopLogicTabs: React.FC<ChopLogicTabsProps> = ({\n tabs,\n defaultTabId,\n mode = ChopLogicOrientationMode.Horizontal,\n className,\n ...rest\n}) => {\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 === ChopLogicOrientationMode.Vertical }]);\n\n const handleTabSelect = (id: string) => {\n setSelectedTabId(id);\n };\n\n return (\n <div {...rest} className={tabsClass}>\n <ChopLogicTabList\n tabs={tabs}\n selectedTabId={selectedTabId}\n tabPanelIds={tabPanelIds}\n onTabSelect={handleTabSelect}\n mode={mode}\n tabIds={tabIds}\n />\n <ChopLogicTabContent tabs={tabs} selectedTabId={selectedTabId} />\n </div>\n );\n};\n\nexport default ChopLogicTabs;\n","import React from 'react';\nimport { ChopLogicIcon } from '@elements';\nimport { ChopLogicAlertMode, ChopLogicIconName } from '@enums';\nimport CheckMarkIcon from '@assets/icons/svg/CheckMarkIcon.tsx';\nimport ErrorIcon from '@assets/icons/svg/ErrorIcon.tsx';\nimport HelpIcon from '@assets/icons/svg/HelpIcon.tsx';\nimport InfoIcon from '@assets/icons/svg/InfoIcon.tsx';\nimport WarningIcon from '@assets/icons/svg/WarningIcon.tsx';\n\nexport function getAlertTitle(mode: ChopLogicAlertMode, title?: string): string {\n if (title) return title;\n\n switch (mode) {\n case ChopLogicAlertMode.Info:\n return 'For your information';\n case ChopLogicAlertMode.Warning:\n return 'Please pay attention';\n case ChopLogicAlertMode.Error:\n return 'Something went wrong';\n case ChopLogicAlertMode.Success:\n return 'Everything is okay';\n case ChopLogicAlertMode.Help:\n return 'Useful tip';\n default:\n return 'Alert';\n }\n}\n\nexport function renderAlertIcon(mode: ChopLogicAlertMode, icon?: ChopLogicIconName): React.ReactElement | null {\n if (icon) {\n return <ChopLogicIcon name={icon} />;\n }\n\n switch (mode) {\n case ChopLogicAlertMode.Info:\n return <InfoIcon />;\n case ChopLogicAlertMode.Warning:\n return <WarningIcon />;\n case ChopLogicAlertMode.Error:\n return <ErrorIcon />;\n case ChopLogicAlertMode.Success:\n return <CheckMarkIcon />;\n case ChopLogicAlertMode.Help:\n return <HelpIcon />;\n default:\n return null;\n }\n}\n","import React from 'react';\nimport { ChopLogicButton } from '@components';\nimport { ChopLogicAlertMode, ChopLogicButtonView, ChopLogicIconName } from '@enums';\nimport styles from './AlertHeader.module.scss';\nimport { getAlertTitle, renderAlertIcon } from '../helpers';\n\ntype AlertHeaderProps = {\n onClose: () => void;\n mode: ChopLogicAlertMode;\n title?: string;\n icon?: ChopLogicIconName;\n};\n\nconst AlertHeader: React.FC<AlertHeaderProps> = ({ title, onClose, mode, icon }) => {\n const alertTitle = getAlertTitle(mode, title);\n const alertIcon = renderAlertIcon(mode, icon);\n\n return (\n <header className={styles.header}>\n <h3>\n {alertIcon}\n {alertTitle}\n </h3>\n <ChopLogicButton icon={ChopLogicIconName.Cancel} view={ChopLogicButtonView.Icon} label='Close alert popup' onClick={onClose} />\n </header>\n );\n};\n\nexport default AlertHeader;\n","import React from 'react';\nimport { ChopLogicPortal } from '@components';\nimport { ChopLogicAlertMode } from '@enums';\nimport { useMount } from '@hooks';\nimport { ChopLogicAlertProps } from '@models';\nimport AlertHeader from './elements/AlertHeader.tsx';\nimport styles from './Alert.module.scss';\nimport { getClassName } from '@utils';\n\nconst ChopLogicAlert: React.FC<ChopLogicAlertProps> = ({\n isOpened,\n onClose,\n title,\n message,\n mode = ChopLogicAlertMode.Info,\n icon,\n ...rest\n}) => {\n const isMounted = useMount(isOpened);\n const isClosing = isMounted && !isOpened;\n\n if (!isMounted) return null;\n\n return (\n <ChopLogicPortal>\n <div className={getClassName([styles.wrapper, { [styles.wrapper__closing]: isClosing }])}>\n <div {...rest} className={styles.content}>\n <AlertHeader title={title} onClose={onClose} mode={mode} icon={icon} />\n <p>{message}</p>\n </div>\n </div>\n </ChopLogicPortal>\n );\n};\n\nexport default ChopLogicAlert;\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","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","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","getClassName","input","item","trueKeys","ChopLogicErrorMessage","errorId","testId","message","visible","style","jsx","styles","ArrowDownIcon","title","rest","jsxs","ArrowUpIcon","BackIcon","CancelIcon","CheckboxCheckedIcon","CheckboxUncheckedIcon","CheckMarkIcon","ChevronDownIcon","ChevronLeftIcon","ChevronRightIcon","ChevronUpIcon","ClearIcon","CopyIcon","CutIcon","DeleteIcon","DownloadIcon","ErrorIcon","ForwardIcon","GraduateIcon","HelpIcon","HideIcon","HomeIcon","InfoIcon","LoginIcon","PasteIcon","QuestionIcon","RemoveIcon","SaveIcon","ShowIcon","UploadIcon","WarningIcon","ChopLogicAlertMode","ChopLogicButtonView","ChopLogicIconName","ChopLogicLoaderView","ChopLogicOrientationMode","ChopLogicThemeMode","ChopLogicTooltipContainer","ChopLogicIconDictionary","ChopLogicIcon","Component","InputInnerButton","onClick","label","icon","disabled","ChopLogicLabel","required","inputId","iconPosition","isTextHidden","isLeftIconVisible","isRightIconVisible","withTooltip","tooltip","visibleOn","ChopLogicTooltip","moveFocusOnElementById","id","element","handleDropdownListKeyPress","options","onClose","focusedId","currentFocusIndex","previousOptionIndex","previousValue","nextOptionIndex","nextValue","ChopLogicButton","text","extended","view","className","primaryClassName","flatClassName","iconClassName","ChopLogicButton$1","useClickOutside","ref","onClickOutsideHandler","dependentRef","useEffect","handleClickOutside","event","isOutsideRef","isOutsideDependentRef","useContainerDimensions","isVisible","dimensions","setDimensions","useState","useElementIds","randomId","useId","elementId","dropdownId","useKeyPress","keyCode","onKeyPress","handleKeyPress","e","useModalFocusTrap","modalRef","isOpened","modalElement","focusableElements","firstElement","lastElement","handleTabKeyPress","useMount","delay","isMounted","setIsMounted","ChopLogicFormContext","ChopLogicThemeContext","createContext","ChopLogicThemeProvider","injectedMode","mode","setMode","useResetFormInput","onReset","resetSignal","useContext","getWindowDimensions","width","height","useWindowDimensions","windowDimensions","setWindowDimensions","handleResize","useTooltipPosition","wrapperRef","tooltipRef","spacing","position","setPosition","tooltipWidth","tooltipHeight","windowWidth","windowHeight","rect","top","left","useChopLogicTheme","getCheckboxInitialValue","defaultChecked","initialValues","useChopLogicCheckboxController","onChange","onChangeFormInput","initialValue","isChecked","setIsChecked","handleChange","checked","handleReset","useCallback","ChopLogicCheckbox","noLabel","checkboxClass","SelectCombobox","opened","comboboxId","placeholder","values","selectedLabels","selectedIds","selectedValues","SelectOption","onSelect","selected","optionClass","handleKeyDown","MultiSelectDropdown","dropdownClass","getMultiSelectInitialValues","defaultValue","option","getMultiSelectFormValues","getMultiSelectUpdatedValues","targetItem","useChopLogicMultiSelectController","setOpened","initialOptions","setValues","handleClose","handleToggle","handleSelect","newValues","ChopLogicMultiSelect","useRef","multiSelectClass","SelectDropdown","getNumericInputInitialValue","validateNumericInputValue","validator","maxValue","minValue","useChopLogicNumericInputController","onSpinButtonClick","min","max","step","setValue","valid","setValid","updateValue","increment","decrement","ChopLogicNumericInput","errorMessage","onBlur","onFocus","tabIndex","readOnly","hasSpinButtons","inputClass","ChopLogicInputInnerButton","onClear","handleOptionSelect","getSelectInitialValue","valueId","_a","useChopLogicSelectController","setSelected","newValue","handleClear","ChopLogicSelect","selectClass","validateTextInputValue","getTextInputInitialValue","useChopLogicTextInputController","passwordShown","setPasswordShown","togglePassword","ChopLogicTextInput","maxLength","clearable","autoComplete","isPasswordButtonVisible","ChopLogicModalLayoutHeader","ChopLogicModalLayout","ChopLogicDialog","isClosing","ChopLogicPortal","useChopLogicTooltipController","setIsOpened","closeTooltip","openTooltip","toggleTooltip","handleContextMenu","tooltipContent","containerTag","ContainerComponent","tooltipClass","getInitialValidationState","data","updateValidationState","state","params","isFormDataValid","useChopLogicFormController","onSubmit","onClickSubmit","formData","setFormData","validationState","setValidationState","setResetSignal","newData","resultData","ChopLogicForm","columns","hasReset","handleInputChange","handleSubmit","columnsNumber","formClass","getGridRowValues","renderDataItem","column","GridDataCell","GridCheckbox","SelectGridRowCell","rowId","isRowSelected","selectRowById","deselectRowById","handleSelectById","GridRow","selectable","index","ChopLogicGridBody","GridColumnGroup","GridHeaderCell","component","SelectAllRowsCell","gridId","isAllSelected","selectAll","deselectAll","handleSelectAll","ChopLogicGridHead","isAllCheckboxDisabled","useChopLogicGridController","setSelectedIds","allIds","ids","newIds","ChopLogicGrid","caption","handleDeselectAll","handleDeselectRowById","handleSelectRowById","MenuLeaf","link","onHover","leafContent","SubMenu","isSubMenuOpened","toggleSubMenu","closeSubMenu","itemContent","MenuItem","isLeaf","setIsSubMenuOpened","subMenuBarClass","_b","child","ChopLogicMenu","items","menuClass","container","ReactDOM","ChopLogicTabContent","tabs","selectedTabId","content","contentId","ChopLogicTabButton","onTabSelect","tabId","isSelected","isDisabled","tabPanelId","buttonClass","ChopLogicTabList","tabPanelIds","tabIds","listClass","handleListKeyDown","currentFocusedTabIndex","previousTabIndex","previousTabId","nextTabIndex","nextTabId","ChopLogicTabs","defaultTabId","defaultId","setSelectedTabId","tabsClass","handleTabSelect","getAlertTitle","renderAlertIcon","AlertHeader","alertTitle","alertIcon","ChopLogicAlert"],"mappings":"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","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"index.cjs.js","sources":["../src/contexts/form/context.tsx","../src/enums/chop-logic-alert-mode.ts","../src/enums/chop-logic-button-view.ts","../src/enums/chop-logic-icon-name.ts","../src/enums/chop-logic-loader-view.ts","../src/enums/chop-logic-orientation-mode.ts","../src/enums/chop-logic-theme-mode.ts","../src/enums/chop-logic-tooltip-container.ts","../src/contexts/theme/context.ts","../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/contexts/theme/provider.tsx","../src/hooks/use-click-outside/use-click-outside.ts","../src/hooks/use-container-dimensions/use-container-dimensions.ts","../src/hooks/use-element-ids/use-element-ids.ts","../src/hooks/use-key-press/use-key-press.ts","../src/hooks/use-modal-focus-trap/use-modal-focus-trap.ts","../src/hooks/use-is-mounted/use-is-mounted.ts","../src/hooks/use-reset-form-input/use-reset-form-input.ts","../src/hooks/use-window-dimensions/use-window-dimensions.ts","../src/hooks/use-tooltip-position/use-tooltip-position.ts","../src/hooks/use-chop-logic-theme/use-chop-logic-theme.ts","../src/hooks/use-is-overflow/use-is-overflow.ts","../src/hooks/use-auto-close/use-auto-close.ts","../src/utils/get-class-name.ts","../src/atoms/input/error-message/ErrorMessage.tsx","../src/atoms/input/label/Label.tsx","../src/atoms/input/input/Input.tsx","../src/utils/move-focus-on-element-by-id.ts","../src/utils/handle-dropdown-list-key-press.ts","../src/atoms/input/secondary-button/SecondaryButton.tsx","../src/atoms/input/primary-button/PrimaryButton.tsx","../src/atoms/input/icon-button/IconButton.tsx","../src/atoms/input/inner-button/InnerButton.tsx","../src/organisms/grid/Grid.helpers.ts","../src/atoms/grid/data-cell/GridDataCell.tsx","../src/assets/icons/svg/CheckboxCheckedIcon.tsx","../src/assets/icons/svg/CheckboxUncheckedIcon.tsx","../src/atoms/grid/checkbox/GridCheckbox.tsx","../src/atoms/grid/select-grid-row-cell/SelectGridRowCell.tsx","../src/atoms/grid/grid-row/GridRow.tsx","../src/atoms/grid/body/GridBody.tsx","../src/atoms/grid/header-cell/HeaderCell.tsx","../src/atoms/grid/select-all-grid-rows-cell/SelectAllGridRowsCell.tsx","../src/atoms/grid/head/GridHead.tsx","../src/atoms/grid/column-group/GridColumnGroup.tsx","../src/atoms/tabs/button/TabButton.tsx","../src/atoms/tabs/list/TabList.tsx","../src/atoms/tabs/content/TabContent.tsx","../src/atoms/menu/leaf/MenuLeaf.tsx","../src/atoms/menu/sub-menu/SubMenu.tsx","../src/atoms/menu/item/MenuItem.tsx","../src/assets/icons/svg/ArrowDownIcon.tsx","../src/assets/icons/svg/ArrowUpIcon.tsx","../src/atoms/input/select/combobox/Combobox.tsx","../src/assets/icons/svg/CheckMarkIcon.tsx","../src/atoms/input/select/option/Option.tsx","../src/atoms/input/select/dropdown/Dropdown.tsx","../src/atoms/input/multi-select/Combobox.tsx","../src/atoms/input/multi-select/Option.tsx","../src/atoms/input/multi-select/Dropdown.tsx","../src/assets/icons/svg/BackIcon.tsx","../src/assets/icons/svg/CancelIcon.tsx","../src/assets/icons/svg/ChevronDownIcon.tsx","../src/assets/icons/svg/ChevronLeftIcon.tsx","../src/assets/icons/svg/ChevronRightIcon.tsx","../src/assets/icons/svg/ChevronUpIcon.tsx","../src/assets/icons/svg/ClearIcon.tsx","../src/assets/icons/svg/CopyIcon.tsx","../src/assets/icons/svg/CutIcon.tsx","../src/assets/icons/svg/DeleteIcon.tsx","../src/assets/icons/svg/DownloadIcon.tsx","../src/assets/icons/svg/ErrorIcon.tsx","../src/assets/icons/svg/ForwardIcon.tsx","../src/assets/icons/svg/GraduateIcon.tsx","../src/assets/icons/svg/HelpIcon.tsx","../src/assets/icons/svg/HideIcon.tsx","../src/assets/icons/svg/HomeIcon.tsx","../src/assets/icons/svg/InfoIcon.tsx","../src/assets/icons/svg/LoginIcon.tsx","../src/assets/icons/svg/PasteIcon.tsx","../src/assets/icons/svg/QuestionIcon.tsx","../src/assets/icons/svg/RemoveIcon.tsx","../src/assets/icons/svg/SaveIcon.tsx","../src/assets/icons/svg/ShowIcon.tsx","../src/assets/icons/svg/UploadIcon.tsx","../src/assets/icons/svg/WarningIcon.tsx","../src/assets/icons/index.tsx","../src/atoms/icon/Icon.tsx","../src/atoms/loader/Loader.tsx","../src/atoms/tooltip/Tooltip.controller.ts","../src/atoms/tooltip/Tooltip.tsx","../src/atoms/portal/Portal.tsx","../src/atoms/header/Header.tsx","../src/molecules/inputs/checkbox/Checkbox.helpers.ts","../src/molecules/inputs/checkbox/Checkbox.controller.ts","../src/molecules/inputs/checkbox/Checkbox.tsx","../src/molecules/inputs/multi-select/Multiselect.helpers.ts","../src/molecules/inputs/multi-select/Multiselect.controller.ts","../src/molecules/inputs/multi-select/MultiSelect.tsx","../src/molecules/inputs/numeric/NumericInput.helpers.ts","../src/molecules/inputs/numeric/NumericInput.controller.ts","../src/hocs/with-tooltip/with-tooltip.tsx","../src/molecules/inputs/button/Button.tsx","../src/molecules/inputs/numeric/NumericInput.tsx","../src/molecules/inputs/select/Select.helpers.ts","../src/molecules/inputs/select/Select.controller.ts","../src/molecules/inputs/select/Select.tsx","../src/molecules/inputs/text/TextInput.helpers.ts","../src/molecules/inputs/text/TextInput.controller.ts","../src/molecules/inputs/text/TextInput.tsx","../src/organisms/form/Form.helpers.ts","../src/organisms/form/Form.controller.ts","../src/organisms/form/Form.tsx","../src/organisms/grid/Grid.controller.ts","../src/organisms/grid/Grid.tsx","../src/organisms/menu/Menu.tsx","../src/organisms/tabs/Tabs.tsx","../src/organisms/dialog/Dialog.tsx","../src/organisms/alert/Alert.helpers.tsx","../src/organisms/alert/Alert.tsx"],"sourcesContent":["import React from 'react';\nimport { ChopLogicFormData, ChopLogicFormInputParams } from '@models';\n\nexport interface ChopLogicFormContextProps {\n onChangeFormInput?: (params: ChopLogicFormInputParams) => void;\n initialValues?: ChopLogicFormData;\n resetSignal?: number;\n}\n\nexport const ChopLogicFormContext = React.createContext<ChopLogicFormContextProps>({});\n","export enum ChopLogicAlertMode {\n Success = 'success',\n Error = 'error',\n Warning = 'warning',\n Info = 'info',\n Help = 'help',\n}\n","export enum ChopLogicButtonView {\n Primary = 'primary',\n Secondary = 'secondary',\n Icon = 'icon',\n Inner = 'inner',\n}\n","export enum ChopLogicIconName {\n ArrowDown = 'arrow-down',\n ArrowUp = 'arrow-up',\n Back = 'back',\n Cancel = 'cancel',\n CheckboxChecked = 'checkbox-checked',\n CheckboxUnchecked = 'checkbox-unchecked',\n CheckMark = 'check-mark',\n ChevronDown = 'chevron-down',\n ChevronLeft = 'chevron-left',\n ChevronRight = 'chevron-right',\n ChevronUp = 'chevron-up',\n Clear = 'clear',\n Copy = 'copy',\n Cut = 'cut',\n Delete = 'delete',\n Download = 'download',\n Error = 'error',\n Forward = 'forward',\n Graduate = 'graduate',\n Help = 'help',\n Hide = 'hide',\n Home = 'home',\n Info = 'info',\n Login = 'login',\n Paste = 'paste',\n Question = 'question',\n Save = 'save',\n Show = 'show',\n Upload = 'upload',\n Warning = 'warning',\n Remove = 'remove',\n}\n","export enum ChopLogicLoaderView {\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 ChopLogicOrientationMode {\n Vertical = 'vertical',\n Horizontal = 'horizontal',\n}\n","export enum ChopLogicThemeMode {\n Light = 'cl-components-light-theme',\n Dark = 'cl-components-dark-theme',\n}\n","export enum ChopLogicTooltipContainer {\n Span = 'span',\n Div = 'div',\n P = 'p',\n Strong = 'strong',\n Em = 'em',\n}\n","import { createContext } from 'react';\nimport { ChopLogicThemeMode } from '@enums';\n\nexport interface ChopLogicThemeContextProps {\n mode?: ChopLogicThemeMode;\n setMode: (mode: ChopLogicThemeMode) => void;\n}\n\nexport const ChopLogicThemeContext = createContext<ChopLogicThemeContextProps>({\n mode: ChopLogicThemeMode.Light,\n setMode: () => {},\n});\n","/**\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","import { FC, ReactNode, useEffect, useState } from 'react';\nimport { ChopLogicThemeContext } from './context.ts';\nimport { ChopLogicThemeMode } from '@enums';\nimport '@styles/root.scss';\n\nexport const ChopLogicThemeProvider: FC<{ children: ReactNode; injectedMode?: ChopLogicThemeMode }> = ({ children, injectedMode }) => {\n const [mode, setMode] = useState(ChopLogicThemeMode.Light);\n\n useEffect(() => {\n if (mode && typeof mode === 'string') {\n document.body.classList.remove(ChopLogicThemeMode.Light, ChopLogicThemeMode.Dark);\n document.body.classList.add(mode);\n }\n }, [mode]);\n\n useEffect(() => {\n if (injectedMode && typeof injectedMode === 'string') {\n document.body.classList.remove(ChopLogicThemeMode.Light, ChopLogicThemeMode.Dark);\n document.body.classList.add(injectedMode);\n }\n }, [injectedMode]);\n\n return <ChopLogicThemeContext.Provider value={{ mode, setMode }}>{children}</ChopLogicThemeContext.Provider>;\n};\n","import React, { useEffect } from 'react';\n\ntype UseClickOutsideParams = {\n ref: React.RefObject<HTMLElement | null>;\n onClickOutsideHandler: () => void;\n dependentRef?: React.RefObject<HTMLElement | null>;\n};\n\nexport const useClickOutside = ({ ref, onClickOutsideHandler, dependentRef }: UseClickOutsideParams): void => {\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n const isOutsideRef = ref?.current && !ref.current.contains(event.target as Node);\n const isOutsideDependentRef = !dependentRef?.current ? true : !dependentRef.current.contains(event.target as Node);\n if (isOutsideRef && isOutsideDependentRef) {\n onClickOutsideHandler();\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [ref, dependentRef, onClickOutsideHandler]);\n};\n","import React, { useEffect, useState } from 'react';\nimport { Dimensions } from '@models';\n\ntype useContainerDimensionsParams = {\n ref: React.RefObject<HTMLElement | null>;\n isVisible?: boolean;\n};\n\nexport const useContainerDimensions = ({ ref, isVisible }: useContainerDimensionsParams): Dimensions => {\n const [dimensions, setDimensions] = useState<Dimensions>({ width: 0, height: 0 });\n\n useEffect(() => {\n if (ref?.current && isVisible) {\n setDimensions({\n width: ref.current.offsetWidth,\n height: ref.current.offsetHeight,\n });\n }\n }, [ref, isVisible]);\n\n return dimensions;\n};\n","import { useId } from 'react';\n\nexport function useElementIds(id?: string) {\n const randomId = useId();\n const elementId = id ?? randomId;\n const errorId = `${elementId}_error`;\n const dropdownId = `${elementId}_dropdown`;\n\n return {\n elementId,\n errorId,\n dropdownId,\n };\n}\n","import React, { useEffect } from 'react';\n\ntype useKeyPressParams = {\n keyCode: string;\n ref: React.RefObject<HTMLDivElement | null>;\n onKeyPress: () => void;\n};\n\nexport const useKeyPress = ({ ref, keyCode, onKeyPress }: useKeyPressParams) => {\n useEffect(() => {\n const handleKeyPress = (e: KeyboardEvent) => {\n if (e?.code === keyCode && ref?.current) {\n onKeyPress();\n }\n };\n\n document.addEventListener('keydown', handleKeyPress, false);\n return () => {\n document.removeEventListener('keydown', handleKeyPress, false);\n };\n }, [ref, keyCode, onKeyPress]);\n};\n","import React, { useEffect } from 'react';\n\ntype ModalFocusTrapParams = {\n modalRef: React.RefObject<HTMLDivElement | null>;\n isOpened: boolean;\n};\n\nexport const useModalFocusTrap = ({ modalRef, isOpened }: ModalFocusTrapParams) => {\n useEffect(() => {\n const modalElement = modalRef.current;\n if (!isOpened || !modalElement) return;\n\n const focusableElements = modalElement.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])');\n const firstElement = focusableElements[0] as HTMLElement;\n const lastElement = focusableElements[focusableElements.length - 1] as HTMLElement;\n\n const handleTabKeyPress = (event: KeyboardEvent) => {\n if (event.key === 'Tab') {\n if (event.shiftKey && document.activeElement === firstElement) {\n event.preventDefault();\n lastElement.focus();\n } else if (!event.shiftKey && document.activeElement === lastElement) {\n event.preventDefault();\n firstElement.focus();\n }\n }\n };\n\n modalElement.addEventListener('keydown', handleTabKeyPress);\n\n return () => {\n modalElement.removeEventListener('keydown', handleTabKeyPress);\n };\n }, [modalRef, isOpened]);\n};\n","import { 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 { useContext, useEffect } from 'react';\nimport { ChopLogicFormContext } from '@contexts';\n\nexport const useResetFormInput = (onReset: () => void) => {\n const { resetSignal } = useContext(ChopLogicFormContext);\n\n useEffect(() => {\n if (resetSignal) {\n onReset();\n }\n }, [resetSignal, onReset]);\n};\n","import { useEffect, useState } from 'react';\nimport { Dimensions } from '@models';\n\nfunction getWindowDimensions(): Dimensions {\n const { innerWidth: width, innerHeight: height } = window;\n\n return { width, height };\n}\n\nexport function useWindowDimensions(): Dimensions {\n const [windowDimensions, setWindowDimensions] = useState<Dimensions>(getWindowDimensions());\n\n useEffect(() => {\n function handleResize() {\n setWindowDimensions(getWindowDimensions());\n }\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n return windowDimensions;\n}\n","import React, { useEffect, useState } from 'react';\n\nimport { useContainerDimensions } from '../use-container-dimensions/use-container-dimensions.ts';\nimport { useWindowDimensions } from '../use-window-dimensions/use-window-dimensions.ts';\n\ntype useTooltipPositionParams = {\n wrapperRef: React.RefObject<HTMLElement | null>;\n tooltipRef: React.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 { useContext } from 'react';\nimport { ChopLogicThemeContext } from '@contexts';\n\nexport const useChopLogicTheme = () => useContext(ChopLogicThemeContext);\n","import { RefObject, useEffect, useState } from 'react';\n\nexport const useIsOverflow = (ref: RefObject<HTMLElement | null>, dimension: 'width' | 'height') => {\n const [isOverflow, setIsOverflow] = useState(false);\n\n useEffect(() => {\n const { current } = ref;\n\n const trigger = () => {\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 if (current) {\n trigger();\n }\n }, [ref, dimension]);\n\n return isOverflow;\n};\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","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","import React from 'react';\nimport { getClassName } from '@utils/get-class-name.ts';\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\nexport const ErrorMessage: React.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","import { FC, ReactElement } from 'react';\nimport styles from './Label.module.scss';\n\ntype LabelProps = {\n label: string;\n required: boolean;\n inputId: string;\n isTextHidden?: boolean;\n icon?: ReactElement;\n iconPosition?: 'left' | 'right';\n};\n\nexport const Label: FC<LabelProps> = ({ label, required, inputId, icon, iconPosition, isTextHidden = false }) => {\n const isLeftIconVisible = !!icon && iconPosition === 'left';\n const isRightIconVisible = !!icon && iconPosition === 'right';\n\n return (\n <label className={styles.label} htmlFor={inputId}>\n {isLeftIconVisible && icon}\n {!isTextHidden && (\n <span>\n {label}\n {required && <abbr title='required'>*</abbr>}\n </span>\n )}\n {isRightIconVisible && icon}\n </label>\n );\n};\n","import { FC, InputHTMLAttributes, PropsWithChildren } from 'react';\nimport styles from './Input.module.scss';\n\ntype Props = InputHTMLAttributes<HTMLInputElement> & PropsWithChildren;\n\nexport const Input: FC<Props> = ({ children, ...rest }) => {\n return (\n <div className={styles.wrapper}>\n <input {...rest} className={styles.input} />\n {children}\n </div>\n );\n};\n","export function moveFocusOnElementById(id: string) {\n const element = document.getElementById(id);\n\n if (element) element.focus();\n}\n","import { KeyboardEvent } from 'react';\nimport { ChopLogicSelectValue } from '@models';\n\nimport { moveFocusOnElementById } from './move-focus-on-element-by-id.ts';\n\nexport function handleDropdownListKeyPress({\n e,\n options,\n onClose,\n}: {\n e: KeyboardEvent<HTMLUListElement>;\n options: ChopLogicSelectValue[];\n onClose: () => void;\n}) {\n let focusedId: string = '';\n options.forEach((value) => {\n const element = document.getElementById(value.id);\n if (element === document.activeElement) {\n focusedId = value.id;\n }\n });\n\n const currentFocusIndex = options.findIndex((value) => value.id === focusedId);\n\n switch (e.key) {\n case 'Escape':\n e.preventDefault();\n onClose();\n break;\n case 'ArrowUp': {\n e.preventDefault();\n const previousOptionIndex = currentFocusIndex - 1 >= 0 ? currentFocusIndex - 1 : options.length - 1;\n const previousValue = options[previousOptionIndex];\n if (previousValue) moveFocusOnElementById(previousValue.id);\n break;\n }\n case 'ArrowDown':\n case 'Tab': {\n e.preventDefault();\n const nextOptionIndex = currentFocusIndex === options.length - 1 ? 0 : currentFocusIndex + 1;\n const nextValue = options[nextOptionIndex];\n if (nextValue) moveFocusOnElementById(nextValue.id);\n break;\n }\n }\n}\n","import { ButtonHTMLAttributes, FC, PropsWithChildren } from 'react';\nimport styles from './SecondaryButton.module.scss';\nimport { getClassName } from '@utils';\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 { ButtonHTMLAttributes, FC, PropsWithChildren } from 'react';\nimport styles from './PrimaryButton.module.scss';\nimport { getClassName } from '@utils';\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 { ButtonHTMLAttributes, FC, PropsWithChildren } from 'react';\nimport styles from './IconButton.module.scss';\nimport { getClassName } from '@utils';\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 React, { ButtonHTMLAttributes } from 'react';\nimport { ChopLogicIconName } from '@enums';\nimport styles from './InnerButton.module.scss';\nimport { ChopLogicIcon } from '@atoms';\nimport { getClassName } from '@utils';\n\ntype Props = {\n label?: string;\n icon?: ChopLogicIconName;\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n} & ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport const InnerButton: React.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 <ChopLogicIcon name={icon} />\n </button>\n );\n};\n","import React from 'react';\nimport { ChopLogicGridColumn, ChopLogicGridItem, RenderDataItemCallback } from '@models';\n\nexport function getGridRowValues({\n item,\n columns,\n renderDataItem,\n}: {\n item: ChopLogicGridItem;\n columns: ChopLogicGridColumn[];\n renderDataItem?: RenderDataItemCallback;\n}): (string | React.ReactElement)[] {\n const values = [];\n for (const column of columns) {\n let value;\n\n if (renderDataItem && item[column.field]) {\n value = renderDataItem(item, column.field);\n } else if (item[column.field]) {\n value = (item[column.field] as string).toString();\n } else {\n value = '';\n }\n\n values.push(value);\n }\n\n return values;\n}\n","import React from 'react';\nimport styles from './GridDataCell.module.scss';\n\nexport const GridDataCell: React.FC<{ value: React.ReactElement | string }> = ({ value }) => {\n return <td className={styles.cell}>{value}</td>;\n};\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction CheckboxCheckedIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 16 16' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path\n fill='currentColor'\n d='M14 0H2C.9 0 0 .9 0 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zM7 12.414L3.293 8.707l1.414-1.414L7 9.586l4.793-4.793 1.414 1.414L7 12.414z'\n />\n </svg>\n );\n}\n\nexport default CheckboxCheckedIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction CheckboxUncheckedIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 16 16' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path fill='currentColor' d='M14 0H2C.9 0 0 .9 0 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zm0 14H2V2h12v12z' />\n </svg>\n );\n}\n\nexport default CheckboxUncheckedIcon;\n","import React from 'react';\nimport { useElementIds } from '@hooks';\nimport CheckboxCheckedIcon from '@assets/icons/svg/CheckboxCheckedIcon.tsx';\nimport CheckboxUncheckedIcon from '@assets/icons/svg/CheckboxUncheckedIcon.tsx';\nimport { getClassName } from '@utils';\nimport { Label } from '@atoms';\nimport styles from './GridCheckbox.module.scss';\n\ntype Props = React.InputHTMLAttributes<HTMLInputElement> & {\n label: string;\n};\n\nexport const GridCheckbox: React.FC<Props> = ({ name, label, disabled, required = false, onChange, checked = false, ...props }) => {\n const { elementId } = useElementIds(props?.id);\n const checkboxClass = getClassName([\n styles.checkbox,\n {\n [styles.checkbox__disabled]: !!disabled,\n [styles.checkbox__checked]: checked,\n },\n ]);\n\n return (\n <div className={checkboxClass}>\n <input\n id={elementId}\n name={name}\n type='checkbox'\n disabled={disabled}\n required={required}\n checked={checked}\n onChange={onChange}\n className={styles.checkbox_input}\n />\n <Label\n label={label}\n required={required}\n inputId={elementId}\n isTextHidden={true}\n iconPosition='left'\n icon={checked ? <CheckboxCheckedIcon /> : <CheckboxUncheckedIcon />}\n />\n </div>\n );\n};\n","import React from 'react';\nimport styles from './SelectGridRowCell.module.scss';\nimport { GridCheckbox } from '@atoms/grid/checkbox/GridCheckbox.tsx';\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: React.FC<Props> = ({ rowId, isRowSelected, selectRowById, deselectRowById, disabled }) => {\n const handleSelectById = (e: React.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 React from 'react';\nimport { GridDataCell } from '@atoms/grid/data-cell/GridDataCell.tsx';\nimport { SelectGridRowCell } from '@atoms/grid/select-grid-row-cell/SelectGridRowCell.tsx';\nimport { getClassName } from '@utils';\nimport styles from './GridRow.module.scss';\n\ntype Props = {\n rowId: string;\n selectedIds: string[];\n selectRowById: (id: string) => void;\n deselectRowById: (id: string) => void;\n selectable: boolean;\n values: (string | React.ReactElement)[];\n disabled?: boolean;\n};\n\nexport const GridRow: React.FC<Props> = ({ rowId, selectRowById, deselectRowById, selectable, values, selectedIds, disabled }) => {\n const selected = selectedIds.includes(rowId);\n\n return (\n <tr className={getClassName([styles.row, { [styles.row__selected]: selected }])}>\n {selectable && (\n <SelectGridRowCell\n rowId={rowId}\n selectRowById={selectRowById}\n deselectRowById={deselectRowById}\n isRowSelected={selected}\n disabled={disabled}\n />\n )}\n {values.map((value, index) => (\n <GridDataCell key={`row_${index}`} value={value} />\n ))}\n </tr>\n );\n};\n","import React from 'react';\nimport { ChopLogicGridColumn, ChopLogicGridItem, RenderDataItemCallback } from '@models';\nimport { getGridRowValues } from '@organisms/grid/Grid.helpers.ts';\nimport { GridRow } from '@atoms/grid/grid-row/GridRow.tsx';\nimport styles from './GridBody.module.scss';\n\ntype Props = {\n data: ChopLogicGridItem[];\n columns: ChopLogicGridColumn[];\n selectedIds: string[];\n selectRowById: (id: string) => void;\n deselectRowById: (id: string) => void;\n renderDataItem?: RenderDataItemCallback;\n selectable: boolean;\n};\n\nexport const GridBody: React.FC<Props> = ({ selectRowById, deselectRowById, renderDataItem, selectedIds, selectable, data, columns }) => {\n return (\n <tbody className={styles.body}>\n {data.map((item) => {\n const values = getGridRowValues({ item, columns, renderDataItem });\n return (\n <GridRow\n key={item.id}\n rowId={item.id}\n disabled={item?.disabled}\n selectRowById={selectRowById}\n deselectRowById={deselectRowById}\n selectable={selectable}\n values={values}\n selectedIds={selectedIds}\n />\n );\n })}\n </tbody>\n );\n};\n","import React from 'react';\nimport styles from './HeaderCell.module.scss';\n\nexport const GridHeaderCell: React.FC<{ title?: string; component?: React.ReactElement }> = ({ title, component }) => {\n return <th className={styles.headerCell}>{component ?? title ?? ''}</th>;\n};\n","import React from 'react';\nimport { GridCheckbox } from '@atoms/grid/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: React.FC<Props> = ({ gridId, isAllSelected, selectAll, deselectAll, disabled }) => {\n const handleSelectAll = (e: React.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 React from 'react';\nimport { ChopLogicGridColumn } from '@models';\nimport { GridHeaderCell } from '@atoms/grid/header-cell/HeaderCell.tsx';\nimport { SelectAllGridRowsCell } from '@atoms/grid/select-all-grid-rows-cell/SelectAllGridRowsCell.tsx';\nimport styles from './GridHead.module.scss';\n\ntype ChopLogicGridHeadProps = {\n columns: ChopLogicGridColumn[];\n gridId: string;\n selectable: boolean;\n isAllSelected: boolean;\n isAllCheckboxDisabled?: boolean;\n selectAll: () => void;\n deselectAll: () => void;\n};\n\nexport const GridHead: React.FC<ChopLogicGridHeadProps> = ({\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 React from 'react';\nimport { ChopLogicGridColumn } from '@models';\nimport styles from './GridColumnGroup.module.scss';\nimport { getClassName } from '@utils';\n\nexport const GridColumnGroup: React.FC<{ columns: ChopLogicGridColumn[]; 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 React from 'react';\nimport { ChopLogicOrientationMode } from '@enums';\nimport { getClassName } from '@utils';\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: ChopLogicOrientationMode;\n isDisabled?: boolean;\n};\n\nexport const TabButton: React.FC<Props> = ({ title, onTabSelect, tabId, isSelected, isDisabled = false, tabPanelId, mode }) => {\n const buttonClass = getClassName([\n styles.tabButton,\n {\n [styles.tabButton__disabled]: isDisabled,\n [styles.tabButton__vertical]: mode === ChopLogicOrientationMode.Vertical,\n [styles.tabButton__selected]: isSelected,\n },\n ]);\n\n return (\n <button\n role='tab'\n id={tabId}\n onClick={() => onTabSelect(tabId)}\n aria-selected={isSelected}\n aria-controls={tabPanelId}\n className={buttonClass}\n >\n {title}\n </button>\n );\n};\n","import React, { KeyboardEvent } from 'react';\nimport { ChopLogicOrientationMode } from '@enums';\nimport { ChopLogicTabItem } from '@models';\nimport { getClassName, moveFocusOnElementById } from '@utils';\nimport styles from './TabList.module.scss';\nimport { TabButton } from '@atoms/tabs/button/TabButton';\n\ntype ChopLogicTabListProps = {\n tabs: ChopLogicTabItem[];\n tabIds: string[];\n onTabSelect: (id: string) => void;\n selectedTabId: string;\n tabPanelIds: string[];\n mode: ChopLogicOrientationMode;\n};\n\nexport const TabList: React.FC<ChopLogicTabListProps> = ({ tabs, onTabSelect, selectedTabId, tabPanelIds, mode, tabIds }) => {\n const listClass = getClassName([styles.tabList, { [styles.tabList__vertical]: mode === ChopLogicOrientationMode.Vertical }]);\n\n const handleListKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n const currentFocusedTabIndex = tabIds.findIndex((id) => id === selectedTabId);\n\n switch (e.key) {\n case 'ArrowLeft':\n case 'ArrowUp': {\n e.preventDefault();\n if (e.key === 'ArrowUp' && mode === ChopLogicOrientationMode.Horizontal) break;\n if (e.key === 'ArrowLeft' && mode === ChopLogicOrientationMode.Vertical) break;\n\n const previousTabIndex = currentFocusedTabIndex - 1 >= 0 ? currentFocusedTabIndex - 1 : tabIds.length - 1;\n const previousTabId = tabIds[previousTabIndex];\n if (previousTabId) {\n moveFocusOnElementById(previousTabId);\n onTabSelect(previousTabId);\n }\n break;\n }\n case 'ArrowRight':\n case 'ArrowDown': {\n e.preventDefault();\n if (e.key === 'ArrowDown' && mode === ChopLogicOrientationMode.Horizontal) break;\n if (e.key === 'ArrowRight' && mode === ChopLogicOrientationMode.Vertical) break;\n\n const nextTabIndex = currentFocusedTabIndex === tabIds.length - 1 ? 0 : currentFocusedTabIndex + 1;\n const nextTabId = tabIds[nextTabIndex];\n if (nextTabId) {\n moveFocusOnElementById(nextTabId);\n onTabSelect(nextTabId);\n }\n break;\n }\n default:\n break;\n }\n };\n\n return (\n <div role='tablist' onKeyDown={handleListKeyDown} className={listClass}>\n {tabs.map(({ id, title, disabled }, index) => {\n return (\n <TabButton\n key={id}\n title={title}\n onTabSelect={onTabSelect}\n tabId={id}\n isSelected={id === selectedTabId}\n isDisabled={disabled}\n tabPanelId={tabPanelIds[index]}\n mode={mode}\n />\n );\n })}\n </div>\n );\n};\n","import React from 'react';\nimport { ChopLogicTabItem } from '@models';\nimport styles from './TabContent.module.scss';\n\nexport const TabContent: React.FC<{\n tabs: ChopLogicTabItem[];\n selectedTabId: string;\n}> = ({ tabs, selectedTabId }): React.ReactElement => {\n const content = tabs.find((item) => item.id === selectedTabId)?.content;\n const contentId = `tabpanel_${selectedTabId}`;\n\n return (\n <div role='tabpanel' aria-labelledby={selectedTabId} id={contentId} className={styles.tabContent}>\n {content}\n </div>\n );\n};\n","import React from 'react';\nimport { ChopLogicIcon } from '@atoms';\nimport { ChopLogicMenuItem } from '@models';\nimport styles from './MenuLeaf.module.scss';\n\nexport const MenuLeaf = ({ item }: { item: ChopLogicMenuItem }): React.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 <ChopLogicIcon name={icon} />\n {leafContent}\n </li>\n );\n};\n","import React, { PropsWithChildren, useRef } from 'react';\nimport { ChopLogicIcon } from '@atoms';\nimport { ChopLogicIconName, ChopLogicOrientationMode } from '@enums';\nimport { useClickOutside } from '@hooks';\nimport { ChopLogicMenuItem } from '@models';\nimport styles from './SubMenu.module.scss';\n\ntype Props = PropsWithChildren & {\n item: ChopLogicMenuItem;\n isSubMenuOpened: boolean;\n mode: ChopLogicOrientationMode;\n toggleSubMenu: () => void;\n closeSubMenu: () => void;\n openSubMenu: () => void;\n openedOn?: 'hover' | 'click';\n};\n\nexport const SubMenu: React.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 <ChopLogicIcon name={icon} />\n {label}\n </a>\n ) : (\n <span>\n <ChopLogicIcon name={icon} />\n {label}\n </span>\n );\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLLIElement>) => {\n e.stopPropagation();\n if (e.key === ' ') {\n toggleSubMenu();\n }\n };\n\n const onClickOutsideHandler = () => {\n if (mode === ChopLogicOrientationMode.Vertical) return;\n closeSubMenu();\n };\n\n useClickOutside({ ref, dependentRef, onClickOutsideHandler });\n\n return (\n <li\n className={styles.subMenu}\n tabIndex={0}\n role='menuitem'\n aria-haspopup='true'\n aria-expanded={isSubMenuOpened}\n onKeyDown={handleKeyDown}\n onMouseEnter={openedOn === 'hover' ? openSubMenu : undefined}\n onMouseLeave={openedOn === 'hover' ? closeSubMenu : undefined}\n ref={ref}\n >\n <span className={styles.text} ref={dependentRef} onClick={toggleSubMenu}>\n {itemContent}\n <ChopLogicIcon name={isSubMenuOpened ? ChopLogicIconName.ArrowUp : ChopLogicIconName.ArrowDown} />\n </span>\n {isSubMenuOpened && children}\n </li>\n );\n};\n","import React, { PropsWithChildren, useState } from 'react';\nimport { ChopLogicOrientationMode } from '@enums';\nimport { ChopLogicMenuItem } from '@models';\nimport styles from './MenuItem.module.scss';\nimport { MenuLeaf } from '@atoms/menu/leaf/MenuLeaf';\nimport { SubMenu } from '../sub-menu/SubMenu';\nimport { getClassName } from '@utils';\n\ntype Props = PropsWithChildren & {\n item: ChopLogicMenuItem;\n mode: ChopLogicOrientationMode;\n openedOn?: 'hover' | 'click';\n};\n\nexport const MenuItem: React.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 === ChopLogicOrientationMode.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) => <MenuItem item={child} key={child.id} mode={mode} openedOn={openedOn} />)}\n </ul>\n </SubMenu>\n );\n};\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ArrowDownIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 24 24' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M21.886 5.536A1.002 1.002 0 0021 5H3a1.002 1.002 0 00-.822 1.569l9 13a.998.998 0 001.644 0l9-13a.998.998 0 00.064-1.033zM12 17.243L4.908 7h14.184L12 17.243z' />\n </svg>\n );\n}\n\nexport default ArrowDownIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ArrowUpIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 24 24' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M3 19h18a1.002 1.002 0 00.823-1.569l-9-13c-.373-.539-1.271-.539-1.645 0l-9 13A.999.999 0 003 19zm9-12.243L19.092 17H4.908L12 6.757z' />\n </svg>\n );\n}\n\nexport default ArrowUpIcon;\n","import React from 'react';\nimport ArrowDownIcon from '@assets/icons/svg/ArrowDownIcon.tsx';\nimport ArrowUpIcon from '@assets/icons/svg/ArrowUpIcon.tsx';\nimport { ChopLogicSelectValue } from '@models';\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?: ChopLogicSelectValue;\n placeholder?: string;\n name: string;\n};\n\nexport const SelectCombobox: React.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 { ChopLogicSVGElementProps } from '@models';\n\nfunction CheckMarkIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 512 512' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7l233.4-233.3c12.5-12.5 32.8-12.5 45.3 0z' />\n </svg>\n );\n}\n\nexport default CheckMarkIcon;\n","import React, { KeyboardEvent } from 'react';\nimport CheckMarkIcon from '@assets/icons/svg/CheckMarkIcon.tsx';\nimport { ChopLogicSelectValue } from '@models';\nimport styles from './Option.module.scss';\nimport { getClassName } from '@utils';\n\ntype Props = {\n value: ChopLogicSelectValue;\n selected: boolean;\n onSelect: (id: string) => void;\n onClear: () => void;\n};\n\nexport const SelectOption: React.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 React from 'react';\nimport { ChopLogicSelectValue } from '@models';\nimport { getClassName, handleDropdownListKeyPress, moveFocusOnElementById } from '@utils';\nimport styles from './Dropdown.module.scss';\nimport { SelectOption } from '../option/Option';\n\ntype Props = {\n options: ChopLogicSelectValue[];\n opened: boolean;\n dropdownId: string;\n comboboxId: string;\n onClose: () => void;\n selected?: ChopLogicSelectValue;\n onSelect: (id: string) => void;\n onClear: () => void;\n};\n\nexport const SelectDropdown: React.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 React from 'react';\nimport ArrowDownIcon from '@assets/icons/svg/ArrowDownIcon.tsx';\nimport ArrowUpIcon from '@assets/icons/svg/ArrowUpIcon.tsx';\nimport { ChopLogicMultiSelectValue } from '@models';\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?: ChopLogicMultiSelectValue[];\n placeholder?: string;\n name: string;\n};\n\nexport const MultiSelectCombobox: React.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 React, { KeyboardEvent } from 'react';\nimport CheckboxCheckedIcon from '@assets/icons/svg/CheckboxCheckedIcon';\nimport CheckboxUncheckedIcon from '@assets/icons/svg/CheckboxUncheckedIcon';\nimport { ChopLogicMultiSelectValue } from '@models';\nimport { getClassName } from '@utils';\nimport styles from '../select/option/Option.module.scss';\n\ntype Props = {\n value: ChopLogicMultiSelectValue;\n onSelect: (id: string) => void;\n};\n\nexport const MultiSelectOption: React.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 React from 'react';\nimport { ChopLogicMultiSelectValue } from '@models';\nimport { getClassName, handleDropdownListKeyPress } from '@utils';\nimport styles from '../select/dropdown/Dropdown.module.scss';\nimport { MultiSelectOption } from './Option';\n\ntype Props = {\n options: ChopLogicMultiSelectValue[];\n opened: boolean;\n dropdownId: string;\n onClose: () => void;\n onSelect: (id: string) => void;\n};\n\nexport const MultiSelectDropdown: React.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 { ChopLogicSVGElementProps } from '@models';\n\nfunction BackIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 512 512' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path fill='none' stroke='currentColor' strokeLinecap='round' strokeLinejoin='round' strokeWidth={48} d='M328 112L184 256l144 144' />\n </svg>\n );\n}\n\nexport default BackIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction CancelIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 470 1000' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M452 656c12 12 18 26.333 18 43s-6 31-18 43c-12 10.667-26.333 16-43 16s-31-5.333-43-16L234 590 102 742c-12 10.667-26.333 16-43 16s-31-5.333-43-16C5.333 730 0 715.667 0 699s5.333-31 16-43l138-156L16 342C5.333 330 0 315.667 0 299s5.333-31 16-43c12-10.667 26.333-16 43-16s31 5.333 43 16l132 152 132-152c12-10.667 26.333-16 43-16s31 5.333 43 16c12 12 18 26.333 18 43s-6 31-18 43L314 500l138 156' />\n </svg>\n );\n}\n\nexport default CancelIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ChevronDownIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg fill='currentColor' viewBox='0 0 16 16' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path\n fillRule='evenodd'\n d='M1.553 6.776a.5.5 0 01.67-.223L8 9.44l5.776-2.888a.5.5 0 11.448.894l-6 3a.5.5 0 01-.448 0l-6-3a.5.5 0 01-.223-.67z'\n />\n </svg>\n );\n}\n\nexport default ChevronDownIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ChevronLeftIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg fill='currentColor' viewBox='0 0 16 16' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path\n fillRule='evenodd'\n d='M9.224 1.553a.5.5 0 01.223.67L6.56 8l2.888 5.776a.5.5 0 11-.894.448l-3-6a.5.5 0 010-.448l3-6a.5.5 0 01.67-.223z'\n />\n </svg>\n );\n}\n\nexport default ChevronLeftIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ChevronRightIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg fill='currentColor' viewBox='0 0 16 16' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path\n fillRule='evenodd'\n d='M6.776 1.553a.5.5 0 01.671.223l3 6a.5.5 0 010 .448l-3 6a.5.5 0 11-.894-.448L9.44 8 6.553 2.224a.5.5 0 01.223-.671z'\n />\n </svg>\n );\n}\n\nexport default ChevronRightIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ChevronUpIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg fill='currentColor' viewBox='0 0 16 16' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path fillRule='evenodd' d='M7.776 5.553a.5.5 0 01.448 0l6 3a.5.5 0 11-.448.894L8 6.56 2.224 9.447a.5.5 0 11-.448-.894l6-3z' />\n </svg>\n );\n}\n\nexport default ChevronUpIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ClearIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 1024 1024' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <defs>\n <style />\n </defs>\n <path d='M899.1 869.6l-53-305.6H864c14.4 0 26-11.6 26-26V346c0-14.4-11.6-26-26-26H618V138c0-14.4-11.6-26-26-26H432c-14.4 0-26 11.6-26 26v182H160c-14.4 0-26 11.6-26 26v192c0 14.4 11.6 26 26 26h17.9l-53 305.6c-.3 1.5-.4 3-.4 4.4 0 14.4 11.6 26 26 26h723c1.5 0 3-.1 4.4-.4 14.2-2.4 23.7-15.9 21.2-30zM204 390h272V182h72v208h272v104H204V390zm468 440V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H416V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H202.8l45.1-260H776l45.1 260H672z' />\n </svg>\n );\n}\n\nexport default ClearIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction CopyIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg\n fill='none'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth={2}\n viewBox='0 0 24 24'\n height='1em'\n width='1em'\n {...rest}\n >\n {title && <title>{title}</title>}\n <path d='M11 9 H20 A2 2 0 0 1 22 11 V20 A2 2 0 0 1 20 22 H11 A2 2 0 0 1 9 20 V11 A2 2 0 0 1 11 9 z' />\n <path d='M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1' />\n </svg>\n );\n}\n\nexport default CopyIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction CutIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg\n fill='none'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth={2}\n viewBox='0 0 24 24'\n height='1em'\n width='1em'\n role='img'\n {...rest}\n >\n {title && <title>{title}</title>}\n <path stroke='none' d='M0 0h24v24H0z' />\n <path d='M10 17 A3 3 0 0 1 7 20 A3 3 0 0 1 4 17 A3 3 0 0 1 10 17 z' />\n <path d='M20 17 A3 3 0 0 1 17 20 A3 3 0 0 1 14 17 A3 3 0 0 1 20 17 z' />\n <path d='M9.15 14.85L18 4M6 4l8.85 10.85' />\n </svg>\n );\n}\n\nexport default CutIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction DeleteIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 1024 1024' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z' />\n </svg>\n );\n}\n\nexport default DeleteIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction DownloadIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 1024 1024' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z' />\n </svg>\n );\n}\n\nexport default DownloadIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ErrorIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 24 24' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M11 7h2v7h-2zm0 8h2v2h-2z' />\n <path d='M21.707 7.293l-5-5A.996.996 0 0016 2H8a.996.996 0 00-.707.293l-5 5A.996.996 0 002 8v8c0 .266.105.52.293.707l5 5A.996.996 0 008 22h8c.266 0 .52-.105.707-.293l5-5A.996.996 0 0022 16V8a.996.996 0 00-.293-.707zM20 15.586L15.586 20H8.414L4 15.586V8.414L8.414 4h7.172L20 8.414v7.172z' />\n </svg>\n );\n}\n\nexport default ErrorIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ForwardIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 512 512' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path fill='none' stroke='currentColor' strokeLinecap='round' strokeLinejoin='round' strokeWidth={48} d='M184 112l144 144-144 144' />\n </svg>\n );\n}\n\nexport default ForwardIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nconst GraduateIcon = ({ title, ...rest }: ChopLogicSVGElementProps) => (\n <svg width='1em' height='1em' fill='currentColor' viewBox='0 0 448 512' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M219.3.5c3.1-.6 6.3-.6 9.4 0l200 40C439.9 42.7 448 52.6 448 64s-8.1 21.3-19.3 23.5L352 102.9V160c0 70.7-57.3 128-128 128S96 230.7 96 160v-57.1l-48-9.6v65.1l15.7 78.4c.9 4.7-.3 9.6-3.3 13.3S52.8 256 48 256H16c-4.8 0-9.3-2.1-12.4-5.9s-4.3-8.6-3.3-13.3L16 158.4V86.6C6.5 83.3 0 74.3 0 64c0-11.4 8.1-21.3 19.3-23.5l200-40zM111.9 327.7c10.5-3.4 21.8.4 29.4 8.5l71 75.5c6.3 6.7 17 6.7 23.3 0l71-75.5c7.6-8.1 18.9-11.9 29.4-8.5 65 20.9 112 81.7 112 153.6 0 17-13.8 30.7-30.7 30.7H30.7C13.8 512 0 498.2 0 481.3c0-71.9 47-132.7 111.9-153.6z' />\n </svg>\n);\n\nexport default GraduateIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction HelpIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 512 512' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM192.13 260.18a64 64 0 1159.69 59.69 64.07 64.07 0 01-59.69-59.69zm240-66.64l-96.37 5.84a4.06 4.06 0 01-3.44-1.59 96 96 0 00-18.07-18.07 4.06 4.06 0 01-1.59-3.44l5.84-96.37a4 4 0 015.42-3.51A193 193 0 01435.6 188.12a4 4 0 01-3.51 5.42zM193.54 79.91l5.84 96.37a4.06 4.06 0 01-1.59 3.44 96 96 0 00-18.07 18.07 4.06 4.06 0 01-3.44 1.59l-96.37-5.84a4 4 0 01-3.51-5.42A193 193 0 01188.12 76.4a4 4 0 015.42 3.51zM79.91 318.46l96.37-5.84a4.06 4.06 0 013.44 1.59 96 96 0 0018.07 18.07 4.06 4.06 0 011.59 3.44l-5.84 96.37a4 4 0 01-5.42 3.51A193 193 0 0176.4 323.88a4 4 0 013.51-5.42zm238.55 113.63l-5.84-96.37a4.06 4.06 0 011.59-3.44 96 96 0 0018.07-18.07 4.06 4.06 0 013.44-1.59l96.37 5.84a4 4 0 013.51 5.42A193 193 0 01323.88 435.6a4 4 0 01-5.42-3.51z' />\n </svg>\n );\n}\n\nexport default HelpIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction HideIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 24 24' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M12 19c.946 0 1.81-.103 2.598-.281l-1.757-1.757c-.273.021-.55.038-.841.038-5.351 0-7.424-3.846-7.926-5a8.642 8.642 0 011.508-2.297L4.184 8.305c-1.538 1.667-2.121 3.346-2.132 3.379a.994.994 0 000 .633C2.073 12.383 4.367 19 12 19zm0-14c-1.837 0-3.346.396-4.604.981L3.707 2.293 2.293 3.707l18 18 1.414-1.414-3.319-3.319c2.614-1.951 3.547-4.615 3.561-4.657a.994.994 0 000-.633C21.927 11.617 19.633 5 12 5zm4.972 10.558l-2.28-2.28c.19-.39.308-.819.308-1.278 0-1.641-1.359-3-3-3-.459 0-.888.118-1.277.309L8.915 7.501A9.26 9.26 0 0112 7c5.351 0 7.424 3.846 7.926 5-.302.692-1.166 2.342-2.954 3.558z' />\n </svg>\n );\n}\n\nexport default HideIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nconst HomeIcon = ({ title, ...rest }: ChopLogicSVGElementProps) => (\n <svg width='1em' height='1em' fill='currentColor' viewBox='0 0 1024 1024' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M946.5 505 560.1 118.8l-25.9-25.9a31.5 31.5 0 0 0-44.4 0L77.5 505a63.9 63.9 0 0 0-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0 0 18.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z' />\n </svg>\n);\n\nexport default HomeIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction InfoIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 1024 1024' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z' />\n <path d='M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z' />\n </svg>\n );\n}\n\nexport default InfoIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nconst LoginIcon = ({ title, ...rest }: ChopLogicSVGElementProps) => (\n <svg width='1em' height='1em' fill='currentColor' viewBox='0 0 1024 1024' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M521.7 82c-152.5-.4-286.7 78.5-363.4 197.7-3.4 5.3.4 12.3 6.7 12.3h70.3c4.8 0 9.3-2.1 12.3-5.8 7-8.5 14.5-16.7 22.4-24.5 32.6-32.5 70.5-58.1 112.7-75.9 43.6-18.4 90-27.8 137.9-27.8 47.9 0 94.3 9.3 137.9 27.8 42.2 17.8 80.1 43.4 112.7 75.9 32.6 32.5 58.1 70.4 76 112.5C865.7 417.8 875 464.1 875 512c0 47.9-9.4 94.2-27.8 137.8-17.8 42.1-43.4 80-76 112.5s-70.5 58.1-112.7 75.9A352.8 352.8 0 0 1 520.6 866c-47.9 0-94.3-9.4-137.9-27.8A353.84 353.84 0 0 1 270 762.3c-7.9-7.9-15.3-16.1-22.4-24.5-3-3.7-7.6-5.8-12.3-5.8H165c-6.3 0-10.2 7-6.7 12.3C234.9 863.2 368.5 942 520.6 942c236.2 0 428-190.1 430.4-425.6C953.4 277.1 761.3 82.6 521.7 82zM395.02 624v-76h-314c-4.4 0-8-3.6-8-8v-56c0-4.4 3.6-8 8-8h314v-76c0-6.7 7.8-10.5 13-6.3l141.9 112a8 8 0 0 1 0 12.6l-141.9 112c-5.2 4.1-13 .4-13-6.3z' />\n </svg>\n);\n\nexport default LoginIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction PasteIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 24 24' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M20 11V5c0-1.103-.897-2-2-2h-3a1 1 0 00-1-1H8a1 1 0 00-1 1H4c-1.103 0-2 .897-2 2v13c0 1.103.897 2 2 2h7c0 1.103.897 2 2 2h7c1.103 0 2-.897 2-2v-7c0-1.103-.897-2-2-2zm-9 2v5H4V5h3v2h8V5h3v6h-5c-1.103 0-2 .897-2 2zm2 7v-7h7l.001 7H13z' />\n </svg>\n );\n}\n\nexport default PasteIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction QuestionIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 512 512' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path fill='none' stroke='currentColor' strokeMiterlimit={10} strokeWidth={32} d='M256 80a176 176 0 10176 176A176 176 0 00256 80z' />\n <path\n fill='none'\n stroke='currentColor'\n strokeLinecap='round'\n strokeMiterlimit={10}\n strokeWidth={28}\n d='M200 202.29s.84-17.5 19.57-32.57C230.68 160.77 244 158.18 256 158c10.93-.14 20.69 1.67 26.53 4.45 10 4.76 29.47 16.38 29.47 41.09 0 26-17 37.81-36.37 50.8S251 281.43 251 296'\n />\n <path d='M270 348 A20 20 0 0 1 250 368 A20 20 0 0 1 230 348 A20 20 0 0 1 270 348 z' />\n </svg>\n );\n}\n\nexport default QuestionIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction RemoveIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 512 512' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path\n fill='none'\n stroke='currentColor'\n strokeLinejoin='round'\n strokeWidth={32}\n d='M135.19 390.14a28.79 28.79 0 0021.68 9.86h246.26A29 29 0 00432 371.13V140.87A29 29 0 00403.13 112H156.87a28.84 28.84 0 00-21.67 9.84v0L46.33 256l88.86 134.11z'\n />\n <path\n fill='none'\n stroke='currentColor'\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth={32}\n d='M336.67 192.33L206.66 322.34M336.67 322.34L206.66 192.33M336.67 192.33L206.66 322.34M336.67 322.34L206.66 192.33'\n />\n </svg>\n );\n}\n\nexport default RemoveIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction SaveIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 1024 1024' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z' />\n </svg>\n );\n}\n\nexport default SaveIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction ShowIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 24 24' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M12 9a3.02 3.02 0 00-3 3c0 1.642 1.358 3 3 3 1.641 0 3-1.358 3-3 0-1.641-1.359-3-3-3z' />\n <path d='M12 5c-7.633 0-9.927 6.617-9.948 6.684L1.946 12l.105.316C2.073 12.383 4.367 19 12 19s9.927-6.617 9.948-6.684l.106-.316-.105-.316C21.927 11.617 19.633 5 12 5zm0 12c-5.351 0-7.424-3.846-7.926-5C4.578 10.842 6.652 7 12 7c5.351 0 7.424 3.846 7.926 5-.504 1.158-2.578 5-7.926 5z' />\n </svg>\n );\n}\n\nexport default ShowIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction UploadIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg fill='currentColor' viewBox='0 0 16 16' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path d='M.5 9.9a.5.5 0 01.5.5v2.5a1 1 0 001 1h12a1 1 0 001-1v-2.5a.5.5 0 011 0v2.5a2 2 0 01-2 2H2a2 2 0 01-2-2v-2.5a.5.5 0 01.5-.5z' />\n <path d='M7.646 1.146a.5.5 0 01.708 0l3 3a.5.5 0 01-.708.708L8.5 2.707V11.5a.5.5 0 01-1 0V2.707L5.354 4.854a.5.5 0 11-.708-.708l3-3z' />\n </svg>\n );\n}\n\nexport default UploadIcon;\n","import { ChopLogicSVGElementProps } from '@models';\n\nfunction WarningIcon({ title, ...rest }: ChopLogicSVGElementProps) {\n return (\n <svg viewBox='0 0 24 24' fill='currentColor' height='1em' width='1em' role='img' {...rest}>\n {title && <title>{title}</title>}\n <path fill='none' d='M0 0h24v24H0z' />\n <path d='M4 20v-6a8 8 0 1116 0v6h1v2H3v-2h1zm2 0h12v-6a6 6 0 10-12 0v6zm5-18h2v3h-2V2zm8.778 2.808l1.414 1.414-2.12 2.121-1.415-1.414 2.121-2.121zM2.808 6.222l1.414-1.414 2.121 2.12L4.93 8.344 2.808 6.222zM7 14a5 5 0 015-5v2a3 3 0 00-3 3H7z' />\n </svg>\n );\n}\n\nexport default WarningIcon;\n","import ArrowDownIcon from './svg/ArrowDownIcon';\nimport ArrowUpIcon from './svg/ArrowUpIcon';\nimport BackIcon from './svg/BackIcon';\nimport CancelIcon from './svg/CancelIcon';\nimport CheckboxCheckedIcon from './svg/CheckboxCheckedIcon';\nimport CheckboxUncheckedIcon from './svg/CheckboxUncheckedIcon';\nimport CheckMarkIcon from './svg/CheckMarkIcon';\nimport ChevronDownIcon from './svg/ChevronDownIcon';\nimport ChevronLeftIcon from './svg/ChevronLeftIcon';\nimport ChevronRightIcon from './svg/ChevronRightIcon';\nimport ChevronUpIcon from './svg/ChevronUpIcon';\nimport ClearIcon from './svg/ClearIcon';\nimport CopyIcon from './svg/CopyIcon';\nimport CutIcon from './svg/CutIcon';\nimport DeleteIcon from './svg/DeleteIcon';\nimport DownloadIcon from './svg/DownloadIcon';\nimport ErrorIcon from './svg/ErrorIcon';\nimport ForwardIcon from './svg/ForwardIcon';\nimport GraduateIcon from './svg/GraduateIcon';\nimport HelpIcon from './svg/HelpIcon';\nimport HideIcon from './svg/HideIcon';\nimport HomeIcon from './svg/HomeIcon';\nimport InfoIcon from './svg/InfoIcon';\nimport LoginIcon from './svg/LoginIcon';\nimport PasteIcon from './svg/PasteIcon';\nimport QuestionIcon from './svg/QuestionIcon';\nimport RemoveIcon from './svg/RemoveIcon';\nimport SaveIcon from './svg/SaveIcon';\nimport ShowIcon from './svg/ShowIcon';\nimport UploadIcon from './svg/UploadIcon';\nimport WarningIcon from './svg/WarningIcon';\nimport { ChopLogicSVGElementProps } from '@models';\nimport { ReactElement } from 'react';\nimport { ChopLogicIconName } from '@enums';\n\ntype ChopLogicIcons = { [key in ChopLogicIconName]: ({ title, ...rest }: ChopLogicSVGElementProps) => ReactElement };\n\nexport const ChopLogicIconDictionary: ChopLogicIcons = {\n [ChopLogicIconName.ArrowDown]: ArrowDownIcon,\n [ChopLogicIconName.ArrowUp]: ArrowUpIcon,\n [ChopLogicIconName.Back]: BackIcon,\n [ChopLogicIconName.Cancel]: CancelIcon,\n [ChopLogicIconName.CheckboxChecked]: CheckboxCheckedIcon,\n [ChopLogicIconName.CheckboxUnchecked]: CheckboxUncheckedIcon,\n [ChopLogicIconName.CheckMark]: CheckMarkIcon,\n [ChopLogicIconName.ChevronDown]: ChevronDownIcon,\n [ChopLogicIconName.ChevronUp]: ChevronUpIcon,\n [ChopLogicIconName.ChevronLeft]: ChevronLeftIcon,\n [ChopLogicIconName.ChevronRight]: ChevronRightIcon,\n [ChopLogicIconName.Clear]: ClearIcon,\n [ChopLogicIconName.Copy]: CopyIcon,\n [ChopLogicIconName.Cut]: CutIcon,\n [ChopLogicIconName.Delete]: DeleteIcon,\n [ChopLogicIconName.Download]: DownloadIcon,\n [ChopLogicIconName.Error]: ErrorIcon,\n [ChopLogicIconName.Forward]: ForwardIcon,\n [ChopLogicIconName.Graduate]: GraduateIcon,\n [ChopLogicIconName.Help]: HelpIcon,\n [ChopLogicIconName.Hide]: HideIcon,\n [ChopLogicIconName.Home]: HomeIcon,\n [ChopLogicIconName.Info]: InfoIcon,\n [ChopLogicIconName.Login]: LoginIcon,\n [ChopLogicIconName.Paste]: PasteIcon,\n [ChopLogicIconName.Question]: QuestionIcon,\n [ChopLogicIconName.Save]: SaveIcon,\n [ChopLogicIconName.Show]: ShowIcon,\n [ChopLogicIconName.Upload]: UploadIcon,\n [ChopLogicIconName.Warning]: WarningIcon,\n [ChopLogicIconName.Remove]: RemoveIcon,\n};\n","import React from 'react';\nimport { ChopLogicIconProps } from '@models';\nimport { ChopLogicIconDictionary } from '@assets/icons';\nimport { getClassName } from '@utils';\nimport styles from './Icon.module.scss';\n\nconst ChopLogicIcon: React.FC<ChopLogicIconProps> = ({ name, testId, className, ...rest }) => {\n if (!name) return null;\n const Component = ChopLogicIconDictionary[name];\n const iconClass = getClassName([className, styles.icon]);\n\n return <Component data-testid={testId} className={iconClass} {...rest} />;\n};\n\nexport default ChopLogicIcon;\n","import React from 'react';\nimport { ChopLogicLoaderView } from '@enums';\nimport { ChopLogicLoaderProps } from '@models';\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';\nimport { getClassName } from '@utils';\n\nconst ChopLogicLoader: React.FC<ChopLogicLoaderProps> = ({ view = ChopLogicLoaderView.Circle, ...rest }) => {\n const className = getClassName([\n {\n [Arrow.loader]: view === ChopLogicLoaderView.Arrow,\n [Brackets.loader]: view === ChopLogicLoaderView.Brackets,\n [Circle.loader]: view === ChopLogicLoaderView.Circle,\n [Dots.loader]: view === ChopLogicLoaderView.Dots,\n [Filler.loader]: view === ChopLogicLoaderView.Filler,\n [Pulse.loader]: view === ChopLogicLoaderView.Pulse,\n [Linear.loader]: view === ChopLogicLoaderView.Linear,\n [Rotation.loader]: view === ChopLogicLoaderView.Rotation,\n [Square.loader]: view === ChopLogicLoaderView.Square,\n },\n ]);\n\n return <span className={className} role='status' {...rest}></span>;\n};\n\nexport default ChopLogicLoader;\n","import React, { useRef, useState } from 'react';\nimport { useAutoClose, useClickOutside, useElementIds, useKeyPress, useTooltipPosition } from '@hooks';\n\ntype Params = {\n autoClose: boolean;\n autoCloseDelay: number;\n id?: string;\n};\n\nexport const useChopLogicTooltipController = ({ 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: React.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 React from 'react';\nimport { ChopLogicTooltipContainer } from '@enums';\nimport { ChopLogicTooltipProps } from '@models';\nimport { useChopLogicTooltipController } from './Tooltip.controller.ts';\nimport { getClassName } from '@utils';\nimport styles from './Tooltip.module.scss';\nimport { ChopLogicPortal } from '@atoms';\n\nconst ChopLogicTooltip: React.FC<ChopLogicTooltipProps> = ({\n children,\n tooltipContent,\n id,\n style,\n className,\n containerTag = ChopLogicTooltipContainer.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 useChopLogicTooltipController({ 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: React.MouseEvent) => handleContextMenu(e) : undefined}\n tabIndex={-1}\n ref={wrapperRef}\n aria-describedby={elementId}\n >\n {children}\n {isOpened && (\n <ChopLogicPortal>\n <div style={{ ...style, top, left }} ref={tooltipRef} role='tooltip' id={elementId} {...rest} className={tooltipClass}>\n {tooltipContent}\n </div>\n </ChopLogicPortal>\n )}\n </ContainerComponent>\n );\n};\n\nexport default ChopLogicTooltip;\n","import React, { useEffect, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\nconst ChopLogicPortal = ({ children }: { children: React.ReactElement }): React.ReactPortal => {\n const [container] = useState(() => document.createElement('div'));\n\n useEffect(() => {\n // Append a new portal at the end of the body element on mount\n document.body.appendChild(container);\n\n // Remove the portal on unmount\n return () => {\n document.body.removeChild(container);\n };\n }, [container]);\n\n return ReactDOM.createPortal(children, container);\n};\n\nexport default ChopLogicPortal;\n","import { FC } from 'react';\nimport styles from './Header.module.scss';\nimport { getClassName } from '@utils';\nimport { ChopLogicIcon } from '@atoms';\nimport { ChopLogicHeaderProps } from '@models';\n\nconst Header: FC<ChopLogicHeaderProps> = ({ 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 && <ChopLogicIcon name={icon} />}\n <span className={styles.header_text}>{children}</span>\n </HeaderTag>\n );\n};\n\nexport default Header;\n","import { ChopLogicFormData } from '@models';\n\nexport function getCheckboxInitialValue({\n defaultChecked,\n initialValues,\n name,\n}: {\n defaultChecked?: boolean;\n initialValues?: ChopLogicFormData;\n name: string;\n}): boolean {\n if (initialValues && initialValues?.[name] !== undefined) {\n return !!initialValues?.[name];\n }\n\n return Boolean(defaultChecked);\n}\n","import React, { useCallback, useContext, useState } from 'react';\nimport { ChopLogicFormContext } from '@contexts';\nimport { useResetFormInput } from '@hooks';\n\nimport { getCheckboxInitialValue } from './Checkbox.helpers.ts';\n\nexport function useChopLogicCheckboxController({\n name,\n defaultChecked,\n onChange,\n}: {\n name: string;\n defaultChecked?: boolean;\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\n}) {\n const { onChangeFormInput, initialValues } = useContext(ChopLogicFormContext);\n const initialValue = getCheckboxInitialValue({ initialValues, name, defaultChecked });\n const [isChecked, setIsChecked] = useState<boolean>(initialValue);\n\n const handleChange = (e: React.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 React from 'react';\nimport { useElementIds } from '@hooks';\nimport CheckboxCheckedIcon from '@assets/icons/svg/CheckboxCheckedIcon.tsx';\nimport CheckboxUncheckedIcon from '@assets/icons/svg/CheckboxUncheckedIcon.tsx';\nimport { ChopLogicCheckboxProps } from '@models';\nimport { useChopLogicCheckboxController } from './Checkbox.controller.ts';\nimport styles from './Checkbox.module.scss';\nimport { getClassName } from '@utils';\nimport { Label } from '@atoms';\n\nconst ChopLogicCheckbox: React.FC<ChopLogicCheckboxProps> = ({\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 } = useChopLogicCheckboxController({ name, defaultChecked, onChange });\n const { elementId } = useElementIds(id);\n const checkboxClass = getClassName([\n styles.checkbox,\n className,\n {\n [styles.checkbox__disabled]: !!disabled,\n [styles.checkbox__checked]: checked,\n },\n ]);\n\n return (\n <div {...rest} className={checkboxClass}>\n <input\n id={elementId}\n name={name}\n type='checkbox'\n disabled={disabled}\n required={required}\n checked={checked}\n onChange={handleChange}\n aria-label={noLabel ? label : undefined}\n />\n <Label\n label={label}\n required={required}\n inputId={elementId}\n isTextHidden={noLabel}\n icon={checked ? <CheckboxCheckedIcon /> : <CheckboxUncheckedIcon />}\n iconPosition={iconPosition}\n />\n </div>\n );\n};\n\nexport default ChopLogicCheckbox;\n","import { ChopLogicFormData, ChopLogicMultiSelectValue, ChopLogicSelectValue } from '@models';\n\nexport function getMultiSelectInitialValues({\n name,\n options,\n initialValues,\n defaultValue,\n}: {\n name: string;\n options: ChopLogicSelectValue[];\n initialValues?: ChopLogicFormData;\n defaultValue?: string | number | readonly string[];\n}): ChopLogicMultiSelectValue[] {\n return options.map((option) => {\n let selected = false;\n\n if (initialValues && initialValues?.[name] && Array.isArray(initialValues[name])) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const selectedId = (initialValues[name] as Array<any>).find((item) => item === option.id || item?.id === option.id);\n if (selectedId) selected = true;\n }\n\n if (!initialValues?.[name] && Array.isArray(defaultValue)) {\n const selectedId = defaultValue.find((item) => item === option.id);\n if (selectedId) selected = true;\n }\n\n return { ...option, selected };\n });\n}\n\nexport const getMultiSelectFormValues = (options: ChopLogicMultiSelectValue[]): string[] => {\n return options.filter((item) => item.selected).map((item) => item.id);\n};\n\nexport const getMultiSelectUpdatedValues = (options: ChopLogicMultiSelectValue[], id: string): ChopLogicMultiSelectValue[] => {\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 { useCallback, useContext, useState } from 'react';\nimport { ChopLogicFormContext } from '@contexts';\nimport { useResetFormInput } from '@hooks';\nimport { ChopLogicMultiSelectValue, ChopLogicSelectValue } from '@models';\n\nimport { getMultiSelectFormValues, getMultiSelectInitialValues, getMultiSelectUpdatedValues } from './Multiselect.helpers.ts';\n\nexport function useChopLogicMultiSelectController({\n name,\n defaultValue,\n onChange,\n options,\n}: {\n name: string;\n defaultValue?: string | number | readonly string[];\n onChange?: (values?: ChopLogicSelectValue[]) => void;\n options: ChopLogicSelectValue[];\n}) {\n const [opened, setOpened] = useState(false);\n const { onChangeFormInput, initialValues } = useContext(ChopLogicFormContext);\n const initialOptions = getMultiSelectInitialValues({ name, options, initialValues, defaultValue });\n const [values, setValues] = useState<ChopLogicMultiSelectValue[]>(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 React, { useRef } from 'react';\nimport { useClickOutside, useElementIds, useKeyPress } from '@hooks';\nimport { ChopLogicMultiSelectProps } from '@models';\nimport { useChopLogicMultiSelectController } from './Multiselect.controller.ts';\nimport styles from '../select/Select.module.scss';\nimport { getClassName } from '@utils';\nimport { Label, MultiSelectCombobox, MultiSelectDropdown } from '@atoms';\n\nconst ChopLogicMultiSelect: React.FC<ChopLogicMultiSelectProps> = ({\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 } = useChopLogicMultiSelectController({\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 ChopLogicMultiSelect;\n","import { ChopLogicFormData, ChopLogicNumericInputValidator } from '@models';\n\nexport function getNumericInputInitialValue({\n name,\n initialValues,\n defaultValue,\n}: {\n name: string;\n initialValues?: ChopLogicFormData;\n defaultValue?: string | number | readonly string[];\n}): number {\n if (initialValues && initialValues[name]) {\n return Number(initialValues[name]);\n }\n\n if (defaultValue && typeof defaultValue === 'number') {\n return defaultValue;\n }\n\n return 0;\n}\n\nexport function validateNumericInputValue({\n value,\n required,\n validator,\n maxValue,\n minValue,\n}: {\n value?: number;\n required?: boolean;\n validator?: ChopLogicNumericInputValidator;\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 React, { ChangeEventHandler, useCallback, useContext, useState } from 'react';\nimport { ChopLogicFormContext } from '@contexts';\nimport { useResetFormInput } from '@hooks';\nimport { ChopLogicNumericInputValidator } from '@models';\n\nimport { getNumericInputInitialValue, validateNumericInputValue } from './NumericInput.helpers.ts';\n\nexport function useChopLogicNumericInputController({\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?: ChopLogicNumericInputValidator;\n}) {\n const { onChangeFormInput, initialValues } = useContext(ChopLogicFormContext);\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: React.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 React from 'react';\nimport { ChopLogicTooltip } from '@atoms';\n\ntype WithTooltipProps = {\n tooltip?: string;\n visibleOn?: 'hover' | 'click' | 'focus' | 'contextmenu';\n};\n\nexport function withTooltip<P extends object>(Component: React.ComponentType<P>): React.FC<P & WithTooltipProps> {\n return ({ tooltip, visibleOn, ...props }: WithTooltipProps) =>\n tooltip?.length ? (\n <ChopLogicTooltip tooltipContent={tooltip} visibleOn={visibleOn}>\n <Component {...(props as P)} />\n </ChopLogicTooltip>\n ) : (\n <Component {...(props as P)} />\n );\n}\n","import React from 'react';\nimport { ChopLogicIcon, IconButton, InnerButton, PrimaryButton, SecondaryButton } from '@atoms';\nimport { ChopLogicButtonView } from '@enums';\nimport { withTooltip } from '@hocs';\nimport { ChopLogicButtonProps } from '@models';\nimport styles from './Button.module.scss';\nimport { getClassName } from '@utils';\n\nconst Button: React.FC<ChopLogicButtonProps> = ({\n onClick,\n text,\n icon,\n label,\n disabled = false,\n extended = false,\n type = 'button',\n view = ChopLogicButtonView.Primary,\n className,\n ...rest\n}) => {\n const extendedClass = getClassName([className, { [styles.extended]: extended }]);\n\n switch (view) {\n case ChopLogicButtonView.Primary:\n return (\n <PrimaryButton aria-label={label} type={type} onClick={onClick} disabled={disabled} className={extendedClass} {...rest}>\n <ChopLogicIcon name={icon} />\n {text}\n </PrimaryButton>\n );\n case ChopLogicButtonView.Secondary:\n return (\n <SecondaryButton aria-label={label} type={type} onClick={onClick} disabled={disabled} className={extendedClass} {...rest}>\n <ChopLogicIcon name={icon} />\n {text}\n </SecondaryButton>\n );\n case ChopLogicButtonView.Icon:\n return (\n <IconButton aria-label={label} type={type} onClick={onClick} disabled={disabled} {...rest} className={className}>\n <ChopLogicIcon name={icon} />\n </IconButton>\n );\n case ChopLogicButtonView.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 ChopLogicButton = withTooltip(Button);\n\nexport default ChopLogicButton;\n","import React from 'react';\nimport { ChopLogicButtonView, ChopLogicIconName } from '@enums';\nimport { useElementIds } from '@hooks';\nimport { ChopLogicNumericInputProps } from '@models';\nimport { useChopLogicNumericInputController } from './NumericInput.controller.ts';\nimport styles from './NumericInput.module.scss';\nimport { getClassName } from '@utils';\nimport { ErrorMessage, Label, Input } from '@atoms';\nimport ChopLogicButton from '@molecules/inputs/button/Button.tsx';\n\nconst ChopLogicNumericInput: React.FC<ChopLogicNumericInputProps> = ({\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 } = useChopLogicNumericInputController({\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 <ChopLogicButton\n onClick={decrement}\n view={ChopLogicButtonView.Inner}\n label={`Decrement value for ${label}`}\n icon={ChopLogicIconName.ChevronLeft}\n disabled={disabled}\n />\n <ChopLogicButton\n onClick={increment}\n view={ChopLogicButtonView.Inner}\n label={`Increment value for ${label}`}\n icon={ChopLogicIconName.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 ChopLogicNumericInput;\n","import { ChopLogicFormData, ChopLogicSelectValue } from '@models';\n\nexport function getSelectInitialValue({\n name,\n options,\n initialValues,\n defaultValue,\n}: {\n name: string;\n options: ChopLogicSelectValue[];\n initialValues?: ChopLogicFormData;\n defaultValue?: string | number | readonly string[];\n}): ChopLogicSelectValue | undefined {\n let valueId: string;\n\n if (initialValues && initialValues[name]) {\n valueId = ((initialValues[name] as ChopLogicSelectValue)?.id as string) ?? (initialValues[name] as string);\n }\n\n if (!initialValues?.[name] && defaultValue && typeof defaultValue === 'string') {\n valueId = defaultValue;\n }\n\n return options.find((item) => item.id === valueId);\n}\n","import { useCallback, useContext, useState } from 'react';\nimport { ChopLogicFormContext } from '@contexts';\nimport { useResetFormInput } from '@hooks';\nimport { ChopLogicSelectValue } from '@models';\n\nimport { getSelectInitialValue } from './Select.helpers.ts';\n\nexport function useChopLogicSelectController({\n name,\n defaultValue,\n onChange,\n options,\n}: {\n name: string;\n defaultValue?: string | number | readonly string[];\n onChange?: (value?: ChopLogicSelectValue) => void;\n options: ChopLogicSelectValue[];\n}) {\n const { onChangeFormInput, initialValues } = useContext(ChopLogicFormContext);\n const initialValue = getSelectInitialValue({ name, options, defaultValue, initialValues });\n const [opened, setOpened] = useState(false);\n const [selected, setSelected] = useState<ChopLogicSelectValue | 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 React, { useRef } from 'react';\nimport { useClickOutside, useElementIds, useKeyPress } from '@hooks';\nimport { ChopLogicSelectProps } from '@models';\nimport { useChopLogicSelectController } from './Select.controller.ts';\nimport { getClassName } from '@utils';\nimport styles from './Select.module.scss';\nimport { Label, SelectCombobox, SelectDropdown } from '@atoms';\n\nconst ChopLogicSelect: React.FC<ChopLogicSelectProps> = ({\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 } = useChopLogicSelectController({\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 ChopLogicSelect;\n","import { ChopLogicFormData, ChopLogicRegExpWithFlags, ChopLogicTextInputValidator } from '@models';\n\nexport function validateTextInputValue({\n value,\n required,\n validator,\n}: {\n value: string;\n required: boolean;\n validator?: ChopLogicRegExpWithFlags | ChopLogicTextInputValidator;\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?: ChopLogicFormData;\n defaultValue?: string | number | readonly string[];\n}): string {\n if (initialValues && initialValues?.[name]) {\n return (initialValues[name] as string).toString();\n }\n\n if (defaultValue && typeof defaultValue === 'string') {\n return defaultValue;\n }\n\n return '';\n}\n","import React, { ChangeEventHandler, useCallback, useContext, useState } from 'react';\nimport { ChopLogicFormContext } from '@contexts';\nimport { useResetFormInput } from '@hooks';\nimport { ChopLogicRegExpWithFlags, ChopLogicTextInputValidator } from '@models';\n\nimport { getTextInputInitialValue, validateTextInputValue } from './TextInput.helpers.ts';\n\nexport function useChopLogicTextInputController({\n name,\n defaultValue,\n onChange,\n onClear,\n required,\n validator,\n}: {\n name: string;\n required: boolean;\n validator?: ChopLogicRegExpWithFlags | ChopLogicTextInputValidator;\n defaultValue?: string | number | readonly string[];\n onChange?: ChangeEventHandler<HTMLInputElement>;\n onClear?: () => void;\n}) {\n const { onChangeFormInput, initialValues } = useContext(ChopLogicFormContext);\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: React.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 React from 'react';\nimport { ChopLogicButtonView, ChopLogicIconName } from '@enums';\nimport { useElementIds } from '@hooks';\nimport { ChopLogicTextInputProps } from '@models';\nimport { useChopLogicTextInputController } from './TextInput.controller.ts';\nimport { getClassName } from '@utils';\nimport styles from './TextInput.module.scss';\nimport { ErrorMessage, Label, Input } from '@atoms';\nimport { ChopLogicButton } from '@molecules';\n\nconst ChopLogicTextInput: React.FC<ChopLogicTextInputProps> = ({\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 } = useChopLogicTextInputController({\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 <ChopLogicButton\n view={ChopLogicButtonView.Inner}\n onClick={handleClear}\n label={`Clear input for ${label}`}\n icon={ChopLogicIconName.Remove}\n disabled={disabled}\n />\n )}\n {isPasswordButtonVisible && (\n <ChopLogicButton\n onClick={togglePassword}\n view={ChopLogicButtonView.Inner}\n label='Toggle password visibility'\n icon={passwordShown ? ChopLogicIconName.Hide : ChopLogicIconName.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 ChopLogicTextInput;\n","import { ChopLogicFormData, ChopLogicFormInputParams, ChopLogicFormValidationState } from '@models';\n\nexport function getInitialValidationState(data?: ChopLogicFormData): ChopLogicFormValidationState {\n if (!data) return [];\n\n return Object.keys(data).map((key) => [key, true]);\n}\n\nexport function updateValidationState(state: ChopLogicFormValidationState, params: ChopLogicFormInputParams): ChopLogicFormValidationState {\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: ChopLogicFormValidationState): boolean {\n return state.every((item) => item[1]);\n}\n","import React, { FormEvent, useState } from 'react';\nimport { ChopLogicFormData, ChopLogicFormInputParams } from '@models';\n\nimport { getInitialValidationState, isFormDataValid, updateValidationState } from './Form.helpers.ts';\n\nexport function useChopLogicFormController({\n initialValues,\n onReset,\n onSubmit,\n onClickSubmit,\n}: {\n initialValues?: ChopLogicFormData;\n onReset?: React.FormEventHandler<HTMLFormElement>;\n onSubmit?: React.FormEventHandler<HTMLFormElement>;\n onClickSubmit?: (data: ChopLogicFormData) => 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: ChopLogicFormInputParams) => {\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 React from 'react';\nimport { ChopLogicFormContext } from '@contexts';\nimport { ChopLogicButtonView, ChopLogicIconName } from '@enums';\nimport { ChopLogicFormProps } from '@models';\nimport styles from './Form.module.scss';\nimport { useChopLogicFormController } from './Form.controller.ts';\nimport { getClassName } from '@utils';\nimport { ChopLogicButton } from '@molecules';\n\nconst ChopLogicForm: React.FC<ChopLogicFormProps> = ({\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 } = useChopLogicFormController({\n initialValues,\n onReset,\n onSubmit,\n onClickSubmit,\n });\n const columnsNumber = columns <= 6 && columns >= 1 ? columns : 1;\n const formClass = getClassName([styles.form, className]);\n\n return (\n <form onSubmit={handleSubmit} onReset={handleReset} {...rest} className={`${formClass} ${styles[`columns-${columnsNumber}`]}`}>\n <ChopLogicFormContext.Provider value={{ onChangeFormInput: handleInputChange, initialValues, resetSignal }}>\n {children}\n <div className={`${styles.buttons} ${styles[`buttons-${columnsNumber}`]}`}>\n {hasReset && <ChopLogicButton type='reset' text='Reset' icon={ChopLogicIconName.Clear} view={ChopLogicButtonView.Secondary} />}\n <ChopLogicButton type='submit' text='Submit' icon={ChopLogicIconName.Forward} extended={!hasReset} disabled={!valid} />\n </div>\n </ChopLogicFormContext.Provider>\n </form>\n );\n};\n\nexport default ChopLogicForm;\n","import { useState } from 'react';\nimport { useElementIds } from '@hooks';\nimport { ChopLogicGridItem } from '@models';\n\nexport const useChopLogicGridController = ({\n data,\n id,\n onSelect,\n}: {\n data: ChopLogicGridItem[];\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 React from 'react';\nimport { ChopLogicGridProps } from '@models';\nimport { useChopLogicGridController } from './Grid.controller.ts';\nimport { getClassName } from '@utils';\nimport { GridBody, GridColumnGroup, GridHead } from '@atoms';\nimport styles from './Grid.module.scss';\n\nconst ChopLogicGrid: React.FC<ChopLogicGridProps> = ({\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 } = useChopLogicGridController({ 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 ChopLogicGrid;\n","import React from 'react';\nimport { ChopLogicOrientationMode } from '@enums';\nimport { ChopLogicMenuProps } from '@models';\nimport styles from './Menu.module.scss';\nimport { getClassName } from '@utils';\nimport { MenuItem } from '@atoms';\n\nconst ChopLogicMenu: React.FC<ChopLogicMenuProps> = ({\n items = [],\n mode = ChopLogicOrientationMode.Vertical,\n openedOn = 'click',\n className,\n ...rest\n}) => {\n const menuClass = getClassName([styles.menuBar, className, { [styles.menuBar__vertical]: mode === ChopLogicOrientationMode.Vertical }]);\n\n return (\n <ul {...rest} role='menubar' className={menuClass}>\n {items.map((item) => (\n <MenuItem key={item.id} item={item} mode={mode} openedOn={openedOn} />\n ))}\n </ul>\n );\n};\n\nexport default ChopLogicMenu;\n","import React, { useState } from 'react';\nimport { ChopLogicOrientationMode } from '@enums';\nimport { ChopLogicTabsProps } from '@models';\nimport { getClassName } from '@utils';\nimport styles from './Tabs.module.scss';\nimport { TabContent, TabList } from '@atoms';\n\nconst ChopLogicTabs: React.FC<ChopLogicTabsProps> = ({\n tabs,\n defaultTabId,\n mode = ChopLogicOrientationMode.Horizontal,\n className,\n ...rest\n}) => {\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 === ChopLogicOrientationMode.Vertical }]);\n\n const handleTabSelect = (id: string) => {\n setSelectedTabId(id);\n };\n\n return (\n <div {...rest} className={tabsClass}>\n <TabList\n tabs={tabs}\n selectedTabId={selectedTabId}\n tabPanelIds={tabPanelIds}\n onTabSelect={handleTabSelect}\n mode={mode}\n tabIds={tabIds}\n />\n <TabContent tabs={tabs} selectedTabId={selectedTabId} />\n </div>\n );\n};\n\nexport default ChopLogicTabs;\n","import React, { useRef } from 'react';\nimport { useIsMounted, useKeyPress, useModalFocusTrap } from '@hooks';\nimport { ChopLogicDialogProps } from '@models';\n\nimport styles from './Dialog.module.scss';\nimport { getClassName } from '@utils';\nimport { ChopLogicHeader, ChopLogicPortal } from '@atoms';\nimport { ChopLogicButtonView, ChopLogicIconName } from '@enums';\nimport { ChopLogicButton } from '@molecules';\n\nconst ChopLogicDialog: React.FC<ChopLogicDialogProps> = ({ isOpened, onClose, title, children, icon, ...rest }) => {\n const isMounted = useIsMounted(isOpened);\n const isClosing = isMounted && !isOpened;\n\n const modalRef = useRef<HTMLDivElement>(null);\n\n useModalFocusTrap({ modalRef, isOpened });\n useKeyPress({ keyCode: 'Escape', ref: modalRef, onKeyPress: onClose });\n\n if (!isMounted) {\n return null;\n }\n\n return (\n <ChopLogicPortal>\n <div className={getClassName([styles.dialog, { [styles.dialog__closing]: isClosing }])}>\n <div ref={modalRef} role='dialog' aria-modal='true' {...rest} className={styles.layout}>\n <ChopLogicButton\n icon={ChopLogicIconName.Cancel}\n view={ChopLogicButtonView.Icon}\n label='Close modal window'\n onClick={onClose}\n className={styles.layout_button}\n />\n <header>\n <ChopLogicHeader as='h3' icon={icon}>\n {title}\n </ChopLogicHeader>\n </header>\n <div>{children}</div>\n </div>\n </div>\n </ChopLogicPortal>\n );\n};\n\nexport default ChopLogicDialog;\n","import { ChopLogicAlertMode, ChopLogicIconName } from '@enums';\n\nexport function getAlertTitle(mode: ChopLogicAlertMode, title?: string): string {\n if (title) return title;\n\n switch (mode) {\n case ChopLogicAlertMode.Info:\n return 'For your information';\n case ChopLogicAlertMode.Warning:\n return 'Please pay attention';\n case ChopLogicAlertMode.Error:\n return 'Something went wrong';\n case ChopLogicAlertMode.Success:\n return 'Everything is okay';\n case ChopLogicAlertMode.Help:\n return 'Useful tip';\n default:\n return 'Alert';\n }\n}\n\nexport function getAlertIcon(mode: ChopLogicAlertMode, icon?: ChopLogicIconName): ChopLogicIconName | undefined {\n if (icon) {\n return icon;\n }\n\n switch (mode) {\n case ChopLogicAlertMode.Info:\n return ChopLogicIconName.Info;\n case ChopLogicAlertMode.Warning:\n return ChopLogicIconName.Warning;\n case ChopLogicAlertMode.Error:\n return ChopLogicIconName.Error;\n case ChopLogicAlertMode.Success:\n return ChopLogicIconName.CheckboxChecked;\n case ChopLogicAlertMode.Help:\n return ChopLogicIconName.Help;\n default:\n return;\n }\n}\n","import React from 'react';\nimport { ChopLogicAlertMode, ChopLogicButtonView, ChopLogicIconName } from '@enums';\nimport { useAutoClose, useIsMounted } from '@hooks';\nimport { ChopLogicAlertProps } from '@models';\nimport styles from './Alert.module.scss';\nimport { getClassName } from '@utils';\nimport { ChopLogicHeader, ChopLogicPortal } from '@atoms';\nimport { ChopLogicButton } from '@molecules';\nimport { getAlertIcon, getAlertTitle } from './Alert.helpers.tsx';\n\nconst ChopLogicAlert: React.FC<ChopLogicAlertProps> = ({\n isOpened,\n onClose,\n title,\n message,\n mode = ChopLogicAlertMode.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 <ChopLogicPortal>\n <div className={getClassName([styles.wrapper, { [styles.wrapper__closing]: isClosing }])}>\n <div {...rest} className={styles.content}>\n <ChopLogicButton\n icon={ChopLogicIconName.Cancel}\n view={ChopLogicButtonView.Icon}\n label='Close alert popup'\n onClick={onClose}\n className={styles.content_button}\n />\n <header>\n <ChopLogicHeader icon={alertTitleIcon} as='h3'>\n {alertTitle}\n </ChopLogicHeader>\n </header>\n <p>{message}</p>\n </div>\n </div>\n </ChopLogicPortal>\n );\n};\n\nexport default ChopLogicAlert;\n"],"names":["ChopLogicFormContext","React","ChopLogicAlertMode","ChopLogicButtonView","ChopLogicIconName","ChopLogicLoaderView","ChopLogicOrientationMode","ChopLogicThemeMode","ChopLogicTooltipContainer","ChopLogicThemeContext","createContext","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","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","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","require$$0","createTask","callStackForError","unknownOwnerDebugStack","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","jsxRuntimeModule","require$$1","ChopLogicThemeProvider","injectedMode","mode","setMode","useState","useEffect","jsx","useClickOutside","ref","onClickOutsideHandler","dependentRef","handleClickOutside","event","isOutsideRef","isOutsideDependentRef","useContainerDimensions","isVisible","dimensions","setDimensions","useElementIds","id","randomId","useId","elementId","errorId","dropdownId","useKeyPress","keyCode","onKeyPress","handleKeyPress","e","useModalFocusTrap","modalRef","isOpened","modalElement","focusableElements","firstElement","lastElement","handleTabKeyPress","useIsMounted","delay","isMounted","setIsMounted","useResetFormInput","onReset","resetSignal","useContext","getWindowDimensions","width","height","useWindowDimensions","windowDimensions","setWindowDimensions","handleResize","useTooltipPosition","wrapperRef","tooltipRef","spacing","position","setPosition","tooltipWidth","tooltipHeight","windowWidth","windowHeight","rect","top","left","useChopLogicTheme","useIsOverflow","dimension","isOverflow","setIsOverflow","current","scrollWidth","clientWidth","scrollHeight","clientHeight","useAutoClose","onClose","autoClose","autoCloseDelay","timer","getClassName","input","item","trueKeys","ErrorMessage","testId","message","visible","className","errorClass","styles","Label","label","required","inputId","icon","iconPosition","isTextHidden","isLeftIconVisible","isRightIconVisible","jsxs","Input","rest","moveFocusOnElementById","element","handleDropdownListKeyPress","options","focusedId","currentFocusIndex","previousOptionIndex","previousValue","nextOptionIndex","nextValue","SecondaryButton","PrimaryButton","IconButton","InnerButton","onClick","disabled","ChopLogicIcon","getGridRowValues","columns","renderDataItem","values","column","GridDataCell","CheckboxCheckedIcon","title","CheckboxUncheckedIcon","GridCheckbox","onChange","checked","checkboxClass","SelectGridRowCell","rowId","isRowSelected","selectRowById","deselectRowById","handleSelectById","GridRow","selectable","selectedIds","selected","index","GridBody","data","GridHeaderCell","component","SelectAllGridRowsCell","gridId","isAllSelected","selectAll","deselectAll","handleSelectAll","GridHead","isAllCheckboxDisabled","GridColumnGroup","TabButton","onTabSelect","tabId","isSelected","isDisabled","tabPanelId","buttonClass","TabList","tabs","selectedTabId","tabPanelIds","tabIds","listClass","handleListKeyDown","currentFocusedTabIndex","previousTabIndex","previousTabId","nextTabIndex","nextTabId","TabContent","content","_a","contentId","MenuLeaf","link","onFocus","onHover","leafContent","SubMenu","isSubMenuOpened","toggleSubMenu","closeSubMenu","openSubMenu","openedOn","useRef","itemContent","handleKeyDown","MenuItem","isLeaf","setIsSubMenuOpened","subMenuBarClass","_b","child","ArrowDownIcon","ArrowUpIcon","SelectCombobox","opened","comboboxId","placeholder","CheckMarkIcon","SelectOption","onSelect","onClear","optionClass","handleOptionSelect","SelectDropdown","dropdownClass","MultiSelectCombobox","selectedLabels","selectedValues","MultiSelectOption","MultiSelectDropdown","BackIcon","CancelIcon","ChevronDownIcon","ChevronLeftIcon","ChevronRightIcon","ChevronUpIcon","ClearIcon","CopyIcon","CutIcon","DeleteIcon","DownloadIcon","ErrorIcon","ForwardIcon","GraduateIcon","HelpIcon","HideIcon","HomeIcon","InfoIcon","LoginIcon","PasteIcon","QuestionIcon","RemoveIcon","SaveIcon","ShowIcon","UploadIcon","WarningIcon","ChopLogicIconDictionary","Component","iconClass","ChopLogicLoader","view","Arrow","Brackets","Circle","Dots","Filler","Pulse","Linear","Rotation","Square","useChopLogicTooltipController","setIsOpened","closeTooltip","openTooltip","toggleTooltip","handleContextMenu","ChopLogicTooltip","tooltipContent","style","containerTag","visibleOn","ContainerComponent","tooltipClass","ChopLogicPortal","container","ReactDOM","Header","as","HeaderTag","headerClass","getCheckboxInitialValue","defaultChecked","initialValues","useChopLogicCheckboxController","onChangeFormInput","initialValue","isChecked","setIsChecked","handleChange","handleReset","useCallback","ChopLogicCheckbox","noLabel","getMultiSelectInitialValues","defaultValue","option","getMultiSelectFormValues","getMultiSelectUpdatedValues","targetItem","useChopLogicMultiSelectController","setOpened","initialOptions","setValues","handleClose","handleToggle","handleSelect","newValues","ChopLogicMultiSelect","multiSelectClass","getNumericInputInitialValue","validateNumericInputValue","validator","maxValue","minValue","useChopLogicNumericInputController","onSpinButtonClick","min","max","step","setValue","valid","setValid","updateValue","increment","decrement","withTooltip","tooltip","Button","text","extended","extendedClass","ChopLogicButton","ChopLogicNumericInput","errorMessage","onBlur","tabIndex","readOnly","hasSpinButtons","inputClass","getSelectInitialValue","valueId","useChopLogicSelectController","setSelected","newValue","handleClear","ChopLogicSelect","selectClass","validateTextInputValue","getTextInputInitialValue","useChopLogicTextInputController","passwordShown","setPasswordShown","togglePassword","ChopLogicTextInput","maxLength","clearable","autoComplete","isPasswordButtonVisible","getInitialValidationState","updateValidationState","state","params","isFormDataValid","useChopLogicFormController","onSubmit","onClickSubmit","formData","setFormData","validationState","setValidationState","setResetSignal","newData","resultData","ChopLogicForm","hasReset","handleInputChange","handleSubmit","columnsNumber","formClass","useChopLogicGridController","setSelectedIds","allIds","ids","newIds","ChopLogicGrid","caption","handleDeselectAll","handleDeselectRowById","handleSelectRowById","ChopLogicMenu","items","menuClass","ChopLogicTabs","defaultTabId","defaultId","setSelectedTabId","tabsClass","handleTabSelect","ChopLogicDialog","isClosing","ChopLogicHeader","getAlertTitle","getAlertIcon","ChopLogicAlert","alertTitle","alertTitleIcon"],"mappings":"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","x_google_ignoreList":[9,10,11]}