@uva-glass/component-library 3.51.0 → 3.52.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 (60) hide show
  1. package/dist/RteEditor.module-CUi7Vqe8.js +37 -0
  2. package/dist/RteEditor.module-CUi7Vqe8.js.map +1 -0
  3. package/dist/{SelectListbox.module-CgZyIxwT.js → SelectListbox.module-CXqMuXRB.js} +24 -23
  4. package/dist/SelectListbox.module-CXqMuXRB.js.map +1 -0
  5. package/dist/{TablePlugin-CeZO4BR1.js → TablePlugin-BLbsvcuu.js} +2 -2
  6. package/dist/{TablePlugin-CeZO4BR1.js.map → TablePlugin-BLbsvcuu.js.map} +1 -1
  7. package/dist/assets/CheckboxButtonBar.css +1 -1
  8. package/dist/assets/FormInput.css +1 -1
  9. package/dist/assets/InputField.css +1 -1
  10. package/dist/assets/RteEditor.css +1 -1
  11. package/dist/assets/SelectListbox.css +1 -1
  12. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.d.ts +3 -3
  13. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.js +45 -45
  14. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.js.map +1 -1
  15. package/dist/components/CheckboxTree/CheckboxTree.js +1 -1
  16. package/dist/components/FormInput/FormInput.d.ts +3 -1
  17. package/dist/components/FormInput/FormInput.js +35 -31
  18. package/dist/components/FormInput/FormInput.js.map +1 -1
  19. package/dist/components/InputField/InputField.d.ts +2 -0
  20. package/dist/components/InputField/InputField.js +29 -26
  21. package/dist/components/InputField/InputField.js.map +1 -1
  22. package/dist/components/InputField/InputField.stories.js +1 -1
  23. package/dist/components/MultiSelect/MultiSelect.js +1 -1
  24. package/dist/components/MultiSelect/MultiSelect.stories.js +1 -1
  25. package/dist/components/MultiSelect/components/MultiSelectHeader.js +1 -1
  26. package/dist/components/MultiSelect/index.js +1 -1
  27. package/dist/components/PeriodSelector/PeriodSelector.js +13 -13
  28. package/dist/components/PeriodSelector/PeriodSelector.js.map +1 -1
  29. package/dist/components/ProgrammeCard/ProgrammeCard.stories.js +1 -1
  30. package/dist/components/RadioTabSelector/RadioTabSelector.js +1 -1
  31. package/dist/components/RteEditor/EditorHeader/EditorHeader.js +1 -1
  32. package/dist/components/RteEditor/Plugins/BlockFormatPlugin/BlockFormatPlugin.js +1 -1
  33. package/dist/components/RteEditor/Plugins/HistoryPlugin/HistoryPlugin.js +2 -2
  34. package/dist/components/RteEditor/Plugins/LinkPlugin/AddLinkForm/AddLinkFrom.js +1 -1
  35. package/dist/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.js +2 -2
  36. package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.js +1 -1
  37. package/dist/components/RteEditor/Plugins/TablePlugin/AddTableFrom.js +1 -1
  38. package/dist/components/RteEditor/Plugins/TablePlugin/TablePlugin.js +2 -2
  39. package/dist/components/RteEditor/Plugins/TablePlugin/index.js +1 -1
  40. package/dist/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.js +2 -2
  41. package/dist/components/RteEditor/Plugins/index.js +1 -1
  42. package/dist/components/RteEditor/RteEditor.d.ts +8 -6
  43. package/dist/components/RteEditor/RteEditor.js +367 -356
  44. package/dist/components/RteEditor/RteEditor.js.map +1 -1
  45. package/dist/components/RteEditor/UvaTheme/UvaTheme.js +1 -1
  46. package/dist/components/SelectListbox/SelectListbox.d.ts +4 -2
  47. package/dist/components/SelectListbox/SelectListbox.js +20 -18
  48. package/dist/components/SelectListbox/SelectListbox.js.map +1 -1
  49. package/dist/components/SelectListbox/components/SelectButton.d.ts +1 -0
  50. package/dist/components/SelectListbox/components/SelectButton.js +34 -25
  51. package/dist/components/SelectListbox/components/SelectButton.js.map +1 -1
  52. package/dist/components/SelectListbox/components/SelectContainer.js +1 -1
  53. package/dist/components/SelectListbox/components/SelectOption.js +1 -1
  54. package/dist/components/SelectListbox/components/SelectOptionBox.js +1 -1
  55. package/dist/components/index.js +1 -1
  56. package/dist/index.js +1 -1
  57. package/package.json +8 -8
  58. package/dist/RteEditor.module-CmYZ4MmA.js +0 -36
  59. package/dist/RteEditor.module-CmYZ4MmA.js.map +0 -1
  60. package/dist/SelectListbox.module-CgZyIxwT.js.map +0 -1
@@ -1,5 +1,5 @@
1
- import { jsxs as u, jsx as t, Fragment as b } from "react/jsx-runtime";
2
- import { c as h } from "../../clsx-OuTLNxxd.js";
1
+ import { jsxs as c, Fragment as v, jsx as r } from "react/jsx-runtime";
2
+ import { c as l } from "../../clsx-OuTLNxxd.js";
3
3
  import "../Accordion/Accordion.js";
4
4
  import "react";
5
5
  import "../Buttons/Button.js";
@@ -7,7 +7,7 @@ import "../Buttons/LinkButton.js";
7
7
  import "@react-aria/button";
8
8
  import "../Checkbox/Checkbox.js";
9
9
  import { Label as k } from "../Label/Label.js";
10
- import { FeedbackBox as v } from "../FeedbackBox/FeedbackBox.js";
10
+ import { FeedbackBox as g } from "../FeedbackBox/FeedbackBox.js";
11
11
  import "@react-aria/dialog";
12
12
  import "@react-aria/focus";
13
13
  import "@react-aria/overlays";
@@ -17,7 +17,7 @@ import "../IconButton/IconButton.js";
17
17
  import "../Input/Input.js";
18
18
  import "../InputField/InputField.js";
19
19
  import "react-router";
20
- import "../../TablePlugin-CeZO4BR1.js";
20
+ import "../../TablePlugin-BLbsvcuu.js";
21
21
  import "../RteEditor/Providers/LanguageProvider.js";
22
22
  import "../RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js";
23
23
  import "../RteEditor/hooks/components/Flyout.js";
@@ -29,45 +29,49 @@ import "../SelectListbox/SelectProvider.js";
29
29
  import "../Sortable/components/SortableItem.js";
30
30
  import "../../SortableProvider-BbwlEPIr.js";
31
31
  import "../WeekSelector/components/WeekSelectorOptionContainer.js";
32
- import '../../assets/FormInput.css';const o = {
33
- "form-input__container": "_form-input__container_aau49_1",
34
- "form-input__container--label-left": "_form-input__container--label-left_aau49_7",
35
- "form-input__container--label-top": "_form-input__container--label-top_aau49_18",
36
- "form-input__input-feedback-container": "_form-input__input-feedback-container_aau49_25",
37
- "form-input__input-container": "_form-input__input-container_aau49_35",
38
- "form-input__input": "_form-input__input_aau49_25"
39
- }, Z = ({
40
- id: i,
41
- label: n,
42
- labelPosition: c = "top",
32
+ import '../../assets/FormInput.css';const t = {
33
+ "form-input__container": "_form-input__container_rt0pn_1",
34
+ "form-input__container--label-left": "_form-input__container--label-left_rt0pn_7",
35
+ "form-input__container--label-top": "_form-input__container--label-top_rt0pn_18",
36
+ "form-input__input-feedback-container": "_form-input__input-feedback-container_rt0pn_25",
37
+ "form-input__input-container": "_form-input__input-container_rt0pn_35",
38
+ "form-input__input": "_form-input__input_rt0pn_25",
39
+ "not-valid": "_not-valid_rt0pn_60"
40
+ }, T = ({
41
+ id: o,
42
+ label: i,
43
+ labelPosition: f = "top",
43
44
  type: p = "text",
44
- required: f = !1,
45
+ required: u = !1,
46
+ notValid: s = !1,
45
47
  notValidatedText: e = "",
46
48
  onChange: m,
47
- noContainer: l = !1,
48
- customInput: a
49
+ noContainer: d = !1,
50
+ customInput: _
49
51
  }) => {
50
- const s = (r) => ["e", "E", "+", "-"].includes(r.key) && r.preventDefault(), d = (r) => {
51
- typeof m == "function" && m(r.target.value);
52
- }, _ = /* @__PURE__ */ u(b, { children: [
53
- n && /* @__PURE__ */ t(k, { htmlFor: i, required: f, alignRight: !0, children: n }),
54
- /* @__PURE__ */ u("div", { className: o["form-input__input-feedback-container"], children: [
55
- a || /* @__PURE__ */ t("div", { className: o["form-input__input-container"], children: /* @__PURE__ */ t(
52
+ const b = (n) => ["e", "E", "+", "-"].includes(n.key) && n.preventDefault(), h = (n) => {
53
+ typeof m == "function" && m(n.target.value);
54
+ }, a = /* @__PURE__ */ c(v, { children: [
55
+ i && /* @__PURE__ */ r(k, { htmlFor: o, required: u, alignRight: !0, children: i }),
56
+ /* @__PURE__ */ c("div", { className: t["form-input__input-feedback-container"], children: [
57
+ _ || /* @__PURE__ */ r("div", { className: t["form-input__input-container"], children: /* @__PURE__ */ r(
56
58
  "input",
57
59
  {
58
- id: i,
60
+ id: o,
59
61
  type: p,
60
- ...p === "number" && { onKeyDown: s },
61
- onChange: d,
62
- className: o["form-input__input"]
62
+ ...p === "number" && { onKeyDown: b },
63
+ onChange: h,
64
+ className: l(t["form-input__input"], {
65
+ [t["not-valid"]]: s
66
+ })
63
67
  }
64
68
  ) }),
65
- e !== "" && /* @__PURE__ */ t(v, { level: "error", feedback: e })
69
+ e !== "" && /* @__PURE__ */ r(g, { level: "error", feedback: e })
66
70
  ] })
67
71
  ] });
68
- return l ? _ : /* @__PURE__ */ t("div", { className: h(o["form-input__container"], o[`form-input__container--label-${c}`]), children: _ });
72
+ return d ? a : /* @__PURE__ */ r("div", { className: l(t["form-input__container"], t[`form-input__container--label-${f}`]), children: a });
69
73
  };
70
74
  export {
71
- Z as FormInput
75
+ T as FormInput
72
76
  };
73
77
  //# sourceMappingURL=FormInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormInput.js","sources":["../../../src/components/FormInput/FormInput.tsx"],"sourcesContent":["import { clsx } from 'clsx';\n\nimport type { ReactNode } from 'react';\n\nimport styles from './FormInput.module.css';\n\nimport { FeedbackBox, Label } from 'components';\n\nexport interface FormInputProps {\n /** The id of the input element. */\n id: string;\n /** label text if empthy the label is not renderd */\n label: string;\n /** label position `top` or `left`. The default is `top`. */\n labelPosition?: 'top' | 'left';\n /** The type of the input element. */\n type?: 'text' | 'password' | 'email' | 'number';\n /** Shows red * */\n required?: boolean;\n /** error text to display if set */\n notValidatedText?: string;\n /** Returns array of selected values as number */\n onChange?: (value: string) => void;\n /** Determines if the container wrapper is rendered. */\n noContainer?: boolean;\n /** Optional custom input that will replace the default input */\n customInput?: ReactNode;\n}\n\nexport const FormInput = ({\n id,\n label,\n labelPosition = 'top',\n type = 'text',\n required = false,\n notValidatedText = '',\n onChange,\n noContainer = false,\n customInput,\n}: FormInputProps) => {\n const blockInvalidChar = (event: React.KeyboardEvent<HTMLInputElement>) =>\n ['e', 'E', '+', '-'].includes(event.key) && event.preventDefault();\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (typeof onChange === 'function') {\n onChange(event.target.value);\n }\n };\n\n const componentContent = (\n <>\n {label && (\n <Label htmlFor={id} required={required} alignRight>\n {label}\n </Label>\n )}\n\n <div className={styles['form-input__input-feedback-container']}>\n {customInput ? (\n customInput\n ) : (\n <div className={styles['form-input__input-container']}>\n <input\n id={id}\n type={type}\n {...(type === 'number' && { onKeyDown: blockInvalidChar })}\n onChange={handleChange}\n className={styles['form-input__input']}\n />\n </div>\n )}\n {notValidatedText !== '' && <FeedbackBox level=\"error\" feedback={notValidatedText} />}\n </div>\n </>\n );\n\n return noContainer ? (\n componentContent\n ) : (\n <div className={clsx(styles['form-input__container'], styles[`form-input__container--label-${labelPosition}`])}>\n {componentContent}\n </div>\n );\n};\n"],"names":["FormInput","id","label","labelPosition","type","required","notValidatedText","onChange","noContainer","customInput","blockInvalidChar","event","handleChange","componentContent","jsxs","Fragment","Label","styles","jsx","FeedbackBox","clsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BaA,IAAY,CAAC;AAAA,EACxB,IAAAC;AAAA,EACA,OAAAC;AAAA,EACA,eAAAC,IAAgB;AAAA,EAChB,MAAAC,IAAO;AAAA,EACP,UAAAC,IAAW;AAAA,EACX,kBAAAC,IAAmB;AAAA,EACnB,UAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,aAAAC;AACF,MAAsB;AACpB,QAAMC,IAAmB,CAACC,MACxB,CAAC,KAAK,KAAK,KAAK,GAAG,EAAE,SAASA,EAAM,GAAG,KAAKA,EAAM,eAAA,GAE9CC,IAAe,CAACD,MAA+C;AACnE,IAAI,OAAOJ,KAAa,cACtBA,EAASI,EAAM,OAAO,KAAK;AAAA,EAE/B,GAEME,IACJ,gBAAAC,EAAAC,GAAA,EACG,UAAA;AAAA,IAAAb,uBACEc,GAAA,EAAM,SAASf,GAAI,UAAAI,GAAoB,YAAU,IAC/C,UAAAH,EAAA,CACH;AAAA,IAGF,gBAAAY,EAAC,OAAA,EAAI,WAAWG,EAAO,sCAAsC,GAC1D,UAAA;AAAA,MAAAR,KAGC,gBAAAS,EAAC,OAAA,EAAI,WAAWD,EAAO,6BAA6B,GAClD,UAAA,gBAAAC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,IAAAjB;AAAA,UACA,MAAAG;AAAA,UACC,GAAIA,MAAS,YAAY,EAAE,WAAWM,EAAA;AAAA,UACvC,UAAUE;AAAA,UACV,WAAWK,EAAO,mBAAmB;AAAA,QAAA;AAAA,MAAA,GAEzC;AAAA,MAEDX,MAAqB,MAAM,gBAAAY,EAACC,KAAY,OAAM,SAAQ,UAAUb,EAAA,CAAkB;AAAA,IAAA,EAAA,CACrF;AAAA,EAAA,GACF;AAGF,SAAOE,IACLK,IAEA,gBAAAK,EAAC,OAAA,EAAI,WAAWE,EAAKH,EAAO,uBAAuB,GAAGA,EAAO,gCAAgCd,CAAa,EAAE,CAAC,GAC1G,UAAAU,GACH;AAEJ;"}
1
+ {"version":3,"file":"FormInput.js","sources":["../../../src/components/FormInput/FormInput.tsx"],"sourcesContent":["import { clsx } from 'clsx';\n\nimport type { ReactNode } from 'react';\n\nimport styles from './FormInput.module.css';\n\nimport { FeedbackBox, Label } from 'components';\n\nexport interface FormInputProps {\n /** The id of the input element. */\n id: string;\n /** label text if empthy the label is not renderd */\n label: string;\n /** label position `top` or `left`. The default is `top`. */\n labelPosition?: 'top' | 'left';\n /** The type of the input element. */\n type?: 'text' | 'password' | 'email' | 'number';\n /** Shows red * */\n required?: boolean;\n /** `true` to color border red to show not valid; otherwise, `false`. */\n notValid?: boolean;\n /** error text to display if set */\n notValidatedText?: string;\n /** Returns array of selected values as number */\n onChange?: (value: string) => void;\n /** Determines if the container wrapper is rendered. */\n noContainer?: boolean;\n /** Optional custom input that will replace the default input */\n customInput?: ReactNode;\n}\n\nexport const FormInput = ({\n id,\n label,\n labelPosition = 'top',\n type = 'text',\n required = false,\n notValid = false,\n notValidatedText = '',\n onChange,\n noContainer = false,\n customInput,\n}: FormInputProps) => {\n const blockInvalidChar = (event: React.KeyboardEvent<HTMLInputElement>) =>\n ['e', 'E', '+', '-'].includes(event.key) && event.preventDefault();\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (typeof onChange === 'function') {\n onChange(event.target.value);\n }\n };\n\n const componentContent = (\n <>\n {label && (\n <Label htmlFor={id} required={required} alignRight>\n {label}\n </Label>\n )}\n\n <div className={styles['form-input__input-feedback-container']}>\n {customInput ? (\n customInput\n ) : (\n <div className={styles['form-input__input-container']}>\n <input\n id={id}\n type={type}\n {...(type === 'number' && { onKeyDown: blockInvalidChar })}\n onChange={handleChange}\n className={clsx(styles['form-input__input'], {\n [styles['not-valid']]: notValid,\n })}\n />\n </div>\n )}\n {notValidatedText !== '' && <FeedbackBox level=\"error\" feedback={notValidatedText} />}\n </div>\n </>\n );\n\n return noContainer ? (\n componentContent\n ) : (\n <div className={clsx(styles['form-input__container'], styles[`form-input__container--label-${labelPosition}`])}>\n {componentContent}\n </div>\n );\n};\n"],"names":["FormInput","id","label","labelPosition","type","required","notValid","notValidatedText","onChange","noContainer","customInput","blockInvalidChar","event","handleChange","componentContent","jsxs","Fragment","Label","styles","jsx","clsx","FeedbackBox"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BaA,IAAY,CAAC;AAAA,EACxB,IAAAC;AAAA,EACA,OAAAC;AAAA,EACA,eAAAC,IAAgB;AAAA,EAChB,MAAAC,IAAO;AAAA,EACP,UAAAC,IAAW;AAAA,EACX,UAAAC,IAAW;AAAA,EACX,kBAAAC,IAAmB;AAAA,EACnB,UAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,aAAAC;AACF,MAAsB;AACpB,QAAMC,IAAmB,CAACC,MACxB,CAAC,KAAK,KAAK,KAAK,GAAG,EAAE,SAASA,EAAM,GAAG,KAAKA,EAAM,eAAA,GAE9CC,IAAe,CAACD,MAA+C;AACnE,IAAI,OAAOJ,KAAa,cACtBA,EAASI,EAAM,OAAO,KAAK;AAAA,EAE/B,GAEME,IACJ,gBAAAC,EAAAC,GAAA,EACG,UAAA;AAAA,IAAAd,uBACEe,GAAA,EAAM,SAAShB,GAAI,UAAAI,GAAoB,YAAU,IAC/C,UAAAH,EAAA,CACH;AAAA,IAGF,gBAAAa,EAAC,OAAA,EAAI,WAAWG,EAAO,sCAAsC,GAC1D,UAAA;AAAA,MAAAR,KAGC,gBAAAS,EAAC,OAAA,EAAI,WAAWD,EAAO,6BAA6B,GAClD,UAAA,gBAAAC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,IAAAlB;AAAA,UACA,MAAAG;AAAA,UACC,GAAIA,MAAS,YAAY,EAAE,WAAWO,EAAA;AAAA,UACvC,UAAUE;AAAA,UACV,WAAWO,EAAKF,EAAO,mBAAmB,GAAG;AAAA,YAC3C,CAACA,EAAO,WAAW,CAAC,GAAGZ;AAAA,UAAA,CACxB;AAAA,QAAA;AAAA,MAAA,GAEL;AAAA,MAEDC,MAAqB,MAAM,gBAAAY,EAACE,KAAY,OAAM,SAAQ,UAAUd,EAAA,CAAkB;AAAA,IAAA,EAAA,CACrF;AAAA,EAAA,GACF;AAGF,SAAOE,IACLK,IAEA,gBAAAK,EAAC,OAAA,EAAI,WAAWC,EAAKF,EAAO,uBAAuB,GAAGA,EAAO,gCAAgCf,CAAa,EAAE,CAAC,GAC1G,UAAAW,GACH;AAEJ;"}
@@ -12,6 +12,8 @@ export interface InputFieldProps extends Omit<InputHTMLAttributes<HTMLInputEleme
12
12
  id: string;
13
13
  /** An element that represents a clear button. */
14
14
  clearTrigger?: ReactNode;
15
+ /** `true` to color border red to show not valid; otherwise, `false`. */
16
+ notValid?: boolean;
15
17
  /** The callback that is invoked when the clear button is triggered. */
16
18
  onClear?: () => void;
17
19
  }
@@ -1,60 +1,63 @@
1
- import { jsxs as b, jsx as c } from "react/jsx-runtime";
1
+ import { jsxs as b, jsx as r } from "react/jsx-runtime";
2
2
  import { forwardRef as g, useState as x, useRef as B, useEffect as y } from "react";
3
3
  import { c as C } from "../../clsx-OuTLNxxd.js";
4
4
  import '../../assets/InputField.css';const t = {
5
- "input-field-wrapper": "_input-field-wrapper_1tir9_1",
6
- "input-field": "_input-field_1tir9_1",
7
- "input-field--large": "_input-field--large_1tir9_22",
8
- "input-field--small": "_input-field--small_1tir9_26",
9
- "input-field--compact": "_input-field--compact_1tir9_30",
10
- "input-field--white": "_input-field--white_1tir9_34",
11
- "input-field__clear-button": "_input-field__clear-button_1tir9_42"
5
+ "input-field-wrapper": "_input-field-wrapper_13cvp_1",
6
+ "input-field": "_input-field_13cvp_1",
7
+ "input-field--large": "_input-field--large_13cvp_22",
8
+ "input-field--small": "_input-field--small_13cvp_26",
9
+ "input-field--compact": "_input-field--compact_13cvp_30",
10
+ "input-field--white": "_input-field--white_13cvp_34",
11
+ "input-field--not-valid": "_input-field--not-valid_13cvp_38",
12
+ "input-field__clear-button": "_input-field__clear-button_13cvp_46"
12
13
  }, j = g(
13
14
  ({
14
- autoComplete: s = "off",
15
- id: r,
15
+ autoComplete: _ = "off",
16
+ id: p,
16
17
  value: e,
17
- variant: _,
18
+ variant: o,
18
19
  width: u,
19
- type: o = "text",
20
- background: p,
20
+ type: s = "text",
21
+ background: c,
21
22
  clearTrigger: l,
23
+ notValid: a = !1,
22
24
  onClear: f,
23
- ...a
25
+ ...d
24
26
  }, i) => {
25
- const [d, m] = x(0), n = B(null);
27
+ const [m, v] = x(0), n = B(null);
26
28
  y(() => {
27
- n.current && m(n.current.offsetWidth);
29
+ n.current && v(n.current.offsetWidth);
28
30
  }, [e]);
29
31
  const h = () => {
30
32
  f && i && "current" in i && i.current && (f(), i.current.focus());
31
33
  };
32
34
  return /* @__PURE__ */ b("div", { className: t["input-field-wrapper"], children: [
33
- /* @__PURE__ */ c(
35
+ /* @__PURE__ */ r(
34
36
  "input",
35
37
  {
36
- ...a,
37
- autoComplete: s,
38
+ ...d,
39
+ autoComplete: _,
38
40
  ref: i,
39
- id: r,
41
+ id: p,
40
42
  className: C(t["input-field"], {
41
- [t["input-field--large"]]: _ === "large",
43
+ [t["input-field--large"]]: o === "large",
42
44
  [t[`input-field--${u}`]]: u,
43
- [t[`input-field--${p}`]]: p
45
+ [t[`input-field--${c}`]]: c,
46
+ [t["input-field--not-valid"]]: a
44
47
  }),
45
- type: o,
48
+ type: s,
46
49
  value: e,
47
- style: { paddingRight: e && l ? d : void 0 }
50
+ style: { paddingRight: e && l ? m : void 0 }
48
51
  }
49
52
  ),
50
- !!e && l && /* @__PURE__ */ c(
53
+ !!e && l && /* @__PURE__ */ r(
51
54
  "button",
52
55
  {
53
56
  type: "button",
54
57
  className: t["input-field__clear-button"],
55
58
  onClick: h,
56
59
  ref: n,
57
- "aria-label": `clear trigger for ${r}`,
60
+ "aria-label": `clear trigger for ${p}`,
58
61
  children: l
59
62
  }
60
63
  )
@@ -1 +1 @@
1
- {"version":3,"file":"InputField.js","sources":["../../../src/components/InputField/InputField.tsx"],"sourcesContent":["import { forwardRef, useEffect, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\n\nimport type { InputHTMLAttributes, ReactNode } from 'react';\n\nimport styles from './InputField.module.css';\n\nexport interface InputFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'className' | 'style'> {\n /** The variant to render. */\n variant?: 'large';\n /** The width to render. */\n width?: 'small' | 'compact';\n /** The type of the input element. */\n type?: 'text' | 'password' | 'email';\n /** The background color of the input. InputField is by default transparent. */\n background?: 'white';\n /** The id of the input element. */\n id: string;\n /** An element that represents a clear button. */\n clearTrigger?: ReactNode;\n /** The callback that is invoked when the clear button is triggered. */\n onClear?: () => void;\n}\n\n/** Represents a component that renders an input field which can have a clear button. */\nexport const InputField = forwardRef<HTMLInputElement, InputFieldProps>(\n (\n {\n autoComplete = 'off',\n id,\n value,\n variant,\n width,\n type = 'text',\n background,\n clearTrigger,\n onClear,\n ...restProps\n }: InputFieldProps,\n forwardedRef\n ) => {\n const [clearButtonWidth, setClearButtonWidth] = useState<number>(0);\n const clearButtonRef = useRef<HTMLButtonElement>(null);\n\n useEffect(() => {\n if (clearButtonRef.current) {\n setClearButtonWidth(clearButtonRef.current.offsetWidth);\n }\n }, [value]);\n\n const handleClearTriggerClick = () => {\n if (onClear && forwardedRef && 'current' in forwardedRef && forwardedRef.current) {\n onClear();\n forwardedRef.current.focus();\n }\n };\n\n return (\n <div className={styles['input-field-wrapper']}>\n <input\n {...restProps}\n autoComplete={autoComplete}\n ref={forwardedRef}\n id={id}\n className={clsx(styles['input-field'], {\n [styles['input-field--large']]: variant === 'large',\n [styles[`input-field--${width}`]]: width,\n [styles[`input-field--${background}`]]: background,\n })}\n type={type}\n value={value}\n style={{ paddingRight: value && clearTrigger ? clearButtonWidth : undefined }}\n />\n {Boolean(value) && clearTrigger && (\n <button\n type=\"button\"\n className={styles['input-field__clear-button']}\n onClick={handleClearTriggerClick}\n ref={clearButtonRef}\n aria-label={`clear trigger for ${id}`}\n >\n {clearTrigger}\n </button>\n )}\n </div>\n );\n }\n);\n"],"names":["InputField","forwardRef","autoComplete","id","value","variant","width","type","background","clearTrigger","onClear","restProps","forwardedRef","clearButtonWidth","setClearButtonWidth","useState","clearButtonRef","useRef","useEffect","handleClearTriggerClick","jsxs","styles","jsx","clsx"],"mappings":";;;;;;;;;;;GAyBaA,IAAaC;AAAA,EACxB,CACE;AAAA,IACE,cAAAC,IAAe;AAAA,IACf,IAAAC;AAAA,IACA,OAAAC;AAAA,IACA,SAAAC;AAAA,IACA,OAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,YAAAC;AAAA,IACA,cAAAC;AAAA,IACA,SAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAM,CAACC,GAAkBC,CAAmB,IAAIC,EAAiB,CAAC,GAC5DC,IAAiBC,EAA0B,IAAI;AAErD,IAAAC,EAAU,MAAM;AACd,MAAIF,EAAe,WACjBF,EAAoBE,EAAe,QAAQ,WAAW;AAAA,IAE1D,GAAG,CAACZ,CAAK,CAAC;AAEV,UAAMe,IAA0B,MAAM;AACpC,MAAIT,KAAWE,KAAgB,aAAaA,KAAgBA,EAAa,YACvEF,EAAA,GACAE,EAAa,QAAQ,MAAA;AAAA,IAEzB;AAEA,WACE,gBAAAQ,EAAC,OAAA,EAAI,WAAWC,EAAO,qBAAqB,GAC1C,UAAA;AAAA,MAAA,gBAAAC;AAAA,QAAC;AAAA,QAAA;AAAA,UACE,GAAGX;AAAA,UACJ,cAAAT;AAAA,UACA,KAAKU;AAAA,UACL,IAAAT;AAAA,UACA,WAAWoB,EAAKF,EAAO,aAAa,GAAG;AAAA,YACrC,CAACA,EAAO,oBAAoB,CAAC,GAAGhB,MAAY;AAAA,YAC5C,CAACgB,EAAO,gBAAgBf,CAAK,EAAE,CAAC,GAAGA;AAAA,YACnC,CAACe,EAAO,gBAAgBb,CAAU,EAAE,CAAC,GAAGA;AAAA,UAAA,CACzC;AAAA,UACD,MAAAD;AAAA,UACA,OAAAH;AAAA,UACA,OAAO,EAAE,cAAcA,KAASK,IAAeI,IAAmB,OAAA;AAAA,QAAU;AAAA,MAAA;AAAA,MAE7E,EAAQT,KAAUK,KACjB,gBAAAa;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAWD,EAAO,2BAA2B;AAAA,UAC7C,SAASF;AAAA,UACT,KAAKH;AAAA,UACL,cAAY,qBAAqBb,CAAE;AAAA,UAElC,UAAAM;AAAA,QAAA;AAAA,MAAA;AAAA,IACH,GAEJ;AAAA,EAEJ;AACF;"}
1
+ {"version":3,"file":"InputField.js","sources":["../../../src/components/InputField/InputField.tsx"],"sourcesContent":["import { forwardRef, useEffect, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\n\nimport type { InputHTMLAttributes, ReactNode } from 'react';\n\nimport styles from './InputField.module.css';\n\nexport interface InputFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'className' | 'style'> {\n /** The variant to render. */\n variant?: 'large';\n /** The width to render. */\n width?: 'small' | 'compact';\n /** The type of the input element. */\n type?: 'text' | 'password' | 'email';\n /** The background color of the input. InputField is by default transparent. */\n background?: 'white';\n /** The id of the input element. */\n id: string;\n /** An element that represents a clear button. */\n clearTrigger?: ReactNode;\n /** `true` to color border red to show not valid; otherwise, `false`. */\n notValid?: boolean;\n /** The callback that is invoked when the clear button is triggered. */\n onClear?: () => void;\n}\n\n/** Represents a component that renders an input field which can have a clear button. */\nexport const InputField = forwardRef<HTMLInputElement, InputFieldProps>(\n (\n {\n autoComplete = 'off',\n id,\n value,\n variant,\n width,\n type = 'text',\n background,\n clearTrigger,\n notValid = false,\n onClear,\n ...restProps\n }: InputFieldProps,\n forwardedRef\n ) => {\n const [clearButtonWidth, setClearButtonWidth] = useState<number>(0);\n const clearButtonRef = useRef<HTMLButtonElement>(null);\n\n useEffect(() => {\n if (clearButtonRef.current) {\n setClearButtonWidth(clearButtonRef.current.offsetWidth);\n }\n }, [value]);\n\n const handleClearTriggerClick = () => {\n if (onClear && forwardedRef && 'current' in forwardedRef && forwardedRef.current) {\n onClear();\n forwardedRef.current.focus();\n }\n };\n\n return (\n <div className={styles['input-field-wrapper']}>\n <input\n {...restProps}\n autoComplete={autoComplete}\n ref={forwardedRef}\n id={id}\n className={clsx(styles['input-field'], {\n [styles['input-field--large']]: variant === 'large',\n [styles[`input-field--${width}`]]: width,\n [styles[`input-field--${background}`]]: background,\n [styles[`input-field--not-valid`]]: notValid,\n })}\n type={type}\n value={value}\n style={{ paddingRight: value && clearTrigger ? clearButtonWidth : undefined }}\n />\n {Boolean(value) && clearTrigger && (\n <button\n type=\"button\"\n className={styles['input-field__clear-button']}\n onClick={handleClearTriggerClick}\n ref={clearButtonRef}\n aria-label={`clear trigger for ${id}`}\n >\n {clearTrigger}\n </button>\n )}\n </div>\n );\n }\n);\n"],"names":["InputField","forwardRef","autoComplete","id","value","variant","width","type","background","clearTrigger","notValid","onClear","restProps","forwardedRef","clearButtonWidth","setClearButtonWidth","useState","clearButtonRef","useRef","useEffect","handleClearTriggerClick","jsxs","styles","jsx","clsx"],"mappings":";;;;;;;;;;;;GA2BaA,IAAaC;AAAA,EACxB,CACE;AAAA,IACE,cAAAC,IAAe;AAAA,IACf,IAAAC;AAAA,IACA,OAAAC;AAAA,IACA,SAAAC;AAAA,IACA,OAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,YAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,SAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAM,CAACC,GAAkBC,CAAmB,IAAIC,EAAiB,CAAC,GAC5DC,IAAiBC,EAA0B,IAAI;AAErD,IAAAC,EAAU,MAAM;AACd,MAAIF,EAAe,WACjBF,EAAoBE,EAAe,QAAQ,WAAW;AAAA,IAE1D,GAAG,CAACb,CAAK,CAAC;AAEV,UAAMgB,IAA0B,MAAM;AACpC,MAAIT,KAAWE,KAAgB,aAAaA,KAAgBA,EAAa,YACvEF,EAAA,GACAE,EAAa,QAAQ,MAAA;AAAA,IAEzB;AAEA,WACE,gBAAAQ,EAAC,OAAA,EAAI,WAAWC,EAAO,qBAAqB,GAC1C,UAAA;AAAA,MAAA,gBAAAC;AAAA,QAAC;AAAA,QAAA;AAAA,UACE,GAAGX;AAAA,UACJ,cAAAV;AAAA,UACA,KAAKW;AAAA,UACL,IAAAV;AAAA,UACA,WAAWqB,EAAKF,EAAO,aAAa,GAAG;AAAA,YACrC,CAACA,EAAO,oBAAoB,CAAC,GAAGjB,MAAY;AAAA,YAC5C,CAACiB,EAAO,gBAAgBhB,CAAK,EAAE,CAAC,GAAGA;AAAA,YACnC,CAACgB,EAAO,gBAAgBd,CAAU,EAAE,CAAC,GAAGA;AAAA,YACxC,CAACc,EAAO,wBAAwB,CAAC,GAAGZ;AAAA,UAAA,CACrC;AAAA,UACD,MAAAH;AAAA,UACA,OAAAH;AAAA,UACA,OAAO,EAAE,cAAcA,KAASK,IAAeK,IAAmB,OAAA;AAAA,QAAU;AAAA,MAAA;AAAA,MAE7E,EAAQV,KAAUK,KACjB,gBAAAc;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAWD,EAAO,2BAA2B;AAAA,UAC7C,SAASF;AAAA,UACT,KAAKH;AAAA,UACL,cAAY,qBAAqBd,CAAE;AAAA,UAElC,UAAAM;AAAA,QAAA;AAAA,MAAA;AAAA,IACH,GAEJ;AAAA,EAEJ;AACF;"}
@@ -17,7 +17,7 @@ import "../GridRow/GridRow.js";
17
17
  import "../IconButton/IconButton.js";
18
18
  import "../Input/Input.js";
19
19
  import "react-router";
20
- import "../../TablePlugin-CeZO4BR1.js";
20
+ import "../../TablePlugin-BLbsvcuu.js";
21
21
  import "../RteEditor/Providers/LanguageProvider.js";
22
22
  import "../RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js";
23
23
  import "../RteEditor/hooks/components/Flyout.js";
@@ -1,7 +1,7 @@
1
1
  import "react/jsx-runtime";
2
2
  import "../../clsx-OuTLNxxd.js";
3
3
  import "../../MultiSelectItem-BzBmsKof.js";
4
- import { M as p } from "../../TablePlugin-CeZO4BR1.js";
4
+ import { M as p } from "../../TablePlugin-BLbsvcuu.js";
5
5
  export {
6
6
  p as MultiSelect
7
7
  };
@@ -1,7 +1,7 @@
1
1
  import { jsxs as S, jsx as r } from "react/jsx-runtime";
2
2
  import { l as d } from "../../index-DvUwfXNb.js";
3
3
  import { useState as p } from "react";
4
- import { M as e } from "../../TablePlugin-CeZO4BR1.js";
4
+ import { M as e } from "../../TablePlugin-BLbsvcuu.js";
5
5
  import { Container as M } from "../../storyComponents/Container/Container.js";
6
6
  const C = `
7
7
  // MultiSelectHeader can be added optionally
@@ -16,7 +16,7 @@ import "../../IconButton/IconButton.js";
16
16
  import "../../Input/Input.js";
17
17
  import "../../InputField/InputField.js";
18
18
  import "react-router";
19
- import { a as C } from "../../../TablePlugin-CeZO4BR1.js";
19
+ import { a as C } from "../../../TablePlugin-BLbsvcuu.js";
20
20
  import "../../RteEditor/Providers/LanguageProvider.js";
21
21
  import "../../RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js";
22
22
  import "../../RteEditor/hooks/components/Flyout.js";
@@ -1,4 +1,4 @@
1
- import { M as l } from "../../TablePlugin-CeZO4BR1.js";
1
+ import { M as l } from "../../TablePlugin-BLbsvcuu.js";
2
2
  export {
3
3
  l as MultiSelect
4
4
  };
@@ -18,7 +18,7 @@ import "../Input/Input.js";
18
18
  import "../InputField/InputField.js";
19
19
  import { Label as I } from "../Label/Label.js";
20
20
  import "react-router";
21
- import "../../TablePlugin-CeZO4BR1.js";
21
+ import "../../TablePlugin-BLbsvcuu.js";
22
22
  import "../RteEditor/Providers/LanguageProvider.js";
23
23
  import "../RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js";
24
24
  import "../RteEditor/hooks/components/Flyout.js";
@@ -38,27 +38,27 @@ import '../../assets/PeriodSelector.css';const l = {
38
38
  "period-selector__selector-row": "_period-selector__selector-row_1txwd_24"
39
39
  }, f = 0, h = 1, S = 2, E = 3, j = 7, A = (c) => {
40
40
  const n = [];
41
- for (let o = 0; o < c.length; o += E)
42
- n.push(c.slice(o, o + E));
41
+ for (let t = 0; t < c.length; t += E)
42
+ n.push(c.slice(t, t + E));
43
43
  return n;
44
44
  }, ar = ({
45
45
  maxPeriods: c = j,
46
46
  defaultValues: n,
47
- label: o,
47
+ label: t,
48
48
  labelPosition: b = "top",
49
49
  required: _ = !1,
50
50
  notValidatedText: p = "",
51
51
  onChange: x
52
52
  }) => {
53
- const g = Array.from({ length: c }, (r, e) => e + 1), m = A(g), w = m.map((r, e) => r.map((t) => ({
54
- label: t.toString(),
55
- value: t.toString()
53
+ const g = Array.from({ length: c }, (r, e) => e + 1), m = A(g), w = m.map((r, e) => r.map((o) => ({
54
+ label: o.toString(),
55
+ value: o.toString()
56
56
  }))), i = v(
57
57
  m.map(
58
- (r) => r.reduce((e, t) => (n?.includes(t) && e.push(t), e), [])
58
+ (r) => r.reduce((e, o) => (n?.includes(o) && e.push(o), e), [])
59
59
  )
60
60
  ), [R, a] = M([]), d = (r) => r[f].length !== 0 || r[h].length !== 0 ? [S] : r[S].length !== 0 ? [f, h] : [], P = (r, e) => {
61
- i.current[e] = r.map((t) => Number(t)), a(d(i.current)), x([...i.current.flat()].sort());
61
+ i.current[e] = r.map((o) => Number(o)), a(d(i.current)), x([...i.current.flat()].sort());
62
62
  };
63
63
  return N(() => {
64
64
  a(d(i.current));
@@ -70,17 +70,17 @@ import '../../assets/PeriodSelector.css';const l = {
70
70
  l[`period-selector__container--label-${b}`]
71
71
  ),
72
72
  children: [
73
- o && /* @__PURE__ */ s(I, { htmlFor: "", required: _, children: o }),
73
+ t && /* @__PURE__ */ s(I, { htmlFor: "", required: _, children: t }),
74
74
  /* @__PURE__ */ u("div", { className: l["period-selector__selector-container"], children: [
75
75
  /* @__PURE__ */ s("div", { className: l["period-selector__selector-row"], children: w.map((r, e) => /* @__PURE__ */ s(
76
76
  B,
77
77
  {
78
78
  checkboxes: r,
79
- defaultValues: i.current[e].map((t) => t.toString()),
79
+ defaultValues: i.current[e].map((o) => o.toString()),
80
80
  disableGroup: R.includes(e),
81
81
  required: _,
82
- onSetValues: (t) => P(t, e),
83
- notValidated: p !== ""
82
+ onSetValues: (o) => P(o, e),
83
+ notValid: p !== ""
84
84
  },
85
85
  `group_${e}`
86
86
  )) }),
@@ -1 +1 @@
1
- {"version":3,"file":"PeriodSelector.js","sources":["../../../src/components/PeriodSelector/PeriodSelector.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { useEffect, useRef, useState } from 'react';\n\nimport styles from './PeriodSelector.module.css';\n\nimport { Label, CheckboxButtonBar, FeedbackBox } from 'components';\n\nexport interface PeriodSelectorProps {\n /** Indicates how many periods are shown. */\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers\n maxPeriods: 6 | 7;\n /** array of period values [3, 5 ...] */\n defaultValues?: number[];\n label?: string;\n labelPosition?: 'top' | 'left';\n /** Shows red * */\n required?: boolean;\n /** error text to display if set */\n notValidatedText?: string;\n /** Returns array of selected values as number */\n onChange: (values: number[]) => void;\n}\n\nconst SEMESTER_1 = 0;\nconst SEMESTER_2 = 1;\nconst SEMESTER_3 = 2;\n\nconst PERIODS_PER_SEMESTER = 3;\nconst MAX_PERIODS = 7;\n\nconst chunkPeriods = (array: number[]): number[][] => {\n const result: number[][] = [];\n for (let count = 0; count < array.length; count += PERIODS_PER_SEMESTER) {\n result.push(array.slice(count, count + PERIODS_PER_SEMESTER));\n }\n return result;\n};\n\n/** Checkbox group for selecting periods */\nexport const PeriodSelector = ({\n maxPeriods = MAX_PERIODS,\n defaultValues,\n label,\n labelPosition = 'top',\n required = false,\n notValidatedText = '',\n onChange,\n}: PeriodSelectorProps) => {\n const maxPeriodsList = Array.from({ length: maxPeriods }, (_, index) => index + 1);\n const chunkedPeriods = chunkPeriods(maxPeriodsList);\n\n const checkboxItems = chunkedPeriods.map((periods, _) => {\n return periods.map((period) => ({\n label: period.toString(),\n value: period.toString(),\n }));\n });\n\n const returnValues = useRef<number[][]>(\n chunkedPeriods.map((semester) =>\n semester.reduce((periods, period) => {\n if (defaultValues?.includes(period)) periods.push(period);\n return periods;\n }, [] as number[])\n )\n );\n const [disableSemesters, setDisableSemesters] = useState<number[]>([]);\n\n const disableGroups = (selects: number[][]) => {\n if (selects[SEMESTER_1].length !== 0 || selects[SEMESTER_2].length !== 0) return [SEMESTER_3];\n if (selects[SEMESTER_3].length !== 0) return [SEMESTER_1, SEMESTER_2];\n return [];\n };\n\n const handleChange = (values: string[], index: number) => {\n returnValues.current[index] = values.map((num) => Number(num));\n setDisableSemesters(disableGroups(returnValues.current));\n onChange([...returnValues.current.flat()].sort());\n };\n\n useEffect(() => {\n setDisableSemesters(disableGroups(returnValues.current));\n }, []);\n\n return (\n <div\n className={clsx(\n styles['period-selector__container'],\n styles[`period-selector__container--label-${labelPosition}`]\n )}\n >\n {label && (\n <Label htmlFor=\"\" required={required}>\n {label}\n </Label>\n )}\n <div className={styles['period-selector__selector-container']}>\n <div className={styles['period-selector__selector-row']}>\n {checkboxItems.map((checkboxes, semester) => (\n <CheckboxButtonBar\n key={`group_${semester}`}\n checkboxes={checkboxes}\n defaultValues={returnValues.current[semester].map((num) => num.toString())}\n disableGroup={disableSemesters.includes(semester)}\n required={required}\n onSetValues={(event) => handleChange(event, semester)}\n notValidated={notValidatedText !== ''}\n />\n ))}\n </div>\n {notValidatedText !== '' && <FeedbackBox level=\"error\" feedback={notValidatedText} />}\n </div>\n </div>\n );\n};\n"],"names":["SEMESTER_1","SEMESTER_2","SEMESTER_3","PERIODS_PER_SEMESTER","MAX_PERIODS","chunkPeriods","array","result","count","PeriodSelector","maxPeriods","defaultValues","label","labelPosition","required","notValidatedText","onChange","maxPeriodsList","_","index","chunkedPeriods","checkboxItems","periods","period","returnValues","useRef","semester","disableSemesters","setDisableSemesters","useState","disableGroups","selects","handleChange","values","num","useEffect","jsxs","clsx","styles","jsx","Label","checkboxes","CheckboxButtonBar","event","FeedbackBox"],"mappings":"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"}
1
+ {"version":3,"file":"PeriodSelector.js","sources":["../../../src/components/PeriodSelector/PeriodSelector.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { useEffect, useRef, useState } from 'react';\n\nimport styles from './PeriodSelector.module.css';\n\nimport { Label, CheckboxButtonBar, FeedbackBox } from 'components';\n\nexport interface PeriodSelectorProps {\n /** Indicates how many periods are shown. */\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers\n maxPeriods: 6 | 7;\n /** array of period values [3, 5 ...] */\n defaultValues?: number[];\n label?: string;\n labelPosition?: 'top' | 'left';\n /** Shows red * */\n required?: boolean;\n /** error text to display if set */\n notValidatedText?: string;\n /** Returns array of selected values as number */\n onChange: (values: number[]) => void;\n}\n\nconst SEMESTER_1 = 0;\nconst SEMESTER_2 = 1;\nconst SEMESTER_3 = 2;\n\nconst PERIODS_PER_SEMESTER = 3;\nconst MAX_PERIODS = 7;\n\nconst chunkPeriods = (array: number[]): number[][] => {\n const result: number[][] = [];\n for (let count = 0; count < array.length; count += PERIODS_PER_SEMESTER) {\n result.push(array.slice(count, count + PERIODS_PER_SEMESTER));\n }\n return result;\n};\n\n/** Checkbox group for selecting periods */\nexport const PeriodSelector = ({\n maxPeriods = MAX_PERIODS,\n defaultValues,\n label,\n labelPosition = 'top',\n required = false,\n notValidatedText = '',\n onChange,\n}: PeriodSelectorProps) => {\n const maxPeriodsList = Array.from({ length: maxPeriods }, (_, index) => index + 1);\n const chunkedPeriods = chunkPeriods(maxPeriodsList);\n\n const checkboxItems = chunkedPeriods.map((periods, _) => {\n return periods.map((period) => ({\n label: period.toString(),\n value: period.toString(),\n }));\n });\n\n const returnValues = useRef<number[][]>(\n chunkedPeriods.map((semester) =>\n semester.reduce((periods, period) => {\n if (defaultValues?.includes(period)) periods.push(period);\n return periods;\n }, [] as number[])\n )\n );\n const [disableSemesters, setDisableSemesters] = useState<number[]>([]);\n\n const disableGroups = (selects: number[][]) => {\n if (selects[SEMESTER_1].length !== 0 || selects[SEMESTER_2].length !== 0) return [SEMESTER_3];\n if (selects[SEMESTER_3].length !== 0) return [SEMESTER_1, SEMESTER_2];\n return [];\n };\n\n const handleChange = (values: string[], index: number) => {\n returnValues.current[index] = values.map((num) => Number(num));\n setDisableSemesters(disableGroups(returnValues.current));\n onChange([...returnValues.current.flat()].sort());\n };\n\n useEffect(() => {\n setDisableSemesters(disableGroups(returnValues.current));\n }, []);\n\n return (\n <div\n className={clsx(\n styles['period-selector__container'],\n styles[`period-selector__container--label-${labelPosition}`]\n )}\n >\n {label && (\n <Label htmlFor=\"\" required={required}>\n {label}\n </Label>\n )}\n <div className={styles['period-selector__selector-container']}>\n <div className={styles['period-selector__selector-row']}>\n {checkboxItems.map((checkboxes, semester) => (\n <CheckboxButtonBar\n key={`group_${semester}`}\n checkboxes={checkboxes}\n defaultValues={returnValues.current[semester].map((num) => num.toString())}\n disableGroup={disableSemesters.includes(semester)}\n required={required}\n onSetValues={(event) => handleChange(event, semester)}\n notValid={notValidatedText !== ''}\n />\n ))}\n </div>\n {notValidatedText !== '' && <FeedbackBox level=\"error\" feedback={notValidatedText} />}\n </div>\n </div>\n );\n};\n"],"names":["SEMESTER_1","SEMESTER_2","SEMESTER_3","PERIODS_PER_SEMESTER","MAX_PERIODS","chunkPeriods","array","result","count","PeriodSelector","maxPeriods","defaultValues","label","labelPosition","required","notValidatedText","onChange","maxPeriodsList","_","index","chunkedPeriods","checkboxItems","periods","period","returnValues","useRef","semester","disableSemesters","setDisableSemesters","useState","disableGroups","selects","handleChange","values","num","useEffect","jsxs","clsx","styles","jsx","Label","checkboxes","CheckboxButtonBar","event","FeedbackBox"],"mappings":"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"}
@@ -18,7 +18,7 @@ import "../GridRow/GridRow.js";
18
18
  import "../IconButton/IconButton.js";
19
19
  import "../Input/Input.js";
20
20
  import "../InputField/InputField.js";
21
- import "../../TablePlugin-CeZO4BR1.js";
21
+ import "../../TablePlugin-BLbsvcuu.js";
22
22
  import "../RteEditor/Providers/LanguageProvider.js";
23
23
  import "../RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js";
24
24
  import "../RteEditor/hooks/components/Flyout.js";
@@ -18,7 +18,7 @@ import "../IconButton/IconButton.js";
18
18
  import "../Input/Input.js";
19
19
  import "../InputField/InputField.js";
20
20
  import "react-router";
21
- import "../../TablePlugin-CeZO4BR1.js";
21
+ import "../../TablePlugin-BLbsvcuu.js";
22
22
  import "../RteEditor/Providers/LanguageProvider.js";
23
23
  import "../RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js";
24
24
  import "../RteEditor/hooks/components/Flyout.js";
@@ -15,7 +15,7 @@ import "../../IconButton/IconButton.js";
15
15
  import "../../Input/Input.js";
16
16
  import "../../InputField/InputField.js";
17
17
  import "react-router";
18
- import "../../../TablePlugin-CeZO4BR1.js";
18
+ import "../../../TablePlugin-BLbsvcuu.js";
19
19
  import "../Providers/LanguageProvider.js";
20
20
  import "../Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js";
21
21
  import "../hooks/components/Flyout.js";
@@ -4,7 +4,7 @@ import { c as f } from "../../../../clsx-OuTLNxxd.js";
4
4
  import { a as _, h, U as p } from "../../../../Lexical.prod-BAE-wnll.js";
5
5
  import { useState as l, useEffect as k } from "react";
6
6
  import { Icon as I } from "../../../Icon/Icon.js";
7
- import { s as a } from "../../../../RteEditor.module-CmYZ4MmA.js";
7
+ import { s as a } from "../../../../RteEditor.module-CUi7Vqe8.js";
8
8
  import { useTranslation as B } from "../../hooks/useTranslation.js";
9
9
  const C = {
10
10
  bold: "Bold",
@@ -18,8 +18,8 @@ import "../../../IconButton/IconButton.js";
18
18
  import "../../../Input/Input.js";
19
19
  import "../../../InputField/InputField.js";
20
20
  import "react-router";
21
- import "../../../../TablePlugin-CeZO4BR1.js";
22
- import { s as r } from "../../../../RteEditor.module-CmYZ4MmA.js";
21
+ import "../../../../TablePlugin-BLbsvcuu.js";
22
+ import { s as r } from "../../../../RteEditor.module-CUi7Vqe8.js";
23
23
  import { useTranslation as g } from "../../hooks/useTranslation.js";
24
24
  import "../LinkPlugin/LinkContextMenu/LinkContextMenu.js";
25
25
  import "../../hooks/components/Flyout.js";
@@ -1,6 +1,6 @@
1
1
  import "react/jsx-runtime";
2
2
  import "react";
3
- import { A as I } from "../../../../../TablePlugin-CeZO4BR1.js";
3
+ import { A as I } from "../../../../../TablePlugin-BLbsvcuu.js";
4
4
  import "../helpers.js";
5
5
  import "../../../../Accordion/Accordion.js";
6
6
  import "../../../../Icon/Icon.js";
@@ -4,7 +4,7 @@ import { c as W } from "../../../../clsx-OuTLNxxd.js";
4
4
  import { w as I, P as Y, J as G } from "../../../../LexicalLink.prod-C6Or2Yo6.js";
5
5
  import { useRef as a, useState as Q, useEffect as m } from "react";
6
6
  import { a0 as X, a as p, q as Z, as as $, h as w, D as tt, a1 as et, n as ot } from "../../../../Lexical.prod-BAE-wnll.js";
7
- import { A as rt } from "../../../../TablePlugin-CeZO4BR1.js";
7
+ import { A as rt } from "../../../../TablePlugin-BLbsvcuu.js";
8
8
  import { ensureHttps as nt } from "./helpers.js";
9
9
  import { LinkContextMenu as it } from "./LinkContextMenu/LinkContextMenu.js";
10
10
  import { useFlyout as st } from "../../hooks/useFlyout.js";
@@ -24,7 +24,7 @@ import "../../../Input/Input.js";
24
24
  import "../../../InputField/InputField.js";
25
25
  import "react-router";
26
26
  import { setScrollableContainers as B, removeScrollableContainers as lt } from "../../helpers.js";
27
- import { s as k } from "../../../../RteEditor.module-CmYZ4MmA.js";
27
+ import { s as k } from "../../../../RteEditor.module-CUi7Vqe8.js";
28
28
  import { useTranslation as at } from "../../hooks/useTranslation.js";
29
29
  import "react-dom";
30
30
  import "../../../../index-yEhaxKq-.js";
@@ -5,7 +5,7 @@ import { useState as p, useEffect as k } from "react";
5
5
  import { c as K } from "../../../../clsx-OuTLNxxd.js";
6
6
  import { as as y, D as O, X as U, a as v, h as D, F as w } from "../../../../Lexical.prod-BAE-wnll.js";
7
7
  import { Icon as B } from "../../../Icon/Icon.js";
8
- import { s as l } from "../../../../RteEditor.module-CmYZ4MmA.js";
8
+ import { s as l } from "../../../../RteEditor.module-CUi7Vqe8.js";
9
9
  import { useTranslation as E } from "../../hooks/useTranslation.js";
10
10
  const F = {
11
11
  bullet: "BulletList",
@@ -1,6 +1,6 @@
1
1
  import "react/jsx-runtime";
2
2
  import "react";
3
- import { b as G } from "../../../../TablePlugin-CeZO4BR1.js";
3
+ import { b as G } from "../../../../TablePlugin-BLbsvcuu.js";
4
4
  import "../../../Accordion/Accordion.js";
5
5
  import "../../../Buttons/Button.js";
6
6
  import "../../../Buttons/LinkButton.js";
@@ -5,7 +5,7 @@ import "../../../../LexicalTable.prod-BBI7yaOy.js";
5
5
  import "../../../../Lexical.prod-BAE-wnll.js";
6
6
  import "../../../../LexicalUtils.prod-D8DAKg7O.js";
7
7
  import "react";
8
- import { T as L } from "../../../../TablePlugin-CeZO4BR1.js";
8
+ import { T as L } from "../../../../TablePlugin-BLbsvcuu.js";
9
9
  import "./helpers.js";
10
10
  import "../../nodes/TableWrapperNode/TableWrapperNode.js";
11
11
  import "../../hooks/useFlyout.js";
@@ -24,7 +24,7 @@ import "../../../IconButton/IconButton.js";
24
24
  import "../../../Input/Input.js";
25
25
  import "../../../InputField/InputField.js";
26
26
  import "react-router";
27
- import "../../../../RteEditor.module-CmYZ4MmA.js";
27
+ import "../../../../RteEditor.module-CUi7Vqe8.js";
28
28
  import "../../hooks/useTranslation.js";
29
29
  import "../LinkPlugin/LinkContextMenu/LinkContextMenu.js";
30
30
  import "react-dom";
@@ -1,4 +1,4 @@
1
- import { T as o } from "../../../../TablePlugin-CeZO4BR1.js";
1
+ import { T as o } from "../../../../TablePlugin-BLbsvcuu.js";
2
2
  import { TableCellContextMenu as t } from "./TableCellContextMenu/TableCellContextMenu.js";
3
3
  export {
4
4
  t as TableCellContextMenu,
@@ -7,11 +7,11 @@ import { BlockFormatPlugin as N } from "../BlockFormatPlugin/BlockFormatPlugin.j
7
7
  import { ListPlugin as S } from "../ListPlugin/ListPlugin.js";
8
8
  import { LinkPlugin as k } from "../LinkPlugin/LinkPlugin.js";
9
9
  import { HistoryPlugin as x } from "../HistoryPlugin/HistoryPlugin.js";
10
- import { T as B } from "../../../../TablePlugin-CeZO4BR1.js";
10
+ import { T as B } from "../../../../TablePlugin-BLbsvcuu.js";
11
11
  import { TableCellContextMenu as A } from "../TablePlugin/TableCellContextMenu/TableCellContextMenu.js";
12
12
  import "react-dom";
13
13
  import "../../../../index-yEhaxKq-.js";
14
- import { s as z } from "../../../../RteEditor.module-CmYZ4MmA.js";
14
+ import { s as z } from "../../../../RteEditor.module-CUi7Vqe8.js";
15
15
  import { setScrollableContainers as b, removeScrollableContainers as K } from "../../helpers.js";
16
16
  const W = ({ editorScrollPosition: m }) => {
17
17
  const [t] = y(), [r, i] = L(null), d = E(null), u = T(() => {
@@ -3,7 +3,7 @@ import { BlockFormatPlugin as t } from "./BlockFormatPlugin/BlockFormatPlugin.js
3
3
  import { ListPlugin as n } from "./ListPlugin/ListPlugin.js";
4
4
  import { LinkPlugin as g, getLinkNodeTag as m } from "./LinkPlugin/LinkPlugin.js";
5
5
  import { HistoryPlugin as f } from "./HistoryPlugin/HistoryPlugin.js";
6
- import { T as u } from "../../../TablePlugin-CeZO4BR1.js";
6
+ import { T as u } from "../../../TablePlugin-BLbsvcuu.js";
7
7
  import { TableCellContextMenu as T } from "./TablePlugin/TableCellContextMenu/TableCellContextMenu.js";
8
8
  import { T as b } from "../../../TableCellResizerPlugin-HPo4ZkHo.js";
9
9
  import { PasteHandlerPlugin as C } from "./PasteHandlerPlugin/PasteHandlerPlugin.js";
@@ -13,16 +13,18 @@ export interface RteEditorProps {
13
13
  info?: string;
14
14
  /** 'true' the rte field mandatory */
15
15
  required?: boolean;
16
- /** max number of words 'allowed' but not enforced */
17
- maxWords?: number;
18
- /** max height in rem default = 20rem*/
19
- maxHeightInRem?: `${number}rem`;
16
+ /** `true` to color border red to show not valid; otherwise, `false`. */
17
+ notValid?: boolean;
20
18
  /** error text to display if required and field is empty */
21
19
  notValidatedText?: string;
20
+ /** max height in rem default = 20rem*/
21
+ maxHeightInRem?: `${number}rem`;
22
+ /** max number of words 'allowed' but not enforced */
23
+ maxWords?: number;
22
24
  /** Ref to the Lexical editor instance */
23
25
  rteRef?: RefObject<LexicalEditor> | null;
24
26
  /** updated output */
25
27
  onChange: (content: string) => void;
26
28
  }
27
- export declare const Rte: ({ currentLanguage, initialValue, placeholder, label, info, required, notValidatedText, maxHeightInRem, maxWords, rteRef, onChange, }: RteEditorProps) => import("react/jsx-runtime").JSX.Element;
28
- export declare const RteEditor: ({ currentLanguage, initialValue, placeholder, label, info, required, notValidatedText, maxWords, rteRef, onChange, }: RteEditorProps) => import("react/jsx-runtime").JSX.Element;
29
+ export declare const Rte: ({ currentLanguage, initialValue, placeholder, label, info, required, notValid, notValidatedText, maxHeightInRem, maxWords, rteRef, onChange, }: RteEditorProps) => import("react/jsx-runtime").JSX.Element;
30
+ export declare const RteEditor: ({ currentLanguage, initialValue, placeholder, label, info, required, notValid, notValidatedText, maxWords, rteRef, onChange, }: RteEditorProps) => import("react/jsx-runtime").JSX.Element;