chop-logic-components 3.7.3 → 4.0.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 (238) hide show
  1. package/README.md +4 -4
  2. package/dist/components/atoms/button/Button.css +1 -0
  3. package/dist/components/atoms/button/Button.js +66 -0
  4. package/dist/components/atoms/button/icon-button/IconButton.css +1 -0
  5. package/dist/components/atoms/button/icon-button/IconButton.js +15 -0
  6. package/dist/components/atoms/button/icon-button/index.js +3 -0
  7. package/dist/components/atoms/button/index.js +3 -0
  8. package/dist/components/atoms/button/inner-button/InnerButton.css +1 -0
  9. package/dist/components/atoms/button/inner-button/InnerButton.js +28 -0
  10. package/dist/components/atoms/button/inner-button/index.js +3 -0
  11. package/dist/components/atoms/button/primary-button/PrimaryButton.css +1 -0
  12. package/dist/components/atoms/button/primary-button/PrimaryButton.js +18 -0
  13. package/dist/components/atoms/button/primary-button/index.js +3 -0
  14. package/dist/components/atoms/button/secondary-button/SecondaryButton.css +1 -0
  15. package/dist/components/atoms/button/secondary-button/SecondaryButton.js +18 -0
  16. package/dist/components/atoms/button/secondary-button/index.js +3 -0
  17. package/dist/components/atoms/editable-text/EditView.js +37 -0
  18. package/dist/components/atoms/editable-text/EditableText.css +1 -0
  19. package/dist/components/atoms/editable-text/EditableText.js +71 -0
  20. package/dist/components/atoms/editable-text/ReadView.js +25 -0
  21. package/dist/components/atoms/editable-text/index.js +3 -0
  22. package/dist/components/atoms/editable-text/useEditModeState.js +17 -0
  23. package/dist/components/atoms/editable-text/useInputFocus.js +9 -0
  24. package/dist/components/atoms/editable-text/useValueState.js +21 -0
  25. package/dist/components/atoms/error-message/ErrorMessage.css +1 -0
  26. package/dist/components/atoms/error-message/ErrorMessage.js +30 -0
  27. package/dist/components/atoms/error-message/index.js +3 -0
  28. package/dist/components/atoms/header/Header.css +1 -0
  29. package/dist/components/atoms/header/Header.js +22 -0
  30. package/dist/components/atoms/header/index.js +3 -0
  31. package/dist/components/atoms/icon/Icon.css +1 -0
  32. package/dist/components/atoms/icon/Icon.js +31 -0
  33. package/dist/components/atoms/icon/index.js +3 -0
  34. package/dist/components/atoms/image/BasicImage.js +27 -0
  35. package/dist/components/atoms/image/FallBackImage.js +10 -0
  36. package/dist/components/atoms/image/Image.css +1 -0
  37. package/dist/components/atoms/image/Image.js +24 -0
  38. package/dist/components/atoms/image/ResponsivePicture.js +17 -0
  39. package/dist/components/atoms/image/index.js +3 -0
  40. package/dist/components/atoms/input/Input.css +1 -0
  41. package/dist/components/atoms/input/Input.js +10 -0
  42. package/dist/components/atoms/input/index.js +3 -0
  43. package/dist/components/atoms/label/Label.css +1 -0
  44. package/dist/components/atoms/label/Label.js +30 -0
  45. package/dist/components/atoms/label/index.js +3 -0
  46. package/dist/components/atoms/link/Link.css +1 -0
  47. package/dist/components/atoms/link/Link.js +39 -0
  48. package/dist/components/atoms/link/index.js +3 -0
  49. package/dist/components/atoms/portal/Portal.js +11 -0
  50. package/dist/components/atoms/portal/index.js +2 -0
  51. package/dist/components/atoms/tooltip/Tooltip.controller.js +35 -0
  52. package/dist/components/atoms/tooltip/Tooltip.css +1 -0
  53. package/dist/components/atoms/tooltip/Tooltip.js +70 -0
  54. package/dist/components/atoms/tooltip/index.js +3 -0
  55. package/dist/components/contexts/form/FormContext.js +5 -0
  56. package/dist/components/contexts/theme/ThemeContext.js +11 -0
  57. package/dist/components/contexts/theme/ThemeProvider.js +21 -0
  58. package/dist/components/hocs/with-figure-caption/Figure.css +1 -0
  59. package/dist/components/hocs/with-figure-caption/index.js +2 -0
  60. package/dist/components/hocs/with-figure-caption/with-figure-caption.js +11 -0
  61. package/dist/components/hocs/with-tooltip/index.js +2 -0
  62. package/dist/components/hocs/with-tooltip/with-tooltip.js +8 -0
  63. package/dist/components/molecules/accordion/Accordion.css +1 -0
  64. package/dist/components/molecules/accordion/Accordion.js +11 -0
  65. package/dist/components/molecules/accordion/AccordionItem.css +1 -0
  66. package/dist/components/molecules/accordion/AccordionItem.js +24 -0
  67. package/dist/components/molecules/accordion/index.js +3 -0
  68. package/dist/components/molecules/alert/Alert.css +1 -0
  69. package/dist/components/molecules/alert/Alert.helpers.js +41 -0
  70. package/dist/components/molecules/alert/Alert.js +59 -0
  71. package/dist/components/molecules/alert/AlertProgressBar.js +13 -0
  72. package/dist/components/molecules/alert/index.js +3 -0
  73. package/dist/components/molecules/breadcrumbs/BreadcrumbItem.js +27 -0
  74. package/dist/components/molecules/breadcrumbs/BreadcrumbList.js +6 -0
  75. package/dist/components/molecules/breadcrumbs/Breadcrumbs.css +1 -0
  76. package/dist/components/molecules/breadcrumbs/Breadcrumbs.js +31 -0
  77. package/dist/components/molecules/breadcrumbs/index.js +3 -0
  78. package/dist/components/molecules/checkbox/Checkbox.controller.js +25 -0
  79. package/dist/components/molecules/checkbox/Checkbox.css +1 -0
  80. package/dist/components/molecules/checkbox/Checkbox.helpers.js +10 -0
  81. package/dist/components/molecules/checkbox/Checkbox.js +7 -0
  82. package/dist/components/molecules/checkbox/CheckboxStateful.js +61 -0
  83. package/dist/components/molecules/checkbox/CheckboxStateless.js +59 -0
  84. package/dist/components/molecules/checkbox/index.js +3 -0
  85. package/dist/components/molecules/multi-select/MultiSelect.Combobox.js +47 -0
  86. package/dist/components/molecules/multi-select/MultiSelect.Dropdown.js +31 -0
  87. package/dist/components/molecules/multi-select/MultiSelect.controller.js +37 -0
  88. package/dist/components/molecules/multi-select/MultiSelect.helpers.js +22 -0
  89. package/dist/components/molecules/multi-select/MultiSelect.js +61 -0
  90. package/dist/components/molecules/multi-select/MultiSelectComboboxSelectedValues.js +8 -0
  91. package/dist/components/molecules/multi-select/Option.js +40 -0
  92. package/dist/components/molecules/multi-select/index.js +2 -0
  93. package/dist/components/molecules/numeric-input/NumericInput.controller.js +45 -0
  94. package/dist/components/molecules/numeric-input/NumericInput.css +1 -0
  95. package/dist/components/molecules/numeric-input/NumericInput.helpers.js +20 -0
  96. package/dist/components/molecules/numeric-input/NumericInput.js +7 -0
  97. package/dist/components/molecules/numeric-input/NumericInputStateful.js +108 -0
  98. package/dist/components/molecules/numeric-input/NumericInputStateless.js +96 -0
  99. package/dist/components/molecules/numeric-input/index.js +3 -0
  100. package/dist/components/molecules/search/Search.controller.js +42 -0
  101. package/dist/components/molecules/search/Search.css +1 -0
  102. package/dist/components/molecules/search/Search.js +112 -0
  103. package/dist/components/molecules/search/index.js +3 -0
  104. package/dist/components/molecules/select/Select.controller.js +32 -0
  105. package/dist/components/molecules/select/Select.css +1 -0
  106. package/dist/components/molecules/select/Select.helpers.js +16 -0
  107. package/dist/components/molecules/select/Select.js +64 -0
  108. package/dist/components/molecules/select/combobox/Combobox.css +1 -0
  109. package/dist/components/molecules/select/combobox/Combobox.js +46 -0
  110. package/dist/components/molecules/select/combobox/index.js +3 -0
  111. package/dist/components/molecules/select/dropdown/Dropdown.css +1 -0
  112. package/dist/components/molecules/select/dropdown/Dropdown.js +46 -0
  113. package/dist/components/molecules/select/dropdown/index.js +3 -0
  114. package/dist/components/molecules/select/index.js +3 -0
  115. package/dist/components/molecules/select/option/Option.css +1 -0
  116. package/dist/components/molecules/select/option/Option.js +38 -0
  117. package/dist/components/molecules/select/option/index.js +3 -0
  118. package/dist/components/molecules/switch/Switch.controller.js +33 -0
  119. package/dist/components/molecules/switch/Switch.css +1 -0
  120. package/dist/components/molecules/switch/Switch.helpers.js +10 -0
  121. package/dist/components/molecules/switch/Switch.js +68 -0
  122. package/dist/components/molecules/switch/index.js +3 -0
  123. package/dist/components/molecules/text-input/TextInput.controller.js +36 -0
  124. package/dist/components/molecules/text-input/TextInput.css +1 -0
  125. package/dist/components/molecules/text-input/TextInput.helpers.js +18 -0
  126. package/dist/components/molecules/text-input/TextInput.js +7 -0
  127. package/dist/components/molecules/text-input/TextInputButtons.js +37 -0
  128. package/dist/components/molecules/text-input/TextInputStateful.js +92 -0
  129. package/dist/components/molecules/text-input/TextInputStateless.js +89 -0
  130. package/dist/components/molecules/text-input/index.js +3 -0
  131. package/dist/components/organisms/dialog/Dialog.css +1 -0
  132. package/dist/components/organisms/dialog/Dialog.js +32 -0
  133. package/dist/components/organisms/dialog/index.js +3 -0
  134. package/dist/components/organisms/form/Form.controller.js +29 -0
  135. package/dist/components/organisms/form/Form.css +1 -0
  136. package/dist/components/organisms/form/Form.helpers.js +14 -0
  137. package/dist/components/organisms/form/Form.js +48 -0
  138. package/dist/components/organisms/form/index.js +3 -0
  139. package/dist/components/organisms/grid/Grid.controller.js +34 -0
  140. package/dist/components/organisms/grid/Grid.css +1 -0
  141. package/dist/components/organisms/grid/Grid.helpers.js +15 -0
  142. package/dist/components/organisms/grid/Grid.js +60 -0
  143. package/dist/components/organisms/grid/body/GridBody.css +1 -0
  144. package/dist/components/organisms/grid/body/GridBody.js +31 -0
  145. package/dist/components/organisms/grid/checkbox/GridCheckbox.css +1 -0
  146. package/dist/components/organisms/grid/checkbox/GridCheckbox.js +52 -0
  147. package/dist/components/organisms/grid/column-group/GridColumnGroup.css +1 -0
  148. package/dist/components/organisms/grid/column-group/GridColumnGroup.js +26 -0
  149. package/dist/components/organisms/grid/data-cell/GridDataCell.js +5 -0
  150. package/dist/components/organisms/grid/grid-row/GridRow.css +1 -0
  151. package/dist/components/organisms/grid/grid-row/GridRow.js +35 -0
  152. package/dist/components/organisms/grid/grid-row/index.js +3 -0
  153. package/dist/components/organisms/grid/head/GridHead.css +1 -0
  154. package/dist/components/organisms/grid/head/GridHead.js +35 -0
  155. package/dist/components/organisms/grid/header-cell/HeaderCell.js +8 -0
  156. package/dist/components/organisms/grid/header-cell/index.js +2 -0
  157. package/dist/components/organisms/grid/index.js +3 -0
  158. package/dist/components/organisms/grid/select-all-grid-rows-cell/SelectAllGridRowsCell.js +24 -0
  159. package/dist/components/organisms/grid/select-all-grid-rows-cell/index.js +2 -0
  160. package/dist/components/organisms/grid/select-grid-row-cell/SelectGridRowCell.js +24 -0
  161. package/dist/components/organisms/grid/select-grid-row-cell/index.js +2 -0
  162. package/dist/components/organisms/menu/Menu.css +1 -0
  163. package/dist/components/organisms/menu/Menu.js +22 -0
  164. package/dist/components/organisms/menu/index.js +3 -0
  165. package/dist/components/organisms/menu/leaf/MenuLeaf.css +1 -0
  166. package/dist/components/organisms/menu/leaf/MenuLeaf.js +28 -0
  167. package/dist/components/organisms/menu/list-item/MenuListItem.css +1 -0
  168. package/dist/components/organisms/menu/list-item/MenuListItem.js +35 -0
  169. package/dist/components/organisms/menu/sub-menu/SubMenu.css +1 -0
  170. package/dist/components/organisms/menu/sub-menu/SubMenu.js +67 -0
  171. package/dist/components/organisms/menu/sub-menu/index.js +3 -0
  172. package/dist/components/organisms/tabs/Tabs.css +1 -0
  173. package/dist/components/organisms/tabs/Tabs.js +80 -0
  174. package/dist/components/organisms/tabs/button/TabButton.css +1 -0
  175. package/dist/components/organisms/tabs/button/TabButton.js +111 -0
  176. package/dist/components/organisms/tabs/content/TabContent.css +1 -0
  177. package/dist/components/organisms/tabs/content/TabContent.js +19 -0
  178. package/dist/components/organisms/tabs/edit-input/TabEditInput.css +1 -0
  179. package/dist/components/organisms/tabs/edit-input/TabEditInput.js +64 -0
  180. package/dist/components/organisms/tabs/index.js +3 -0
  181. package/dist/components/organisms/tabs/list/TabList.css +1 -0
  182. package/dist/components/organisms/tabs/list/TabList.js +67 -0
  183. package/dist/enums/alert-mode.js +4 -0
  184. package/dist/enums/button-view.js +4 -0
  185. package/dist/enums/element-size.js +4 -0
  186. package/dist/enums/icon-name.js +4 -0
  187. package/dist/enums/index.js +8 -0
  188. package/dist/enums/loader-view.js +4 -0
  189. package/dist/enums/orientation-mode.js +4 -0
  190. package/dist/enums/semantic-color.js +4 -0
  191. package/dist/enums/tooltip-container.js +4 -0
  192. package/dist/hooks/index.js +15 -0
  193. package/dist/hooks/use-auto-close/index.js +2 -0
  194. package/dist/hooks/use-auto-close/use-auto-close.js +18 -0
  195. package/dist/hooks/use-click-outside/index.js +2 -0
  196. package/dist/hooks/use-click-outside/use-click-outside.js +19 -0
  197. package/dist/hooks/use-container-dimensions/index.js +2 -0
  198. package/dist/hooks/use-container-dimensions/use-container-dimensions.js +16 -0
  199. package/dist/hooks/use-debounce/index.js +2 -0
  200. package/dist/hooks/use-debounce/use-debounce.js +15 -0
  201. package/dist/hooks/use-element-ids/index.js +2 -0
  202. package/dist/hooks/use-element-ids/use-element-ids.js +12 -0
  203. package/dist/hooks/use-is-hovered/index.js +2 -0
  204. package/dist/hooks/use-is-hovered/use-is-hovered.js +15 -0
  205. package/dist/hooks/use-is-mounted/index.js +2 -0
  206. package/dist/hooks/use-is-mounted/use-is-mounted.js +15 -0
  207. package/dist/hooks/use-is-overflow/index.js +2 -0
  208. package/dist/hooks/use-is-overflow/use-is-overflow.js +27 -0
  209. package/dist/hooks/use-key-press/index.js +2 -0
  210. package/dist/hooks/use-key-press/use-key-press.js +14 -0
  211. package/dist/hooks/use-modal-focus-trap/index.js +2 -0
  212. package/dist/hooks/use-modal-focus-trap/use-modal-focus-trap.js +20 -0
  213. package/dist/hooks/use-remaining-timer/index.js +2 -0
  214. package/dist/hooks/use-remaining-timer/use-remaining-timer.js +38 -0
  215. package/dist/hooks/use-reset-form-input/index.js +2 -0
  216. package/dist/hooks/use-reset-form-input/use-reset-form-input.js +11 -0
  217. package/dist/hooks/use-theme/index.js +2 -0
  218. package/dist/hooks/use-theme/use-theme.js +6 -0
  219. package/dist/hooks/use-tooltip-position/index.js +2 -0
  220. package/dist/hooks/use-tooltip-position/use-tooltip-position.js +31 -0
  221. package/dist/hooks/use-window-dimensions/index.js +2 -0
  222. package/dist/hooks/use-window-dimensions/use-window-dimensions.js +17 -0
  223. package/dist/index.d.ts +327 -70
  224. package/dist/index.es.js +109 -4591
  225. package/dist/styles/icons.css +1 -0
  226. package/dist/styles/main.css +1 -0
  227. package/dist/utils/get-class-name.js +16 -0
  228. package/dist/utils/handle-dropdown-list-key-press.js +32 -0
  229. package/dist/utils/index.js +3 -0
  230. package/dist/utils/move-focus-on-element-by-id.js +7 -0
  231. package/package.json +75 -22
  232. package/dist/favicon.ico +0 -0
  233. package/dist/index.cjs.js +0 -7
  234. package/dist/index.cjs.js.map +0 -1
  235. package/dist/index.css +0 -1
  236. package/dist/index.es.js.map +0 -1
  237. package/dist/logo.jpeg +0 -0
  238. package/dist/logo.png +0 -0
@@ -0,0 +1,61 @@
1
+ import { jsxs as C, jsx as s } from "react/jsx-runtime";
2
+ import { getClassName as b } from "../../../utils/get-class-name.js";
3
+ import { useCheckboxController as S } from "./Checkbox.controller.js";
4
+ import './Checkbox.css';/* empty css */
5
+ import { useElementIds as I } from "../../../hooks/use-element-ids/use-element-ids.js";
6
+ import g from "../../atoms/label/Label.js";
7
+ import { ElementSize as N } from "../../../enums/element-size.js";
8
+ import { IconName as n } from "../../../enums/icon-name.js";
9
+ const M = ({
10
+ name: o,
11
+ label: c,
12
+ disabled: t,
13
+ noLabel: r,
14
+ required: i = !1,
15
+ iconPosition: l = "left",
16
+ defaultChecked: a,
17
+ onChange: h,
18
+ id: d,
19
+ className: p,
20
+ style: f,
21
+ tabIndex: x
22
+ }) => {
23
+ const { handleChange: k, checked: e } = S({ name: o, defaultChecked: a, onChange: h }), { elementId: m } = I(d), u = b([
24
+ "cl-checkbox",
25
+ p,
26
+ {
27
+ "cl-checkbox_disabled": !!t,
28
+ "cl-checkbox_checked": e
29
+ }
30
+ ]);
31
+ return /* @__PURE__ */ C("div", { style: f, tabIndex: x, className: u, children: [
32
+ /* @__PURE__ */ s(
33
+ "input",
34
+ {
35
+ id: m,
36
+ name: o,
37
+ type: "checkbox",
38
+ disabled: t,
39
+ required: i,
40
+ checked: e,
41
+ onChange: k,
42
+ "aria-label": r ? c : void 0
43
+ }
44
+ ),
45
+ /* @__PURE__ */ s(
46
+ g,
47
+ {
48
+ label: c,
49
+ required: i,
50
+ inputId: m,
51
+ isTextHidden: r,
52
+ icon: e ? n.CheckSquare : n.Square,
53
+ iconPosition: l,
54
+ iconSize: N.Medium
55
+ }
56
+ )
57
+ ] });
58
+ };
59
+ export {
60
+ M as default
61
+ };
@@ -0,0 +1,59 @@
1
+ import { jsxs as k, jsx as r } from "react/jsx-runtime";
2
+ import { getClassName as b } from "../../../utils/get-class-name.js";
3
+ import './Checkbox.css';/* empty css */
4
+ import u from "../../atoms/label/Label.js";
5
+ import { ElementSize as S } from "../../../enums/element-size.js";
6
+ import { IconName as a } from "../../../enums/icon-name.js";
7
+ const _ = ({
8
+ name: c,
9
+ label: o,
10
+ disabled: t,
11
+ noLabel: i,
12
+ required: s = !1,
13
+ iconPosition: l = "left",
14
+ checked: e,
15
+ onChange: n,
16
+ id: x,
17
+ className: p,
18
+ style: d,
19
+ tabIndex: f
20
+ }) => {
21
+ const m = x ?? `checkbox-${c}`, h = b([
22
+ "cl-checkbox",
23
+ p,
24
+ {
25
+ "cl-checkbox_disabled": !!t,
26
+ "cl-checkbox_checked": !!e
27
+ }
28
+ ]);
29
+ return /* @__PURE__ */ k("div", { style: d, tabIndex: f, className: h, children: [
30
+ /* @__PURE__ */ r(
31
+ "input",
32
+ {
33
+ id: m,
34
+ name: c,
35
+ type: "checkbox",
36
+ disabled: t,
37
+ required: s,
38
+ checked: e ?? !1,
39
+ onChange: n,
40
+ "aria-label": i ? o : void 0
41
+ }
42
+ ),
43
+ /* @__PURE__ */ r(
44
+ u,
45
+ {
46
+ label: o,
47
+ required: s,
48
+ inputId: m,
49
+ isTextHidden: i,
50
+ icon: e ? a.CheckSquare : a.Square,
51
+ iconPosition: l,
52
+ iconSize: S.Medium
53
+ }
54
+ )
55
+ ] });
56
+ };
57
+ export {
58
+ _ as default
59
+ };
@@ -0,0 +1,3 @@
1
+ export { default } from './Checkbox.js';
2
+ export * from './Checkbox.js';
3
+ import './Checkbox.css';
@@ -0,0 +1,47 @@
1
+ import { jsxs as x, jsx as c } from "react/jsx-runtime";
2
+ import { getClassName as d } from "../../../utils/get-class-name.js";
3
+ import '../select/combobox/Combobox.css';/* empty css */
4
+ import { MultiSelectComboboxSelectedValues as u } from "./MultiSelectComboboxSelectedValues.js";
5
+ import f from "../../atoms/icon/Icon.js";
6
+ import { ElementSize as C } from "../../../enums/element-size.js";
7
+ import { IconName as S } from "../../../enums/icon-name.js";
8
+ const g = ({
9
+ opened: e,
10
+ onClick: m,
11
+ comboboxId: r,
12
+ dropdownId: l,
13
+ name: i,
14
+ placeholder: s,
15
+ disabled: a,
16
+ required: n,
17
+ values: t
18
+ }) => {
19
+ const b = t?.filter((o) => o.selected).map((o) => o.id), p = d([
20
+ "cl-select-combobox__icon",
21
+ { "cl-select-combobox__icon_opened": e }
22
+ ]);
23
+ return /* @__PURE__ */ x(
24
+ "button",
25
+ {
26
+ type: "button",
27
+ name: i,
28
+ value: b,
29
+ role: "combobox",
30
+ "aria-haspopup": "listbox",
31
+ "aria-expanded": e,
32
+ "aria-controls": l,
33
+ id: r,
34
+ onClick: m,
35
+ disabled: a,
36
+ "aria-required": n,
37
+ className: "cl-select-combobox",
38
+ children: [
39
+ /* @__PURE__ */ c(u, { values: t, placeholder: s }),
40
+ /* @__PURE__ */ c(f, { name: S.ChevronDown, className: p, size: C.Small })
41
+ ]
42
+ }
43
+ );
44
+ };
45
+ export {
46
+ g as MultiSelectCombobox
47
+ };
@@ -0,0 +1,31 @@
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ import { getClassName as p } from "../../../utils/get-class-name.js";
3
+ import { handleDropdownListKeyPress as c } from "../../../utils/handle-dropdown-list-key-press.js";
4
+ import '../select/dropdown/Dropdown.css';/* empty css */
5
+ import { MultiSelectOption as i } from "./Option.js";
6
+ const x = ({
7
+ options: e,
8
+ opened: l,
9
+ onClose: t,
10
+ onSelect: d,
11
+ dropdownId: n
12
+ }) => {
13
+ const s = p([
14
+ "cl-select-dropdown",
15
+ { "cl-select-dropdown_opened": l }
16
+ ]);
17
+ return /* @__PURE__ */ r(
18
+ "ul",
19
+ {
20
+ role: "listbox",
21
+ id: n,
22
+ tabIndex: -1,
23
+ onKeyDown: (o) => c({ e: o, options: e, onClose: t }),
24
+ className: s,
25
+ children: e.map((o) => /* @__PURE__ */ r(i, { value: o, onSelect: () => d(o.id) }, o.id))
26
+ }
27
+ );
28
+ };
29
+ export {
30
+ x as MultiSelectDropdown
31
+ };
@@ -0,0 +1,37 @@
1
+ import { useState as i, useContext as I, useRef as p, useCallback as M } from "react";
2
+ import { getMultiSelectInitialValues as v, getMultiSelectFormValues as f, getMultiSelectUpdatedValues as x } from "./MultiSelect.helpers.js";
3
+ import { FormContext as O } from "../../contexts/form/FormContext.js";
4
+ import { useResetFormInput as b } from "../../../hooks/use-reset-form-input/use-reset-form-input.js";
5
+ function j({
6
+ name: e,
7
+ defaultValue: m,
8
+ onChange: d,
9
+ options: g
10
+ }) {
11
+ const [u, t] = i(!1), { onChangeFormInput: n, initialValues: C } = I(O), o = v({
12
+ name: e,
13
+ options: g,
14
+ initialValues: C,
15
+ defaultValue: m
16
+ }), [r, a] = i(o), c = p(n), l = p(o);
17
+ c.current = n, l.current = o;
18
+ const h = () => t(!1), S = () => t(!u), V = (R) => {
19
+ const s = x(r, R);
20
+ a(s), d?.(s), n?.({ name: e, value: f(s) });
21
+ }, F = M(() => {
22
+ t(!1), a(l.current), c.current?.({
23
+ name: e,
24
+ value: f(l.current)
25
+ });
26
+ }, [e]);
27
+ return b(F), {
28
+ handleClose: h,
29
+ handleToggle: S,
30
+ handleSelect: V,
31
+ opened: u,
32
+ values: r
33
+ };
34
+ }
35
+ export {
36
+ j as useMultiSelectController
37
+ };
@@ -0,0 +1,22 @@
1
+ function u({
2
+ name: e,
3
+ options: t,
4
+ initialValues: d,
5
+ defaultValue: r
6
+ }) {
7
+ return t.map((c) => {
8
+ let l = !1;
9
+ return d?.[e] && Array.isArray(d[e]) && d[e].find(
10
+ (s) => s === c.id || s?.id === c.id
11
+ ) && (l = !0), !d?.[e] && Array.isArray(r) && r.find((s) => s === c.id) && (l = !0), { ...c, selected: l };
12
+ });
13
+ }
14
+ const i = (e) => e.filter((t) => t.selected).map((t) => t.id), n = (e, t) => {
15
+ const d = e.find((r) => r.id === t);
16
+ return e.map((r) => r.id === t ? { ...r, selected: !d?.selected } : r);
17
+ };
18
+ export {
19
+ i as getMultiSelectFormValues,
20
+ u as getMultiSelectInitialValues,
21
+ n as getMultiSelectUpdatedValues
22
+ };
@@ -0,0 +1,61 @@
1
+ import { jsxs as k, jsx as t } from "react/jsx-runtime";
2
+ import { getClassName as M } from "../../../utils/get-class-name.js";
3
+ import { useRef as g } from "react";
4
+ import '../select/Select.css';/* empty css */
5
+ import { MultiSelectCombobox as y } from "./MultiSelect.Combobox.js";
6
+ import { useMultiSelectController as N } from "./MultiSelect.controller.js";
7
+ import { MultiSelectDropdown as j } from "./MultiSelect.Dropdown.js";
8
+ import { useElementIds as v } from "../../../hooks/use-element-ids/use-element-ids.js";
9
+ import { useClickOutside as w } from "../../../hooks/use-click-outside/use-click-outside.js";
10
+ import { useKeyPress as E } from "../../../hooks/use-key-press/use-key-press.js";
11
+ import K from "../../atoms/label/Label.js";
12
+ const G = ({
13
+ options: p,
14
+ name: l,
15
+ label: d,
16
+ required: s = !1,
17
+ placeholder: u = "Not selected",
18
+ disabled: r = !1,
19
+ onChange: f,
20
+ defaultValue: a,
21
+ id: C,
22
+ className: S,
23
+ ...x
24
+ }) => {
25
+ const e = g(null), { elementId: m, dropdownId: n } = v(C), { handleClose: o, handleSelect: I, handleToggle: b, opened: i, values: c } = N({
26
+ name: l,
27
+ options: p,
28
+ defaultValue: a,
29
+ onChange: f
30
+ }), h = M(["cl-select", S]);
31
+ return w({ ref: e, onClickOutsideHandler: o }), E({ keyCode: "Escape", ref: e, onKeyPress: o }), /* @__PURE__ */ k("div", { ref: e, ...x, className: h, children: [
32
+ /* @__PURE__ */ t(K, { label: d, required: s, inputId: m, disabled: r }),
33
+ /* @__PURE__ */ t(
34
+ y,
35
+ {
36
+ name: l,
37
+ opened: i,
38
+ comboboxId: m,
39
+ dropdownId: n,
40
+ onClick: b,
41
+ values: c,
42
+ placeholder: u,
43
+ disabled: r,
44
+ required: s
45
+ }
46
+ ),
47
+ /* @__PURE__ */ t(
48
+ j,
49
+ {
50
+ options: c,
51
+ opened: i,
52
+ onClose: o,
53
+ dropdownId: n,
54
+ onSelect: I
55
+ }
56
+ )
57
+ ] });
58
+ };
59
+ export {
60
+ G as default
61
+ };
@@ -0,0 +1,8 @@
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ const o = ({ values: l, placeholder: s }) => {
3
+ const e = l ? l.filter((n) => n.selected).map((n) => n.label) : [], c = e.length !== 0 && e.length === l?.length, r = e.length === 1, i = e.length > 1;
4
+ return c ? /* @__PURE__ */ t("span", { children: "All items selected" }) : r ? /* @__PURE__ */ t("span", { children: e[0] }) : i ? /* @__PURE__ */ t("span", { children: `${e.length} items selected` }) : /* @__PURE__ */ t("span", { children: s });
5
+ };
6
+ export {
7
+ o as MultiSelectComboboxSelectedValues
8
+ };
@@ -0,0 +1,40 @@
1
+ import { jsxs as d, jsx as t } from "react/jsx-runtime";
2
+ import { getClassName as f } from "../../../utils/get-class-name.js";
3
+ import '../select/option/Option.css';/* empty css */
4
+ import a from "../../atoms/icon/Icon.js";
5
+ import { ElementSize as s } from "../../../enums/element-size.js";
6
+ import { IconName as c } from "../../../enums/icon-name.js";
7
+ const C = ({ value: i, onSelect: l }) => {
8
+ const { id: e, label: r, selected: o } = i, m = f([
9
+ "cl-select-option",
10
+ "cl-select-option_multi",
11
+ { "cl-select-option_selected": o }
12
+ ]);
13
+ return /* @__PURE__ */ d(
14
+ "li",
15
+ {
16
+ id: e,
17
+ role: "option",
18
+ "aria-selected": o,
19
+ tabIndex: 0,
20
+ onKeyDown: ((p) => (n) => {
21
+ switch (n.key) {
22
+ case " ":
23
+ case "SpaceBar":
24
+ case "Enter":
25
+ n.preventDefault(), l(p);
26
+ break;
27
+ }
28
+ })(e),
29
+ onClick: () => l(e),
30
+ className: m,
31
+ children: [
32
+ o ? /* @__PURE__ */ t(a, { name: c.CheckSquare, size: s.Small }) : /* @__PURE__ */ t(a, { name: c.Square, size: s.Small }),
33
+ /* @__PURE__ */ t("span", { children: r })
34
+ ]
35
+ }
36
+ );
37
+ };
38
+ export {
39
+ C as MultiSelectOption
40
+ };
@@ -0,0 +1,2 @@
1
+ export { default } from './MultiSelect.js';
2
+ export * from './MultiSelect.js';
@@ -0,0 +1,45 @@
1
+ import { useContext as G, useState as V, useRef as f, useCallback as M } from "react";
2
+ import { getNumericInputInitialValue as T, validateNumericInputValue as k } from "./NumericInput.helpers.js";
3
+ import { FormContext as D } from "../../contexts/form/FormContext.js";
4
+ import { useResetFormInput as X } from "../../../hooks/use-reset-form-input/use-reset-form-input.js";
5
+ function z({
6
+ name: t,
7
+ defaultValue: v,
8
+ onChange: h,
9
+ onDecrement: C,
10
+ onIncrement: R,
11
+ min: c,
12
+ max: i,
13
+ step: s,
14
+ required: b,
15
+ validator: E
16
+ }) {
17
+ const { onChangeFormInput: u, initialValues: F } = G(D), r = T({ initialValues: F, defaultValue: v, name: t }), m = i ? Number(i) : Number.MAX_SAFE_INTEGER, d = c ? Number(c) : Number.MIN_SAFE_INTEGER, [o, p] = V(r), [g, I] = V(!0), N = f(u), a = f(r);
18
+ N.current = u, a.current = r;
19
+ const l = (e) => {
20
+ p(e);
21
+ const n = k({ value: e, required: b, validator: E, maxValue: m, minValue: d });
22
+ I(n), u?.({ name: t, value: e, valid: n });
23
+ }, _ = (e) => {
24
+ const n = Number(e.target.value);
25
+ l(n), h?.(e);
26
+ }, x = () => {
27
+ l(o + s), R?.();
28
+ }, A = () => {
29
+ l(o - s), C?.();
30
+ }, S = M(() => {
31
+ p(a.current), I(!0), N.current?.({ name: t, value: a.current, valid: !0 });
32
+ }, [t]);
33
+ return X(S), {
34
+ handleChange: _,
35
+ value: o,
36
+ valid: g,
37
+ minValue: d,
38
+ maxValue: m,
39
+ handleIncrement: x,
40
+ handleDecrement: A
41
+ };
42
+ }
43
+ export {
44
+ z as useNumericInputController
45
+ };
@@ -0,0 +1 @@
1
+ .cl-numeric-input{display:flex;flex-direction:column;gap:var(--cl-m-gap);width:100%}.cl-numeric-input__error-message{position:absolute;right:0;top:44px}@media screen and (min-width:640px){.cl-numeric-input__error-message{top:48px}}@media screen and (min-width:1024px){.cl-numeric-input__error-message{top:52px}}
@@ -0,0 +1,20 @@
1
+ function u({
2
+ name: n,
3
+ initialValues: t,
4
+ defaultValue: r
5
+ }) {
6
+ return t?.[n] ? Number(t[n]) : r && typeof r == "number" ? r : 0;
7
+ }
8
+ function i({
9
+ value: n,
10
+ required: t,
11
+ validator: r,
12
+ maxValue: f,
13
+ minValue: e
14
+ }) {
15
+ return t && !r && n === void 0 ? !1 : r && typeof r == "function" ? r(n) : f && e && n && !r ? n <= f && n >= e : !0;
16
+ }
17
+ export {
18
+ u as getNumericInputInitialValue,
19
+ i as validateNumericInputValue
20
+ };
@@ -0,0 +1,7 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import r from "./NumericInputStateful.js";
3
+ import u from "./NumericInputStateless.js";
4
+ const n = (t) => t.stateless ? /* @__PURE__ */ e(u, { ...t }) : /* @__PURE__ */ e(r, { ...t });
5
+ export {
6
+ n as default
7
+ };
@@ -0,0 +1,108 @@
1
+ import { jsxs as t, jsx as e } from "react/jsx-runtime";
2
+ import { getClassName as R } from "../../../utils/get-class-name.js";
3
+ import c from "../../atoms/button/Button.js";
4
+ import { useNumericInputController as z } from "./NumericInput.controller.js";
5
+ import './NumericInput.css';/* empty css */
6
+ import { useElementIds as A } from "../../../hooks/use-element-ids/use-element-ids.js";
7
+ import F from "../../atoms/label/Label.js";
8
+ import G from "../../atoms/input/Input.js";
9
+ import { IconName as u } from "../../../enums/icon-name.js";
10
+ import { ButtonView as p } from "../../../enums/button-view.js";
11
+ import H from "../../atoms/error-message/ErrorMessage.js";
12
+ const q = ({
13
+ name: m,
14
+ label: r,
15
+ errorMessage: f,
16
+ onChange: h,
17
+ onBlur: v,
18
+ onFocus: I,
19
+ onIncrement: d,
20
+ onDecrement: g,
21
+ validator: C,
22
+ min: N,
23
+ max: x,
24
+ id: w,
25
+ tabIndex: V,
26
+ disabled: n = !1,
27
+ required: o = !1,
28
+ readOnly: j = !1,
29
+ hasSpinButtons: k = !0,
30
+ defaultValue: B = 0,
31
+ step: i = 1,
32
+ className: D,
33
+ style: E
34
+ }) => {
35
+ const { elementId: a, errorId: l } = A(w), { value: L, valid: s, handleChange: S, handleDecrement: _, handleIncrement: $, minValue: b, maxValue: y } = z({
36
+ name: m,
37
+ defaultValue: B,
38
+ min: N,
39
+ max: x,
40
+ onChange: h,
41
+ required: o,
42
+ validator: C,
43
+ step: i,
44
+ onDecrement: g,
45
+ onIncrement: d
46
+ }), M = R(["cl-numeric-input", D]);
47
+ return /* @__PURE__ */ t("div", { style: E, className: M, children: [
48
+ /* @__PURE__ */ e(F, { label: r, required: o, inputId: a }),
49
+ /* @__PURE__ */ t(
50
+ G,
51
+ {
52
+ id: a,
53
+ name: m,
54
+ type: "number",
55
+ disabled: n,
56
+ required: o,
57
+ readOnly: j,
58
+ placeholder: "0",
59
+ "aria-invalid": !s,
60
+ "aria-errormessage": l,
61
+ value: L.toString(),
62
+ onChange: S,
63
+ min: b,
64
+ max: y,
65
+ step: i,
66
+ onBlur: v,
67
+ onFocus: I,
68
+ tabIndex: V,
69
+ children: [
70
+ k && /* @__PURE__ */ t("span", { children: [
71
+ /* @__PURE__ */ e(
72
+ c,
73
+ {
74
+ onClick: _,
75
+ view: p.Inner,
76
+ label: `Decrement value for ${r}`,
77
+ icon: u.ChevronLeft,
78
+ disabled: n
79
+ }
80
+ ),
81
+ /* @__PURE__ */ e(
82
+ c,
83
+ {
84
+ onClick: $,
85
+ view: p.Inner,
86
+ label: `Increment value for ${r}`,
87
+ icon: u.ChevronRight,
88
+ disabled: n
89
+ }
90
+ )
91
+ ] }),
92
+ /* @__PURE__ */ e(
93
+ H,
94
+ {
95
+ errorId: l,
96
+ message: f,
97
+ visible: !s,
98
+ className: "cl-numeric-input__error-message"
99
+ }
100
+ )
101
+ ]
102
+ }
103
+ )
104
+ ] });
105
+ };
106
+ export {
107
+ q as default
108
+ };
@@ -0,0 +1,96 @@
1
+ import { jsxs as i, jsx as r } from "react/jsx-runtime";
2
+ import { getClassName as _ } from "../../../utils/get-class-name.js";
3
+ import c from "../../atoms/button/Button.js";
4
+ import './NumericInput.css';/* empty css */
5
+ import b from "../../atoms/label/Label.js";
6
+ import y from "../../atoms/input/Input.js";
7
+ import { IconName as l } from "../../../enums/icon-name.js";
8
+ import { ButtonView as p } from "../../../enums/button-view.js";
9
+ import D from "../../atoms/error-message/ErrorMessage.js";
10
+ const K = ({
11
+ name: e,
12
+ label: t,
13
+ errorMessage: o,
14
+ onChange: u,
15
+ onBlur: f,
16
+ onFocus: v,
17
+ onIncrement: I,
18
+ onDecrement: h,
19
+ min: d,
20
+ max: C,
21
+ id: g,
22
+ tabIndex: N,
23
+ disabled: n = !1,
24
+ required: m = !1,
25
+ readOnly: $ = !1,
26
+ hasSpinButtons: w = !0,
27
+ step: x = 1,
28
+ className: j,
29
+ value: k,
30
+ defaultValue: B,
31
+ style: L
32
+ }) => {
33
+ const s = g ?? `numeric-input-${e}`, a = `${e}-error`, S = _(["cl-numeric-input", j]);
34
+ return /* @__PURE__ */ i("div", { style: L, className: S, children: [
35
+ /* @__PURE__ */ r(b, { label: t, required: m, inputId: s }),
36
+ /* @__PURE__ */ i(
37
+ y,
38
+ {
39
+ id: s,
40
+ name: e,
41
+ type: "number",
42
+ defaultValue: B,
43
+ disabled: n,
44
+ required: m,
45
+ readOnly: $,
46
+ placeholder: "0",
47
+ "aria-invalid": !!o,
48
+ "aria-errormessage": a,
49
+ value: k?.toString() ?? "",
50
+ onChange: u,
51
+ min: d,
52
+ max: C,
53
+ step: x,
54
+ onBlur: f,
55
+ onFocus: v,
56
+ tabIndex: N,
57
+ children: [
58
+ w && /* @__PURE__ */ i("span", { children: [
59
+ /* @__PURE__ */ r(
60
+ c,
61
+ {
62
+ onClick: h,
63
+ view: p.Inner,
64
+ label: `Decrement value for ${t}`,
65
+ icon: l.ChevronLeft,
66
+ disabled: n
67
+ }
68
+ ),
69
+ /* @__PURE__ */ r(
70
+ c,
71
+ {
72
+ onClick: I,
73
+ view: p.Inner,
74
+ label: `Increment value for ${t}`,
75
+ icon: l.ChevronRight,
76
+ disabled: n
77
+ }
78
+ )
79
+ ] }),
80
+ /* @__PURE__ */ r(
81
+ D,
82
+ {
83
+ errorId: a,
84
+ message: o,
85
+ visible: !!o,
86
+ className: "cl-numeric-input__error-message"
87
+ }
88
+ )
89
+ ]
90
+ }
91
+ )
92
+ ] });
93
+ };
94
+ export {
95
+ K as default
96
+ };
@@ -0,0 +1,3 @@
1
+ export { default } from './NumericInput.js';
2
+ export * from './NumericInput.js';
3
+ import './NumericInput.css';