chop-logic-components 3.7.3 → 4.0.1

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 +5 -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 +60 -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,37 @@
1
+ import { jsxs as a, jsx as t } from "react/jsx-runtime";
2
+ import n from "../../atoms/button/Button.js";
3
+ import { IconName as o } from "../../../enums/icon-name.js";
4
+ import { ButtonView as r } from "../../../enums/button-view.js";
5
+ const I = ({
6
+ clearable: i,
7
+ isPasswordButtonVisible: l,
8
+ handleClear: m,
9
+ togglePassword: p,
10
+ passwordShown: s,
11
+ label: f,
12
+ disabled: e
13
+ }) => /* @__PURE__ */ a("span", { children: [
14
+ i && /* @__PURE__ */ t(
15
+ n,
16
+ {
17
+ view: r.Inner,
18
+ onClick: m,
19
+ label: `Clear input for ${f}`,
20
+ icon: o.Delete,
21
+ disabled: e
22
+ }
23
+ ),
24
+ l && /* @__PURE__ */ t(
25
+ n,
26
+ {
27
+ onClick: p,
28
+ view: r.Inner,
29
+ label: "Toggle password visibility",
30
+ icon: s ? o.EyeOff : o.Eye,
31
+ disabled: e
32
+ }
33
+ )
34
+ ] });
35
+ export {
36
+ I as default
37
+ };
@@ -0,0 +1,92 @@
1
+ import { jsxs as f, jsx as e } from "react/jsx-runtime";
2
+ import { getClassName as M } from "../../../utils/get-class-name.js";
3
+ import { useTextInputController as V } from "./TextInput.controller.js";
4
+ import './TextInput.css';/* empty css */
5
+ import k from "./TextInputButtons.js";
6
+ import { useElementIds as z } from "../../../hooks/use-element-ids/use-element-ids.js";
7
+ import A from "../../atoms/label/Label.js";
8
+ import D from "../../atoms/input/Input.js";
9
+ import F from "../../atoms/error-message/ErrorMessage.js";
10
+ const Y = ({
11
+ name: r,
12
+ label: s,
13
+ errorMessage: u,
14
+ defaultValue: d,
15
+ onChange: c,
16
+ onBlur: x,
17
+ onFocus: g,
18
+ onClear: h,
19
+ validator: I,
20
+ maxLength: C,
21
+ id: v,
22
+ tabIndex: w,
23
+ placeholder: T = "Type here...",
24
+ disabled: o = !1,
25
+ required: t = !1,
26
+ clearable: N = !0,
27
+ readOnly: a = !1,
28
+ autoComplete: j = "off",
29
+ type: n = "text",
30
+ className: B,
31
+ style: E
32
+ }) => {
33
+ const { value: P, valid: i, handleChange: S, handleClear: _, passwordShown: l, togglePassword: b } = V({
34
+ defaultValue: d,
35
+ name: r,
36
+ onChange: c,
37
+ onClear: h,
38
+ required: t,
39
+ validator: I
40
+ }), { elementId: m, errorId: p } = z(v), y = n === "password", L = M(["cl-text-input", B]);
41
+ return /* @__PURE__ */ f("div", { style: E, className: L, children: [
42
+ /* @__PURE__ */ e(A, { label: s, required: t, inputId: m }),
43
+ /* @__PURE__ */ f(
44
+ D,
45
+ {
46
+ id: m,
47
+ name: r,
48
+ type: l ? "text" : n,
49
+ disabled: o,
50
+ placeholder: T,
51
+ required: t,
52
+ readOnly: a,
53
+ autoComplete: j,
54
+ "aria-invalid": !i,
55
+ "aria-errormessage": p,
56
+ "aria-readonly": a,
57
+ value: P,
58
+ onChange: S,
59
+ maxLength: C,
60
+ onBlur: x,
61
+ onFocus: g,
62
+ tabIndex: w,
63
+ children: [
64
+ /* @__PURE__ */ e(
65
+ k,
66
+ {
67
+ clearable: N,
68
+ isPasswordButtonVisible: y,
69
+ handleClear: _,
70
+ togglePassword: b,
71
+ passwordShown: l,
72
+ label: s,
73
+ disabled: o
74
+ }
75
+ ),
76
+ /* @__PURE__ */ e(
77
+ F,
78
+ {
79
+ errorId: p,
80
+ message: u,
81
+ visible: !i,
82
+ className: "cl-text-input__error-message"
83
+ }
84
+ )
85
+ ]
86
+ }
87
+ )
88
+ ] });
89
+ };
90
+ export {
91
+ Y as default
92
+ };
@@ -0,0 +1,89 @@
1
+ import { jsxs as u, jsx as o } from "react/jsx-runtime";
2
+ import { getClassName as $ } from "../../../utils/get-class-name.js";
3
+ import { useState as b } from "react";
4
+ import './TextInput.css';/* empty css */
5
+ import y from "./TextInputButtons.js";
6
+ import E from "../../atoms/label/Label.js";
7
+ import L from "../../atoms/input/Input.js";
8
+ import V from "../../atoms/error-message/ErrorMessage.js";
9
+ const R = ({
10
+ name: t,
11
+ label: a,
12
+ errorMessage: s,
13
+ value: c,
14
+ onChange: e,
15
+ onBlur: d,
16
+ onFocus: x,
17
+ onClear: w,
18
+ maxLength: g,
19
+ id: I,
20
+ tabIndex: h,
21
+ placeholder: v = "Type here...",
22
+ disabled: i = !1,
23
+ required: l = !1,
24
+ clearable: P = !0,
25
+ readOnly: n = !1,
26
+ autoComplete: S = "off",
27
+ type: m = "text",
28
+ className: N,
29
+ style: T,
30
+ defaultValue: j
31
+ }) => {
32
+ const p = I ?? `text-input-${t}`, f = `${t}-error`, [r, B] = b(!1), C = m === "password", _ = $(["cl-text-input", N]);
33
+ return /* @__PURE__ */ u("div", { style: T, className: _, children: [
34
+ /* @__PURE__ */ o(E, { label: a, required: l, inputId: p }),
35
+ /* @__PURE__ */ u(
36
+ L,
37
+ {
38
+ id: p,
39
+ name: t,
40
+ type: r ? "text" : m,
41
+ disabled: i,
42
+ placeholder: v,
43
+ required: l,
44
+ readOnly: n,
45
+ defaultValue: j,
46
+ autoComplete: S,
47
+ "aria-invalid": !!s,
48
+ "aria-errormessage": f,
49
+ "aria-readonly": n,
50
+ value: c ?? "",
51
+ onChange: e,
52
+ maxLength: g,
53
+ onBlur: d,
54
+ onFocus: x,
55
+ tabIndex: h,
56
+ children: [
57
+ /* @__PURE__ */ o(
58
+ y,
59
+ {
60
+ clearable: P,
61
+ isPasswordButtonVisible: C,
62
+ handleClear: () => {
63
+ e && e({ target: { value: "" } }), w?.();
64
+ },
65
+ togglePassword: () => {
66
+ B(!r);
67
+ },
68
+ passwordShown: r,
69
+ label: a,
70
+ disabled: i
71
+ }
72
+ ),
73
+ /* @__PURE__ */ o(
74
+ V,
75
+ {
76
+ errorId: f,
77
+ message: s,
78
+ visible: !!s,
79
+ className: "cl-text-input__error-message"
80
+ }
81
+ )
82
+ ]
83
+ }
84
+ )
85
+ ] });
86
+ };
87
+ export {
88
+ R as default
89
+ };
@@ -0,0 +1,3 @@
1
+ export { default } from './TextInput.js';
2
+ export * from './TextInput.js';
3
+ import './TextInput.css';
@@ -0,0 +1 @@
1
+ .cl-dialog{animation:cl-fade-in ease .4s;position:fixed;top:0;left:0;width:100%;height:100%;z-index:inherit;display:flex;justify-content:center;align-items:center;background-color:#0000004d}.cl-dialog__layout{z-index:var(--cl-z-index-modal);background-color:var(--cl-base-background-color);box-shadow:var(--cl-box-shadow);color:var(--cl-base-font-color);padding:var(--cl-l-gap);height:90%;position:absolute;bottom:0;left:0;border-top-left-radius:var(--cl-border-radius);border-top-right-radius:var(--cl-border-radius);font-family:var(--cl-core-font);font-size:var(--cl-typography-base-mobile);font-weight:400;line-height:1.5;letter-spacing:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.cl-dialog__button{position:absolute;right:var(--cl-s-gap);top:var(--cl-s-gap)}@media(min-width:640px){.cl-dialog__layout{font-size:var(--cl-typography-base-tablet)}.cl-dialog__button{right:var(--cl-m-gap);top:var(--cl-m-gap)}}@media(min-width:1024px){.cl-dialog__layout{font-size:var(--cl-typography-base-desktop);padding:var(--cl-xl-gap)}.cl-dialog__button{right:var(--cl-l-gap);top:var(--cl-l-gap)}}@media screen and (min-width:640px){.cl-dialog__layout{width:fit-content;height:fit-content;position:relative;min-width:40%;max-width:90%;max-height:90%;border-bottom-left-radius:var(--cl-border-radius);border-bottom-right-radius:var(--cl-border-radius)}}.cl-dialog_closing{animation:cl-fade-out ease .4s}
@@ -0,0 +1,32 @@
1
+ import { jsx as o, jsxs as n } from "react/jsx-runtime";
2
+ import { getClassName as d } from "../../../utils/get-class-name.js";
3
+ import { useRef as f } from "react";
4
+ import './Dialog.css';/* empty css */
5
+ import { useIsMounted as u } from "../../../hooks/use-is-mounted/use-is-mounted.js";
6
+ import { useModalFocusTrap as p } from "../../../hooks/use-modal-focus-trap/use-modal-focus-trap.js";
7
+ import { useKeyPress as g } from "../../../hooks/use-key-press/use-key-press.js";
8
+ import h from "../../atoms/portal/Portal.js";
9
+ import N from "../../atoms/button/Button.js";
10
+ import { ButtonView as _ } from "../../../enums/button-view.js";
11
+ import { IconName as v } from "../../../enums/icon-name.js";
12
+ import w from "../../atoms/header/Header.js";
13
+ const D = ({ isOpened: r, onClose: l, title: t, children: a, icon: m, ...s }) => {
14
+ const i = u(r), c = i && !r, e = f(null);
15
+ return p({ modalRef: e, isOpened: r }), g({ keyCode: "Escape", ref: e, onKeyPress: l }), i ? /* @__PURE__ */ o(h, { children: /* @__PURE__ */ o("div", { className: d(["cl-dialog", { "cl-dialog_closing": c }]), children: /* @__PURE__ */ n("div", { ref: e, role: "dialog", "aria-modal": "true", ...s, className: "cl-dialog__layout", children: [
16
+ /* @__PURE__ */ o(
17
+ N,
18
+ {
19
+ icon: v.X,
20
+ view: _.Icon,
21
+ label: "Close modal window",
22
+ onClick: l,
23
+ className: "cl-dialog__button"
24
+ }
25
+ ),
26
+ /* @__PURE__ */ o("header", { children: /* @__PURE__ */ o(w, { as: "h3", icon: m, children: t }) }),
27
+ /* @__PURE__ */ o("div", { children: a })
28
+ ] }) }) }) : null;
29
+ };
30
+ export {
31
+ D as default
32
+ };
@@ -0,0 +1,3 @@
1
+ export { default } from './Dialog.js';
2
+ export * from './Dialog.js';
3
+ import './Dialog.css';
@@ -0,0 +1,29 @@
1
+ import { useState as e } from "react";
2
+ import { getInitialValidationState as S, isFormDataValid as h, updateValidationState as f } from "./Form.helpers.js";
3
+ function I({
4
+ initialValues: a,
5
+ onReset: d,
6
+ onSubmit: i,
7
+ onClickSubmit: c
8
+ }) {
9
+ const [n, o] = e(a), [l, u] = e(S(a)), [r, m] = e(0);
10
+ return {
11
+ handleInputChange: (t) => {
12
+ const s = { ...n, [t.name]: t.value };
13
+ o(s), u(f(l, t));
14
+ },
15
+ handleSubmit: (t) => {
16
+ t.preventDefault();
17
+ const D = { ...Object.fromEntries(new FormData(t.target)), ...n };
18
+ i?.(t), c?.(D);
19
+ },
20
+ handleReset: (t) => {
21
+ d?.(t), o(a), m(r + 1);
22
+ },
23
+ resetSignal: r,
24
+ valid: h(l)
25
+ };
26
+ }
27
+ export {
28
+ I as useFormController
29
+ };
@@ -0,0 +1 @@
1
+ .cl-form{display:grid;align-items:end;gap:var(--cl-l-gap);grid-template-columns:auto;grid-template-rows:auto}@media screen and (min-width:640px){.cl-form{grid-template-columns:repeat(2,1fr)}}@media screen and (min-width:1024px){.cl-form{grid-template-columns:repeat(3,1fr)}}@media screen and (min-width:1280px){.cl-form{grid-template-columns:repeat(4,1fr)}}.cl-form__buttons{display:flex;align-items:center;justify-content:space-between;padding-top:var(--cl-l-gap);grid-column:1 / -1}
@@ -0,0 +1,14 @@
1
+ function e(t) {
2
+ return t ? Object.keys(t).map((n) => [n, !0]) : [];
3
+ }
4
+ function i(t, n) {
5
+ return n?.valid === void 0 ? t : t.map((r) => r[0] !== n.name ? r : [r[0], !!n?.valid]);
6
+ }
7
+ function u(t) {
8
+ return t.every((n) => n[1]);
9
+ }
10
+ export {
11
+ e as getInitialValidationState,
12
+ u as isFormDataValid,
13
+ i as updateValidationState
14
+ };
@@ -0,0 +1,48 @@
1
+ import { jsx as e, jsxs as n } from "react/jsx-runtime";
2
+ import { getClassName as g } from "../../../utils/get-class-name.js";
3
+ import { useMemo as v } from "react";
4
+ import { useFormController as S } from "./Form.controller.js";
5
+ import './Form.css';/* empty css */
6
+ import { FormContext as F } from "../../contexts/form/FormContext.js";
7
+ import s from "../../atoms/button/Button.js";
8
+ import { ButtonView as N } from "../../../enums/button-view.js";
9
+ import { IconName as i } from "../../../enums/icon-name.js";
10
+ const M = ({
11
+ children: l,
12
+ initialValues: o,
13
+ onReset: a,
14
+ onSubmit: c,
15
+ onClickSubmit: d,
16
+ hasReset: t = !0,
17
+ className: p,
18
+ ...u
19
+ }) => {
20
+ const { handleInputChange: r, handleSubmit: f, handleReset: h, resetSignal: m, valid: x } = S({
21
+ initialValues: o,
22
+ onReset: a,
23
+ onSubmit: c,
24
+ onClickSubmit: d
25
+ }), b = g(["cl-form", p]), C = v(
26
+ () => ({ onChangeFormInput: r, initialValues: o, resetSignal: m }),
27
+ [r, o, m]
28
+ );
29
+ return /* @__PURE__ */ e("form", { onSubmit: f, onReset: h, ...u, className: b, children: /* @__PURE__ */ n(F.Provider, { value: C, children: [
30
+ l,
31
+ /* @__PURE__ */ n("div", { className: "cl-form__buttons", children: [
32
+ t && /* @__PURE__ */ e(s, { type: "reset", text: "Reset", icon: i.Delete, view: N.Secondary }),
33
+ /* @__PURE__ */ e(
34
+ s,
35
+ {
36
+ type: "submit",
37
+ text: "Submit",
38
+ icon: i.ArrowRight,
39
+ extended: !t,
40
+ disabled: !x
41
+ }
42
+ )
43
+ ] })
44
+ ] }) });
45
+ };
46
+ export {
47
+ M as default
48
+ };
@@ -0,0 +1,3 @@
1
+ export { default } from './Form.js';
2
+ export * from './Form.js';
3
+ import './Form.css';
@@ -0,0 +1,34 @@
1
+ import { useState as m } from "react";
2
+ import { useElementIds as S } from "../../../hooks/use-element-ids/use-element-ids.js";
3
+ const B = ({
4
+ data: n,
5
+ id: d,
6
+ onSelect: o
7
+ }) => {
8
+ const { elementId: a } = S(d), [l, h] = m([]), c = n.map((e) => e.id), r = c.length === l.length, I = n.some((e) => e?.disabled), t = (e) => {
9
+ h(e), o?.(e);
10
+ };
11
+ return {
12
+ elementId: a,
13
+ isAllSelected: r,
14
+ isAllCheckboxDisabled: I,
15
+ selectedIds: l,
16
+ handleSelectAll: () => {
17
+ t(c);
18
+ },
19
+ handleDeselectAll: () => {
20
+ t([]);
21
+ },
22
+ handleSelectRowById: (e) => {
23
+ const s = [...l, e];
24
+ t(s);
25
+ },
26
+ handleDeselectRowById: (e) => {
27
+ const s = l.filter((i) => i !== e);
28
+ t(s);
29
+ }
30
+ };
31
+ };
32
+ export {
33
+ B as useGridController
34
+ };
@@ -0,0 +1 @@
1
+ .cl-grid{border-collapse:collapse}.cl-grid__caption{color:var(--cl-base-font-color);padding:var(--cl-m-gap);font-family:var(--cl-core-font);font-size:var(--cl-typography-base-mobile);font-weight:700;line-height:1.5;letter-spacing:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(min-width:640px){.cl-grid__caption{font-size:var(--cl-typography-base-tablet)}}@media(min-width:1024px){.cl-grid__caption{font-size:var(--cl-typography-base-desktop)}}.cl-grid__wrapper{overflow-x:auto}
@@ -0,0 +1,15 @@
1
+ function u({
2
+ item: e,
3
+ columns: s,
4
+ renderDataItem: o
5
+ }) {
6
+ const i = [];
7
+ for (const l of s) {
8
+ let f;
9
+ o && e[l.field] ? f = o(e, l.field) : e[l.field] ? f = e[l.field].toString() : f = "", i.push({ field: l.field, value: f });
10
+ }
11
+ return i;
12
+ }
13
+ export {
14
+ u as getGridRowValues
15
+ };
@@ -0,0 +1,60 @@
1
+ import { jsx as e, jsxs as g } from "react/jsx-runtime";
2
+ import { getClassName as w } from "../../../utils/get-class-name.js";
3
+ import './Grid.css';/* empty css */
4
+ import { GridBody as y } from "./body/GridBody.js";
5
+ import { GridColumnGroup as B } from "./column-group/GridColumnGroup.js";
6
+ import { useGridController as x } from "./Grid.controller.js";
7
+ import { GridHead as C } from "./head/GridHead.js";
8
+ const b = ({
9
+ columns: l,
10
+ data: d,
11
+ id: i,
12
+ onSelect: t,
13
+ renderDataItem: s,
14
+ caption: o,
15
+ selectable: r = !1,
16
+ className: c,
17
+ ...m
18
+ }) => {
19
+ const {
20
+ elementId: a,
21
+ handleSelectAll: n,
22
+ handleDeselectAll: p,
23
+ isAllCheckboxDisabled: f,
24
+ isAllSelected: h,
25
+ handleDeselectRowById: I,
26
+ handleSelectRowById: A,
27
+ selectedIds: G
28
+ } = x({ id: i, data: d, onSelect: t });
29
+ return /* @__PURE__ */ e("div", { className: "cl-grid__wrapper", children: /* @__PURE__ */ g("table", { ...m, className: w(["cl-grid", c]), children: [
30
+ o && /* @__PURE__ */ e("caption", { className: "cl-grid__caption", children: o }),
31
+ /* @__PURE__ */ e(B, { columns: l, selectable: r }),
32
+ /* @__PURE__ */ e(
33
+ C,
34
+ {
35
+ gridId: a,
36
+ columns: l,
37
+ selectable: r,
38
+ selectAll: n,
39
+ deselectAll: p,
40
+ isAllSelected: h,
41
+ isAllCheckboxDisabled: f
42
+ }
43
+ ),
44
+ /* @__PURE__ */ e(
45
+ y,
46
+ {
47
+ columns: l,
48
+ data: d,
49
+ selectable: r,
50
+ selectRowById: A,
51
+ deselectRowById: I,
52
+ selectedIds: G,
53
+ renderDataItem: s
54
+ }
55
+ )
56
+ ] }) });
57
+ };
58
+ export {
59
+ b as default
60
+ };
@@ -0,0 +1 @@
1
+ .cl-grid-body{color:var(--cl-base-font-color);font-family:var(--cl-core-font);font-size:var(--cl-typography-base-mobile);font-weight:400;line-height:1.5;letter-spacing:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.cl-grid-body td{padding:var(--cl-xs-gap)}@media(min-width:640px){.cl-grid-body{font-size:var(--cl-typography-base-tablet)}.cl-grid-body td{padding:var(--cl-s-gap)}}@media(min-width:1024px){.cl-grid-body{font-size:var(--cl-typography-base-desktop)}.cl-grid-body td{padding:var(--cl-m-gap)}}
@@ -0,0 +1,31 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import { getGridRowValues as p } from "../Grid.helpers.js";
3
+ import { GridRow as c } from "../grid-row/GridRow.js";
4
+ import './GridBody.css';/* empty css */
5
+ const f = ({
6
+ selectRowById: d,
7
+ deselectRowById: i,
8
+ renderDataItem: s,
9
+ selectedIds: a,
10
+ selectable: e,
11
+ data: l,
12
+ columns: t
13
+ }) => /* @__PURE__ */ o("tbody", { className: "cl-grid-body", children: l.map((r) => {
14
+ const m = p({ item: r, columns: t, renderDataItem: s });
15
+ return /* @__PURE__ */ o(
16
+ c,
17
+ {
18
+ rowId: r.id,
19
+ disabled: r?.disabled,
20
+ selectRowById: d,
21
+ deselectRowById: i,
22
+ selectable: e,
23
+ values: m,
24
+ selectedIds: a
25
+ },
26
+ r.id
27
+ );
28
+ }) });
29
+ export {
30
+ f as GridBody
31
+ };
@@ -0,0 +1 @@
1
+ .cl-grid-checkbox{display:flex;gap:var(--cl-s-gap);padding:var(--cl-s-gap);position:relative;overflow:hidden;background-position:center}.cl-grid-checkbox label{cursor:pointer;gap:var(--cl-s-gap);font-size:var(--cl-typography-small-mobile)}.cl-grid-checkbox label:hover,.cl-grid-checkbox label:active{text-shadow:var(--cl-text-shadow)}.cl-grid-checkbox__input{position:absolute;z-index:-1;opacity:0;top:4px;left:0;margin:0}.cl-grid-checkbox__input:focus-visible+label{outline:var(--cl-outline-border);outline-offset:var(--cl-xs-gap)}.cl-grid-checkbox_disabled{pointer-events:none;opacity:.5}
@@ -0,0 +1,52 @@
1
+ import { jsxs as d, jsx as t } from "react/jsx-runtime";
2
+ import { getClassName as p } from "../../../../utils/get-class-name.js";
3
+ import './GridCheckbox.css';/* empty css */
4
+ import { useElementIds as x } from "../../../../hooks/use-element-ids/use-element-ids.js";
5
+ import b from "../../../atoms/label/Label.js";
6
+ import { IconName as r } from "../../../../enums/icon-name.js";
7
+ const I = ({
8
+ name: s,
9
+ label: m,
10
+ disabled: o,
11
+ required: c = !1,
12
+ onChange: l,
13
+ checked: e = !1,
14
+ ...n
15
+ }) => {
16
+ const { elementId: i } = x(n?.id), a = p([
17
+ "cl-grid-checkbox",
18
+ {
19
+ "cl-grid-checkbox_disabled": !!o,
20
+ "cl-grid-checkbox_checked": !!e
21
+ }
22
+ ]);
23
+ return /* @__PURE__ */ d("div", { className: a, children: [
24
+ /* @__PURE__ */ t(
25
+ "input",
26
+ {
27
+ id: i,
28
+ name: s,
29
+ type: "checkbox",
30
+ disabled: o,
31
+ required: c,
32
+ checked: e,
33
+ onChange: l,
34
+ className: "cl-grid-checkbox__input"
35
+ }
36
+ ),
37
+ /* @__PURE__ */ t(
38
+ b,
39
+ {
40
+ label: m,
41
+ required: c,
42
+ inputId: i,
43
+ isTextHidden: !0,
44
+ iconPosition: "left",
45
+ icon: e ? r.CheckSquare : r.Square
46
+ }
47
+ )
48
+ ] });
49
+ };
50
+ export {
51
+ I as GridCheckbox
52
+ };
@@ -0,0 +1 @@
1
+ .cl-grid-column{border-right:var(--cl-light-border)}.cl-grid-column_first{border-left:var(--cl-light-border)}.cl-grid-column_highlighted{background-color:var(--cl-surface-tonal-a0)}
@@ -0,0 +1,26 @@
1
+ import { jsxs as m, jsx as c } from "react/jsx-runtime";
2
+ import { getClassName as s } from "../../../../utils/get-class-name.js";
3
+ import './GridColumnGroup.css';/* empty css */
4
+ const e = ({
5
+ columns: i,
6
+ selectable: r
7
+ }) => /* @__PURE__ */ m("colgroup", { children: [
8
+ r && /* @__PURE__ */ c("col", { className: "cl-grid-column cl-grid-column_first cl-grid-column_check" }),
9
+ i.map((l, o) => /* @__PURE__ */ c(
10
+ "col",
11
+ {
12
+ className: s([
13
+ "cl-grid-column",
14
+ l?.className,
15
+ {
16
+ "cl-grid-column_first": o === 0 && !r,
17
+ "cl-grid-column_highlighted": !!l?.highlighted
18
+ }
19
+ ])
20
+ },
21
+ l?.title
22
+ ))
23
+ ] });
24
+ export {
25
+ e as GridColumnGroup
26
+ };
@@ -0,0 +1,5 @@
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ const o = ({ value: r }) => /* @__PURE__ */ t("td", { children: r });
3
+ export {
4
+ o as GridDataCell
5
+ };
@@ -0,0 +1 @@
1
+ .cl-grid-row{border-bottom:var(--cl-light-border);background-color:var(--cl-base-background-color)}.cl-grid-row_selected{background-color:var(--cl-surface-tonal-a0)}
@@ -0,0 +1,35 @@
1
+ import { jsxs as n, jsx as t } from "react/jsx-runtime";
2
+ import { getClassName as p } from "../../../../utils/get-class-name.js";
3
+ import { GridDataCell as f } from "../data-cell/GridDataCell.js";
4
+ import { SelectGridRowCell as u } from "../select-grid-row-cell/SelectGridRowCell.js";
5
+ import './GridRow.css';/* empty css */
6
+ const R = ({
7
+ rowId: e,
8
+ selectRowById: o,
9
+ deselectRowById: i,
10
+ selectable: s,
11
+ values: c,
12
+ selectedIds: m,
13
+ disabled: a
14
+ }) => {
15
+ const r = m.includes(e);
16
+ return /* @__PURE__ */ n("tr", { className: p(["cl-grid-row", { "cl-grid-row_selected": r }]), children: [
17
+ s && /* @__PURE__ */ t(
18
+ u,
19
+ {
20
+ rowId: e,
21
+ selectRowById: o,
22
+ deselectRowById: i,
23
+ isRowSelected: r,
24
+ disabled: a
25
+ }
26
+ ),
27
+ c.map((l) => {
28
+ const d = `cell-${e}-${l.field}`;
29
+ return /* @__PURE__ */ t(f, { value: l.value }, d);
30
+ })
31
+ ] });
32
+ };
33
+ export {
34
+ R as GridRow
35
+ };
@@ -0,0 +1,3 @@
1
+ export { default } from './GridRow.js';
2
+ export * from './GridRow.js';
3
+ import './GridRow.css';
@@ -0,0 +1 @@
1
+ .cl-grid-head{color:var(--cl-base-font-color);font-family:var(--cl-core-font);font-size:var(--cl-typography-base-mobile);font-weight:700;line-height:1.5;letter-spacing:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.cl-grid-head th{padding:var(--cl-xs-gap)}@media(min-width:640px){.cl-grid-head{font-size:var(--cl-typography-base-tablet)}.cl-grid-head th{padding:var(--cl-s-gap)}}@media(min-width:1024px){.cl-grid-head{font-size:var(--cl-typography-base-desktop)}.cl-grid-head th{padding:var(--cl-m-gap)}}.cl-grid-head__row{border-top:var(--cl-light-border);border-bottom:var(--cl-light-border);background-color:var(--cl-accent-background)}