@uva-glass/component-library 3.19.4 → 3.20.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 (23) hide show
  1. package/dist/assets/CheckboxButton.css +1 -1
  2. package/dist/assets/CheckboxButtonBar.css +1 -1
  3. package/dist/assets/PeriodSelector.css +1 -1
  4. package/dist/components/CheckboxButton/CheckboxButton.d.ts +1 -5
  5. package/dist/components/CheckboxButton/CheckboxButton.js +17 -40
  6. package/dist/components/CheckboxButton/CheckboxButton.js.map +1 -1
  7. package/dist/components/CheckboxButton/CheckboxButton.stories.js +5 -13
  8. package/dist/components/CheckboxButton/CheckboxButton.stories.js.map +1 -1
  9. package/dist/components/CheckboxButton/CheckboxButton.test.js +11 -41
  10. package/dist/components/CheckboxButton/CheckboxButton.test.js.map +1 -1
  11. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.d.ts +5 -2
  12. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.js +48 -44
  13. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.js.map +1 -1
  14. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.stories.js +16 -4
  15. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.stories.js.map +1 -1
  16. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.test.js +17 -19
  17. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.test.js.map +1 -1
  18. package/dist/components/FormInput/FormInput.js +1 -1
  19. package/dist/components/PeriodSelector/PeriodSelector.js +31 -30
  20. package/dist/components/PeriodSelector/PeriodSelector.js.map +1 -1
  21. package/dist/components/RteEditor/Plugins/LinkPlugin/AddLinkForm/AddLinkFrom.js +1 -1
  22. package/dist/components/RteEditor/RteEditor.js +1 -1
  23. package/package.json +1 -1
@@ -1 +1 @@
1
- ._checkbox-button__container_bnmy8_1{align-items:center;display:inline-flex;justify-content:center}._checkbox-button__container_bnmy8_1 input[type=checkbox]{cursor:pointer;height:0;opacity:0;position:absolute;width:0;z-index:-1}._checkbox-button__container_bnmy8_1 input[type=checkbox]:focus-visible+label{outline:.125rem dotted var(--new-color-navy-600);outline-offset:.125rem;z-index:1}._checkbox-button__container_bnmy8_1 input[type=checkbox]:checked+label{background-color:var(--new-color-uva-black);color:var(--new-color-uva-white)}._checkbox-button__container_bnmy8_1 input[type=checkbox]:disabled+label,._checkbox-button__container_bnmy8_1 input[type=checkbox]:disabled:hover+label{background-color:var(--new-color-grey-300);color:var(--new-color-grey-500);cursor:not-allowed}._checkbox-button__container_bnmy8_1 input[type=checkbox]:checked+label:hover{background-color:var(--new-color-grey-500);color:var(--new-color-uva-black);z-index:1}._checkbox-button_bnmy8_1{align-items:center;background-color:var(--new-color-uva-white);border:1px solid var(--new-color-grey-600);cursor:pointer;display:flex;font-size:var(--font-size-default);height:2.5rem;justify-content:center;padding:.25rem;-webkit-user-select:none;user-select:none;white-space:nowrap;width:2.5rem}._checkbox-button_bnmy8_1:hover{background-color:var(--new-color-grey-500)}._checkbox-button--not-valid_bnmy8_59{border-color:var(--new-color-red-600)}._checkbox-button--not-valid_bnmy8_59:hover{background-color:var(--new-color-grey-500);border-color:var(--new-color-grey-500);color:var(--new-color-uva-black)}._checkbox-button--single_bnmy8_69{border-radius:.25rem}._checkbox-button--start_bnmy8_73{border-radius:.25rem 0 0 .25rem}._checkbox-button--middle_bnmy8_77{border-radius:0;border-width:1px 0;position:relative;width:2.375rem}._checkbox-button--end_bnmy8_84{border-radius:0 .25rem .25rem 0}
1
+ ._checkbox-button__container_1q8j8_1{align-items:center;display:inline-flex;justify-content:center}._checkbox-button__container_1q8j8_1 input[type=checkbox]{cursor:pointer;height:0;opacity:0;position:absolute;width:0}._checkbox-button__container_1q8j8_1 input[type=checkbox]:after{content:" ";position:absolute;right:-1.3125rem;top:-1.3125rem;width:2.625rem;height:2.625rem}._checkbox-button__container_1q8j8_1 input[type=checkbox]:focus-visible+label{outline:.125rem dotted var(--new-color-navy-600);outline-offset:.125rem}._checkbox-button__container_1q8j8_1 input[type=checkbox]:checked+label{background-color:var(--new-color-grey-200);border:1px solid var(--new-color-grey-700);font-weight:var(--semibold)}._checkbox-button__container_1q8j8_1 input[type=checkbox]:disabled+label,._checkbox-button__container_1q8j8_1 input[type=checkbox]:disabled:hover+label{background-color:var(--new-color-grey-400);color:var(--new-color-grey-700);cursor:not-allowed}._checkbox-button__container_1q8j8_1 input[type=checkbox]:hover+label{background-color:var(--new-color-grey-200)}._checkbox-button_1q8j8_1{align-items:center;background-color:var(--new-color-uva-white);border-radius:.25rem;cursor:pointer;display:flex;font-size:var(--font-size-default);height:2.25rem;justify-content:center;padding:.25rem;-webkit-user-select:none;user-select:none;white-space:nowrap;width:2.25rem}
@@ -1 +1 @@
1
- ._checkbox-button-bar__container_y43lv_1{display:flex;flex-wrap:wrap}._checkbox-button-bar__container--label-left_y43lv_6{flex-direction:row;gap:1rem;line-height:2.5rem}._checkbox-button-bar__container--label-top_y43lv_12{align-items:flex-start;flex-direction:column;gap:.5rem;line-height:normal}._checkbox-button-bar__row-container_y43lv_19{display:flex;flex-direction:column}._checkbox-button-bar__row_y43lv_19{align-items:center;display:flex;flex-wrap:nowrap}._checkbox-button-bar__error_y43lv_30{align-items:center;color:var(--new-color-red-600);display:flex;font-size:var(--font-size-small);gap:.5rem;line-height:normal;margin-top:.5rem}
1
+ ._checkbox-button-bar__container_e14sz_1{display:flex;flex-wrap:wrap}._checkbox-button-bar__container--label-left_e14sz_6{align-items:baseline;flex-direction:row;gap:1rem}._checkbox-button-bar__container--label-top_e14sz_12{align-items:flex-start;flex-direction:column;gap:.5rem}._checkbox-button-bar__row-container_e14sz_18{display:flex;flex-direction:column;gap:.5rem}._checkbox-button-bar__row_e14sz_18{align-items:center;display:flex;flex-wrap:nowrap;gap:.25rem;padding:.25rem;background-color:var(--new-color-uva-white);border-radius:.5rem;border:1px solid var(--new-color-grey-700)}._checkbox-button-bar__row--not-validated_e14sz_35{border-color:var(--new-color-red-600)}
@@ -1 +1 @@
1
- ._period-selector__container_10t7p_1{display:flex;flex-wrap:wrap}._period-selector__container--label-left_10t7p_6{flex-direction:row;gap:1rem;line-height:2.5rem}._period-selector__container--label-top_10t7p_12{align-items:flex-start;flex-direction:column;gap:.5rem;line-height:normal}._period-selector__selector-container_10t7p_19{display:flex;flex-direction:column;line-height:1.5}._period-selector__selector-row_10t7p_25{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}
1
+ ._period-selector__container_d1p0j_1{display:flex;flex-wrap:wrap}._period-selector__container--label-left_d1p0j_6{flex-direction:row;gap:1rem;align-items:baseline}._period-selector__container--label-top_d1p0j_12{align-items:flex-start;flex-direction:column;gap:.5rem}._period-selector__selector-container_d1p0j_18{display:flex;flex-direction:column;line-height:1.5}._period-selector__selector-row_d1p0j_24{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}
@@ -3,14 +3,10 @@ export interface CheckboxButtonProps {
3
3
  value: string;
4
4
  /** to set default status */
5
5
  isChecked?: boolean;
6
- /** The button variant. */
7
- variant?: 'single' | 'start' | 'middle' | 'end';
8
6
  /** `true` to disable the button; otherwise, `false`. The default is `false`. */
9
7
  disabled?: boolean;
10
- /** if set border becomes red */
11
- notValid?: boolean;
12
8
  /** The callback function that is invoked when the checkbox button changes value. */
13
9
  onSetValue: (value: string | null) => void;
14
10
  }
15
11
  /** Represents a component that acts as a checkbox, it's either set or unset. */
16
- export declare const CheckboxButton: ({ label, value, isChecked, variant, disabled, notValid, onSetValue, }: CheckboxButtonProps) => import("react/jsx-runtime").JSX.Element;
12
+ export declare const CheckboxButton: ({ label, value, isChecked, disabled, onSetValue }: CheckboxButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,51 +1,28 @@
1
- import { jsxs as i, jsx as n } from "react/jsx-runtime";
2
- import { c as d } from "../../clsx-OuTLNxxd.js";
3
- import { useId as l, useState as m } from "react";
4
- import '../../assets/CheckboxButton.css';const t = {
5
- "checkbox-button__container": "_checkbox-button__container_bnmy8_1",
6
- "checkbox-button": "_checkbox-button_bnmy8_1",
7
- "checkbox-button--not-valid": "_checkbox-button--not-valid_bnmy8_59",
8
- "checkbox-button--single": "_checkbox-button--single_bnmy8_69",
9
- "checkbox-button--start": "_checkbox-button--start_bnmy8_73",
10
- "checkbox-button--middle": "_checkbox-button--middle_bnmy8_77",
11
- "checkbox-button--end": "_checkbox-button--end_bnmy8_84"
12
- }, f = ({
13
- label: c,
14
- value: b,
15
- isChecked: h = !1,
16
- variant: _ = "single",
17
- disabled: s,
18
- notValid: u,
19
- onSetValue: x
20
- }) => {
21
- const e = l(), [k, a] = m(h), r = (o) => {
22
- a(o.target.checked), x(o.target.checked ? o.target.value : null);
1
+ import { jsxs as x, jsx as o } from "react/jsx-runtime";
2
+ import { useId as _, useState as i } from "react";
3
+ import '../../assets/CheckboxButton.css';const n = {
4
+ "checkbox-button__container": "_checkbox-button__container_1q8j8_1",
5
+ "checkbox-button": "_checkbox-button_1q8j8_1"
6
+ }, m = ({ label: t, value: s, isChecked: h = !1, disabled: r, onSetValue: a }) => {
7
+ const c = _(), [b, u] = i(h), k = (e) => {
8
+ u(e.target.checked), a(e.target.checked ? e.target.value : null);
23
9
  };
24
- return /* @__PURE__ */ i("span", { className: t["checkbox-button__container"], children: [
25
- /* @__PURE__ */ n(
10
+ return /* @__PURE__ */ x("span", { className: n["checkbox-button__container"], children: [
11
+ /* @__PURE__ */ o(
26
12
  "input",
27
13
  {
28
14
  type: "checkbox",
29
- id: `${e}${c}`,
30
- disabled: s,
31
- value: b,
32
- checked: k,
33
- onChange: r
15
+ id: `${c}${t}`,
16
+ disabled: r,
17
+ value: s,
18
+ checked: b,
19
+ onChange: k
34
20
  }
35
21
  ),
36
- /* @__PURE__ */ n(
37
- "label",
38
- {
39
- htmlFor: `${e}${c}`,
40
- className: d(t["checkbox-button"], t[`checkbox-button--${_}`], {
41
- [t["checkbox-button--not-valid"]]: u
42
- }),
43
- children: c
44
- }
45
- )
22
+ /* @__PURE__ */ o("label", { htmlFor: `${c}${t}`, className: n["checkbox-button"], children: t })
46
23
  ] });
47
24
  };
48
25
  export {
49
- f as CheckboxButton
26
+ m as CheckboxButton
50
27
  };
51
28
  //# sourceMappingURL=CheckboxButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxButton.js","sources":["../../../src/components/CheckboxButton/CheckboxButton.tsx"],"sourcesContent":["import clsx from 'clsx';\nimport { useId, useState } from 'react';\n\nimport type { ChangeEvent } from 'react';\n\nimport styles from './CheckboxButton.module.css';\n\nexport interface CheckboxButtonProps {\n label: string;\n value: string;\n /** to set default status */\n isChecked?: boolean;\n /** The button variant. */\n variant?: 'single' | 'start' | 'middle' | 'end';\n /** `true` to disable the button; otherwise, `false`. The default is `false`. */\n disabled?: boolean;\n /** if set border becomes red */\n notValid?: boolean;\n /** The callback function that is invoked when the checkbox button changes value. */\n onSetValue: (value: string | null) => void;\n}\n\n/** Represents a component that acts as a checkbox, it's either set or unset. */\nexport const CheckboxButton = ({\n label,\n value,\n isChecked = false,\n variant = 'single',\n disabled,\n notValid,\n onSetValue,\n}: CheckboxButtonProps) => {\n const idPrefix = useId();\n const [checked, setChecked] = useState(isChecked);\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setChecked(event.target.checked);\n onSetValue(event.target.checked ? event.target.value : null);\n };\n\n return (\n <span className={styles['checkbox-button__container']}>\n <input\n type=\"checkbox\"\n id={`${idPrefix}${label}`}\n disabled={disabled}\n value={value}\n checked={checked}\n onChange={handleChange}\n />\n <label\n htmlFor={`${idPrefix}${label}`}\n className={clsx(styles['checkbox-button'], styles[`checkbox-button--${variant}`], {\n [styles['checkbox-button--not-valid']]: notValid,\n })}\n >\n {label}\n </label>\n </span>\n );\n};\n"],"names":["CheckboxButton","label","value","isChecked","variant","disabled","notValid","onSetValue","idPrefix","useId","checked","setChecked","useState","handleChange","event","jsxs","styles","jsx","clsx"],"mappings":";;;;;;;;;;;GAuBaA,IAAiB,CAAC;AAAA,EAC7B,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,SAAAC,IAAU;AAAA,EACV,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC;AACF,MAA2B;AACzB,QAAMC,IAAWC,EAAM,GACjB,CAACC,GAASC,CAAU,IAAIC,EAAST,CAAS,GAE1CU,IAAe,CAACC,MAAyC;AAClD,IAAAH,EAAAG,EAAM,OAAO,OAAO,GAC/BP,EAAWO,EAAM,OAAO,UAAUA,EAAM,OAAO,QAAQ,IAAI;AAAA,EAC7D;AAEA,SACG,gBAAAC,EAAA,QAAA,EAAK,WAAWC,EAAO,4BAA4B,GAClD,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,IAAI,GAAGT,CAAQ,GAAGP,CAAK;AAAA,QACvB,UAAAI;AAAA,QACA,OAAAH;AAAA,QACA,SAAAQ;AAAA,QACA,UAAUG;AAAA,MAAA;AAAA,IACZ;AAAA,IACA,gBAAAI;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAS,GAAGT,CAAQ,GAAGP,CAAK;AAAA,QAC5B,WAAWiB,EAAKF,EAAO,iBAAiB,GAAGA,EAAO,oBAAoBZ,CAAO,EAAE,GAAG;AAAA,UAChF,CAACY,EAAO,4BAA4B,CAAC,GAAGV;AAAA,QAAA,CACzC;AAAA,QAEA,UAAAL;AAAA,MAAA;AAAA,IAAA;AAAA,EACH,GACF;AAEJ;"}
1
+ {"version":3,"file":"CheckboxButton.js","sources":["../../../src/components/CheckboxButton/CheckboxButton.tsx"],"sourcesContent":["import { useId, useState } from 'react';\n\nimport type { ChangeEvent } from 'react';\n\nimport styles from './CheckboxButton.module.css';\n\nexport interface CheckboxButtonProps {\n label: string;\n value: string;\n /** to set default status */\n isChecked?: boolean;\n /** `true` to disable the button; otherwise, `false`. The default is `false`. */\n disabled?: boolean;\n /** The callback function that is invoked when the checkbox button changes value. */\n onSetValue: (value: string | null) => void;\n}\n\n/** Represents a component that acts as a checkbox, it's either set or unset. */\nexport const CheckboxButton = ({ label, value, isChecked = false, disabled, onSetValue }: CheckboxButtonProps) => {\n const idPrefix = useId();\n const [checked, setChecked] = useState(isChecked);\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setChecked(event.target.checked);\n onSetValue(event.target.checked ? event.target.value : null);\n };\n\n return (\n <span className={styles['checkbox-button__container']}>\n <input\n type=\"checkbox\"\n id={`${idPrefix}${label}`}\n disabled={disabled}\n value={value}\n checked={checked}\n onChange={handleChange}\n />\n <label htmlFor={`${idPrefix}${label}`} className={styles['checkbox-button']}>\n {label}\n </label>\n </span>\n );\n};\n"],"names":["CheckboxButton","label","value","isChecked","disabled","onSetValue","idPrefix","useId","checked","setChecked","useState","handleChange","event","jsxs","styles","jsx"],"mappings":";;;;;GAkBaA,IAAiB,CAAC,EAAE,OAAAC,GAAO,OAAAC,GAAO,WAAAC,IAAY,IAAO,UAAAC,GAAU,YAAAC,QAAsC;AAChH,QAAMC,IAAWC,EAAM,GACjB,CAACC,GAASC,CAAU,IAAIC,EAASP,CAAS,GAE1CQ,IAAe,CAACC,MAAyC;AAClD,IAAAH,EAAAG,EAAM,OAAO,OAAO,GAC/BP,EAAWO,EAAM,OAAO,UAAUA,EAAM,OAAO,QAAQ,IAAI;AAAA,EAC7D;AAEA,SACG,gBAAAC,EAAA,QAAA,EAAK,WAAWC,EAAO,4BAA4B,GAClD,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,IAAI,GAAGT,CAAQ,GAAGL,CAAK;AAAA,QACvB,UAAAG;AAAA,QACA,OAAAF;AAAA,QACA,SAAAM;AAAA,QACA,UAAUG;AAAA,MAAA;AAAA,IACZ;AAAA,IACC,gBAAAI,EAAA,SAAA,EAAM,SAAS,GAAGT,CAAQ,GAAGL,CAAK,IAAI,WAAWa,EAAO,iBAAiB,GACvE,UACHb,EAAA,CAAA;AAAA,EAAA,GACF;AAEJ;"}
@@ -1,9 +1,9 @@
1
- import { jsx as e } from "react/jsx-runtime";
1
+ import { jsx as t } from "react/jsx-runtime";
2
2
  import { fn as n } from "../../index-BCvy9BiK.js";
3
- import { CheckboxButton as o } from "./CheckboxButton.js";
3
+ import { CheckboxButton as e } from "./CheckboxButton.js";
4
4
  const a = "<CheckboxButton label={} value={} isChecked={} variant={} disabled={} notValid={} onSetValue={} key={} />", b = {
5
5
  title: "Atoms/CheckboxButton",
6
- component: o,
6
+ component: e,
7
7
  argTypes: {
8
8
  label: {
9
9
  control: "text"
@@ -14,16 +14,9 @@ const a = "<CheckboxButton label={} value={} isChecked={} variant={} disabled={}
14
14
  isChecked: {
15
15
  control: "boolean"
16
16
  },
17
- variant: {
18
- options: ["single", "start", "middle", "end"],
19
- control: "radio"
20
- },
21
17
  disabled: {
22
18
  control: "boolean"
23
19
  },
24
- notValid: {
25
- control: "boolean"
26
- },
27
20
  onSetValue: {
28
21
  table: {
29
22
  disable: !0
@@ -31,14 +24,13 @@ const a = "<CheckboxButton label={} value={} isChecked={} variant={} disabled={}
31
24
  }
32
25
  },
33
26
  parameters: {
34
- inspectComponent: o,
27
+ inspectComponent: e,
35
28
  codeString: a
36
29
  }
37
- }, l = (t) => /* @__PURE__ */ e(o, { ...t }), r = l.bind({});
30
+ }, l = (o) => /* @__PURE__ */ t(e, { ...o }), r = l.bind({});
38
31
  r.args = {
39
32
  label: "1.2",
40
33
  value: "1.2",
41
- variant: "single",
42
34
  onSetValue: n()
43
35
  };
44
36
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxButton.stories.js","sources":["../../../src/components/CheckboxButton/CheckboxButton.stories.tsx"],"sourcesContent":["import { fn } from '@storybook/test';\n\nimport type { Meta, StoryFn } from '@storybook/react';\nimport type { CheckboxButtonProps } from './CheckboxButton';\n\nimport { CheckboxButton } from './CheckboxButton';\n\nconst codeString =\n '<CheckboxButton label={} value={} isChecked={} variant={} disabled={} notValid={} onSetValue={} key={} />';\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n title: 'Atoms/CheckboxButton',\n component: CheckboxButton,\n argTypes: {\n label: {\n control: 'text',\n },\n value: {\n control: 'string',\n },\n isChecked: {\n control: 'boolean',\n },\n variant: {\n options: ['single', 'start', 'middle', 'end'],\n control: 'radio',\n },\n disabled: {\n control: 'boolean',\n },\n notValid: {\n control: 'boolean',\n },\n onSetValue: {\n table: {\n disable: true,\n },\n },\n },\n parameters: {\n inspectComponent: CheckboxButton,\n codeString: codeString,\n },\n} as Meta<CheckboxButtonProps>;\n\nconst Template: StoryFn<CheckboxButtonProps> = (args) => <CheckboxButton {...args} />;\n\nexport const CheckboxButtonExample = Template.bind({});\nCheckboxButtonExample.args = {\n label: '1.2',\n value: '1.2',\n variant: 'single',\n onSetValue: fn(),\n};\n"],"names":["codeString","CheckboxButton_stories","CheckboxButton","Template","args","jsx","CheckboxButtonExample","fn"],"mappings":";;;AAOA,MAAMA,IACJ,6GAGaC,IAAA;AAAA,EACb,OAAO;AAAA,EACP,WAAWC;AAAA,EACX,UAAU;AAAA,IACR,OAAO;AAAA,MACL,SAAS;AAAA,IACX;AAAA,IACA,OAAO;AAAA,MACL,SAAS;AAAA,IACX;AAAA,IACA,WAAW;AAAA,MACT,SAAS;AAAA,IACX;AAAA,IACA,SAAS;AAAA,MACP,SAAS,CAAC,UAAU,SAAS,UAAU,KAAK;AAAA,MAC5C,SAAS;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACR,SAAS;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACR,SAAS;AAAA,IACX;AAAA,IACA,YAAY;AAAA,MACV,OAAO;AAAA,QACL,SAAS;AAAA,MAAA;AAAA,IACX;AAAA,EAEJ;AAAA,EACA,YAAY;AAAA,IACV,kBAAkBA;AAAA,IAClB,YAAAF;AAAA,EAAA;AAEJ,GAEMG,IAAyC,CAACC,MAAU,gBAAAC,EAAAH,GAAA,EAAgB,GAAGE,GAAM,GAEtEE,IAAwBH,EAAS,KAAK,CAAE,CAAA;AACrDG,EAAsB,OAAO;AAAA,EAC3B,OAAO;AAAA,EACP,OAAO;AAAA,EACP,SAAS;AAAA,EACT,YAAYC,EAAG;AACjB;"}
1
+ {"version":3,"file":"CheckboxButton.stories.js","sources":["../../../src/components/CheckboxButton/CheckboxButton.stories.tsx"],"sourcesContent":["import { fn } from '@storybook/test';\n\nimport type { Meta, StoryFn } from '@storybook/react';\nimport type { CheckboxButtonProps } from './CheckboxButton';\n\nimport { CheckboxButton } from './CheckboxButton';\n\nconst codeString =\n '<CheckboxButton label={} value={} isChecked={} variant={} disabled={} notValid={} onSetValue={} key={} />';\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n title: 'Atoms/CheckboxButton',\n component: CheckboxButton,\n argTypes: {\n label: {\n control: 'text',\n },\n value: {\n control: 'string',\n },\n isChecked: {\n control: 'boolean',\n },\n disabled: {\n control: 'boolean',\n },\n onSetValue: {\n table: {\n disable: true,\n },\n },\n },\n parameters: {\n inspectComponent: CheckboxButton,\n codeString: codeString,\n },\n} as Meta<CheckboxButtonProps>;\n\nconst Template: StoryFn<CheckboxButtonProps> = (args) => <CheckboxButton {...args} />;\n\nexport const CheckboxButtonExample = Template.bind({});\nCheckboxButtonExample.args = {\n label: '1.2',\n value: '1.2',\n onSetValue: fn(),\n};\n"],"names":["codeString","CheckboxButton_stories","CheckboxButton","Template","args","jsx","CheckboxButtonExample","fn"],"mappings":";;;AAOA,MAAMA,IACJ,6GAGaC,IAAA;AAAA,EACb,OAAO;AAAA,EACP,WAAWC;AAAA,EACX,UAAU;AAAA,IACR,OAAO;AAAA,MACL,SAAS;AAAA,IACX;AAAA,IACA,OAAO;AAAA,MACL,SAAS;AAAA,IACX;AAAA,IACA,WAAW;AAAA,MACT,SAAS;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACR,SAAS;AAAA,IACX;AAAA,IACA,YAAY;AAAA,MACV,OAAO;AAAA,QACL,SAAS;AAAA,MAAA;AAAA,IACX;AAAA,EAEJ;AAAA,EACA,YAAY;AAAA,IACV,kBAAkBA;AAAA,IAClB,YAAAF;AAAA,EAAA;AAEJ,GAEMG,IAAyC,CAACC,MAAU,gBAAAC,EAAAH,GAAA,EAAgB,GAAGE,GAAM,GAEtEE,IAAwBH,EAAS,KAAK,CAAE,CAAA;AACrDG,EAAsB,OAAO;AAAA,EAC3B,OAAO;AAAA,EACP,OAAO;AAAA,EACP,YAAYC,EAAG;AACjB;"}
@@ -1,51 +1,21 @@
1
- import { jsx as l } from "react/jsx-runtime";
1
+ import { jsx as t } from "react/jsx-runtime";
2
2
  import "../../index-BqLi4tOb.js";
3
- import { r as n, s as t } from "../../react.esm-CsMDid07.js";
4
- import { CheckboxButton as a } from "./CheckboxButton.js";
5
- const c = jest.fn();
3
+ import { r as c, s as l } from "../../react.esm-CsMDid07.js";
4
+ import { CheckboxButton as n } from "./CheckboxButton.js";
5
+ const o = jest.fn();
6
6
  describe("CheckboxButton", () => {
7
7
  it("should render", () => {
8
- n(/* @__PURE__ */ l(a, { label: "2.1", value: "4", onSetValue: c }));
9
- const e = t.getByRole("checkbox");
8
+ c(/* @__PURE__ */ t(n, { label: "2.1", value: "4", onSetValue: o }));
9
+ const e = l.getByRole("checkbox");
10
10
  expect(e).toBeInTheDocument();
11
11
  }), it("should be checked if clicked", () => {
12
- n(/* @__PURE__ */ l(a, { label: "2.1", value: "4", onSetValue: c }));
13
- const e = t.getByRole("checkbox");
14
- expect(e).toBeInTheDocument(), e.click(), expect(e).toBeChecked(), expect(c).toHaveBeenCalledTimes(1);
12
+ c(/* @__PURE__ */ t(n, { label: "2.1", value: "4", onSetValue: o }));
13
+ const e = l.getByRole("checkbox");
14
+ expect(e).toBeInTheDocument(), e.click(), expect(e).toBeChecked(), expect(o).toHaveBeenCalledTimes(1);
15
15
  }), it("should be disabled", () => {
16
- n(/* @__PURE__ */ l(a, { label: "2.1", value: "4", onSetValue: c, disabled: !0 }));
17
- const e = t.getByRole("checkbox");
16
+ c(/* @__PURE__ */ t(n, { label: "2.1", value: "4", onSetValue: o, disabled: !0 }));
17
+ const e = l.getByRole("checkbox");
18
18
  expect(e).toBeInTheDocument(), expect(e).toBeDisabled();
19
- }), it("should show noValid", () => {
20
- n(/* @__PURE__ */ l(a, { label: "2.1", value: "4", onSetValue: c, notValid: !0 }));
21
- const e = t.getByRole("checkbox");
22
- expect(e).toBeInTheDocument();
23
- const o = t.getByText("2.1");
24
- expect(o).toHaveClass("checkbox-button--not-valid");
25
- }), it("should render single variant", () => {
26
- n(/* @__PURE__ */ l(a, { label: "2.1", value: "4", onSetValue: c, notValid: !0 }));
27
- const e = t.getByRole("checkbox");
28
- expect(e).toBeInTheDocument();
29
- const o = t.getByText("2.1");
30
- expect(o).toHaveClass("checkbox-button--single");
31
- }), it("should render start variant", () => {
32
- n(/* @__PURE__ */ l(a, { label: "2.1", value: "4", onSetValue: c, notValid: !0, variant: "start" }));
33
- const e = t.getByRole("checkbox");
34
- expect(e).toBeInTheDocument();
35
- const o = t.getByText("2.1");
36
- expect(o).toHaveClass("checkbox-button--start");
37
- }), it("should render middle variant", () => {
38
- n(/* @__PURE__ */ l(a, { label: "2.1", value: "4", onSetValue: c, notValid: !0, variant: "middle" }));
39
- const e = t.getByRole("checkbox");
40
- expect(e).toBeInTheDocument();
41
- const o = t.getByText("2.1");
42
- expect(o).toHaveClass("checkbox-button--middle");
43
- }), it("should render end variant", () => {
44
- n(/* @__PURE__ */ l(a, { label: "2.1", value: "4", onSetValue: c, notValid: !0, variant: "end" }));
45
- const e = t.getByRole("checkbox");
46
- expect(e).toBeInTheDocument();
47
- const o = t.getByText("2.1");
48
- expect(o).toHaveClass("checkbox-button--end");
49
19
  });
50
20
  });
51
21
  //# sourceMappingURL=CheckboxButton.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxButton.test.js","sources":["../../../src/components/CheckboxButton/CheckboxButton.test.tsx"],"sourcesContent":["import '@testing-library/jest-dom';\nimport { render, screen } from '@testing-library/react';\n\nimport { CheckboxButton } from './CheckboxButton';\n\nconst onClickSpy = jest.fn();\n\ndescribe('CheckboxButton', () => {\n it('should render', () => {\n render(<CheckboxButton label=\"2.1\" value=\"4\" onSetValue={onClickSpy} />);\n const checkbox = screen.getByRole('checkbox');\n expect(checkbox).toBeInTheDocument();\n });\n\n it('should be checked if clicked', () => {\n render(<CheckboxButton label=\"2.1\" value=\"4\" onSetValue={onClickSpy} />);\n const checkbox = screen.getByRole('checkbox');\n expect(checkbox).toBeInTheDocument();\n checkbox.click();\n expect(checkbox).toBeChecked();\n expect(onClickSpy).toHaveBeenCalledTimes(1);\n });\n\n it('should be disabled', () => {\n render(<CheckboxButton label=\"2.1\" value=\"4\" onSetValue={onClickSpy} disabled={true} />);\n const checkbox = screen.getByRole('checkbox');\n expect(checkbox).toBeInTheDocument();\n expect(checkbox).toBeDisabled();\n });\n\n it('should show noValid', () => {\n render(<CheckboxButton label=\"2.1\" value=\"4\" onSetValue={onClickSpy} notValid={true} />);\n const checkbox = screen.getByRole('checkbox');\n expect(checkbox).toBeInTheDocument();\n const label = screen.getByText('2.1');\n expect(label).toHaveClass('checkbox-button--not-valid');\n });\n\n it('should render single variant', () => {\n render(<CheckboxButton label=\"2.1\" value=\"4\" onSetValue={onClickSpy} notValid={true} />);\n const checkbox = screen.getByRole('checkbox');\n expect(checkbox).toBeInTheDocument();\n const label = screen.getByText('2.1');\n expect(label).toHaveClass('checkbox-button--single');\n });\n\n it('should render start variant', () => {\n render(<CheckboxButton label=\"2.1\" value=\"4\" onSetValue={onClickSpy} notValid={true} variant=\"start\" />);\n const checkbox = screen.getByRole('checkbox');\n expect(checkbox).toBeInTheDocument();\n const label = screen.getByText('2.1');\n expect(label).toHaveClass('checkbox-button--start');\n });\n\n it('should render middle variant', () => {\n render(<CheckboxButton label=\"2.1\" value=\"4\" onSetValue={onClickSpy} notValid={true} variant=\"middle\" />);\n const checkbox = screen.getByRole('checkbox');\n expect(checkbox).toBeInTheDocument();\n const label = screen.getByText('2.1');\n expect(label).toHaveClass('checkbox-button--middle');\n });\n\n it('should render end variant', () => {\n render(<CheckboxButton label=\"2.1\" value=\"4\" onSetValue={onClickSpy} notValid={true} variant=\"end\" />);\n const checkbox = screen.getByRole('checkbox');\n expect(checkbox).toBeInTheDocument();\n const label = screen.getByText('2.1');\n expect(label).toHaveClass('checkbox-button--end');\n });\n});\n"],"names":["onClickSpy","render","jsx","CheckboxButton","checkbox","screen","label"],"mappings":"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"}
1
+ {"version":3,"file":"CheckboxButton.test.js","sources":["../../../src/components/CheckboxButton/CheckboxButton.test.tsx"],"sourcesContent":["import '@testing-library/jest-dom';\nimport { render, screen } from '@testing-library/react';\n\nimport { CheckboxButton } from './CheckboxButton';\n\nconst onClickSpy = jest.fn();\n\ndescribe('CheckboxButton', () => {\n it('should render', () => {\n render(<CheckboxButton label=\"2.1\" value=\"4\" onSetValue={onClickSpy} />);\n const checkbox = screen.getByRole('checkbox');\n expect(checkbox).toBeInTheDocument();\n });\n\n it('should be checked if clicked', () => {\n render(<CheckboxButton label=\"2.1\" value=\"4\" onSetValue={onClickSpy} />);\n const checkbox = screen.getByRole('checkbox');\n expect(checkbox).toBeInTheDocument();\n checkbox.click();\n expect(checkbox).toBeChecked();\n expect(onClickSpy).toHaveBeenCalledTimes(1);\n });\n\n it('should be disabled', () => {\n render(<CheckboxButton label=\"2.1\" value=\"4\" onSetValue={onClickSpy} disabled={true} />);\n const checkbox = screen.getByRole('checkbox');\n expect(checkbox).toBeInTheDocument();\n expect(checkbox).toBeDisabled();\n });\n});\n"],"names":["onClickSpy","render","jsx","CheckboxButton","checkbox","screen"],"mappings":";;;;AAKA,MAAMA,IAAa,KAAK,GAAG;AAE3B,SAAS,kBAAkB,MAAM;AAC/B,KAAG,iBAAiB,MAAM;AACjB,IAAAC,EAAA,gBAAAC,EAACC,KAAe,OAAM,OAAM,OAAM,KAAI,YAAYH,GAAY,CAAE;AACjE,UAAAI,IAAWC,EAAO,UAAU,UAAU;AACrC,WAAAD,CAAQ,EAAE,kBAAkB;AAAA,EAAA,CACpC,GAED,GAAG,gCAAgC,MAAM;AAChC,IAAAH,EAAA,gBAAAC,EAACC,KAAe,OAAM,OAAM,OAAM,KAAI,YAAYH,GAAY,CAAE;AACjE,UAAAI,IAAWC,EAAO,UAAU,UAAU;AACrC,WAAAD,CAAQ,EAAE,kBAAkB,GACnCA,EAAS,MAAM,GACR,OAAAA,CAAQ,EAAE,YAAY,GACtB,OAAAJ,CAAU,EAAE,sBAAsB,CAAC;AAAA,EAAA,CAC3C,GAED,GAAG,sBAAsB,MAAM;AACtB,IAAAC,EAAA,gBAAAC,EAACC,GAAe,EAAA,OAAM,OAAM,OAAM,KAAI,YAAYH,GAAY,UAAU,GAAM,CAAA,CAAE;AACjF,UAAAI,IAAWC,EAAO,UAAU,UAAU;AACrC,WAAAD,CAAQ,EAAE,kBAAkB,GAC5B,OAAAA,CAAQ,EAAE,aAAa;AAAA,EAAA,CAC/B;AACH,CAAC;"}
@@ -10,13 +10,16 @@ export interface CheckboxButtonBarProps {
10
10
  label?: string;
11
11
  /** 'top' | 'left' */
12
12
  labelPosition?: 'top' | 'left';
13
+ /** `true` to show an asterisk to indicate an item is required; otherwise, `false`. */
13
14
  required?: boolean;
14
- /** error text to display if set */
15
+ /** `true` to color border red to show missing in validation; otherwise, `false`. */
16
+ notValidated?: boolean;
17
+ /** error text to display under the bar */
15
18
  notValidatedText?: string;
16
19
  /** disables all checkboxes in the bar */
17
20
  disableGroup?: boolean;
18
21
  onSetValues: (value: string[]) => void;
19
22
  }
20
23
  /** Represents a component that shows a collection of [CheckboxButton](/story/atoms-checkboxbutton--checkbox-button-example)s. */
21
- export declare const CheckboxButtonBar: ({ checkboxes, defaultValues, label, labelPosition, required, notValidatedText, disableGroup, onSetValues, }: CheckboxButtonBarProps) => import("react/jsx-runtime").JSX.Element;
24
+ export declare const CheckboxButtonBar: ({ checkboxes, defaultValues, label, labelPosition, required, notValidated, notValidatedText, disableGroup, onSetValues, }: CheckboxButtonBarProps) => import("react/jsx-runtime").JSX.Element;
22
25
  export {};
@@ -1,62 +1,66 @@
1
- import { jsxs as a, jsx as c } from "react/jsx-runtime";
2
- import { useRef as d } from "react";
3
- import { c as v } from "../../clsx-OuTLNxxd.js";
4
- import { CheckboxButton as y } from "../CheckboxButton/CheckboxButton.js";
5
- import { Label as g } from "../Label/Label.js";
6
- import { Icon as w } from "../Icon/Icon.js";
7
- import '../../assets/CheckboxButtonBar.css';const n = {
8
- "checkbox-button-bar__container": "_checkbox-button-bar__container_y43lv_1",
9
- "checkbox-button-bar__container--label-left": "_checkbox-button-bar__container--label-left_y43lv_6",
10
- "checkbox-button-bar__container--label-top": "_checkbox-button-bar__container--label-top_y43lv_12",
11
- "checkbox-button-bar__row-container": "_checkbox-button-bar__row-container_y43lv_19",
12
- "checkbox-button-bar__row": "_checkbox-button-bar__row_y43lv_19",
13
- "checkbox-button-bar__error": "_checkbox-button-bar__error_y43lv_30"
14
- }, $ = ({
15
- checkboxes: l,
1
+ import { jsxs as i, jsx as c } from "react/jsx-runtime";
2
+ import { useRef as p } from "react";
3
+ import { c as l } from "../../clsx-OuTLNxxd.js";
4
+ import { CheckboxButton as w } from "../CheckboxButton/CheckboxButton.js";
5
+ import { Label as z } from "../Label/Label.js";
6
+ import { FeedbackBox as v } from "../FeedbackBox/FeedbackBox.js";
7
+ import '../../assets/CheckboxButtonBar.css';const r = {
8
+ "checkbox-button-bar__container": "_checkbox-button-bar__container_e14sz_1",
9
+ "checkbox-button-bar__container--label-left": "_checkbox-button-bar__container--label-left_e14sz_6",
10
+ "checkbox-button-bar__container--label-top": "_checkbox-button-bar__container--label-top_e14sz_12",
11
+ "checkbox-button-bar__row-container": "_checkbox-button-bar__row-container_e14sz_18",
12
+ "checkbox-button-bar__row": "_checkbox-button-bar__row_e14sz_18",
13
+ "checkbox-button-bar__row--not-validated": "_checkbox-button-bar__row--not-validated_e14sz_35"
14
+ }, S = ({
15
+ checkboxes: s,
16
16
  defaultValues: t,
17
- label: i,
18
- labelPosition: s = "top",
19
- required: h = !1,
17
+ label: a,
18
+ labelPosition: h = "top",
19
+ required: k = !1,
20
+ notValidated: x = !1,
20
21
  notValidatedText: b = "",
21
22
  disableGroup: u = !1,
22
23
  onSetValues: m
23
24
  }) => {
24
- const e = d(t ? t.map(String) : []), x = (o, r) => {
25
- o === null ? e.current = e.current.filter((_) => _ !== r) : e.current = [...e.current, r], m(e.current);
26
- }, k = (o, r) => o === 0 && r !== 1 ? "start" : o < r - 1 ? "middle" : r === 1 ? "single" : "end";
27
- return /* @__PURE__ */ a(
25
+ const e = p(t ? t.map(String) : []), d = (n, o) => {
26
+ n === null ? e.current = e.current.filter((_) => _ !== o) : e.current = [...e.current, o], m(e.current);
27
+ };
28
+ return /* @__PURE__ */ i(
28
29
  "div",
29
30
  {
30
- className: v(
31
- n["checkbox-button-bar__container"],
32
- n[`checkbox-button-bar__container--label-${s}`]
31
+ className: l(
32
+ r["checkbox-button-bar__container"],
33
+ r[`checkbox-button-bar__container--label-${h}`]
33
34
  ),
34
35
  children: [
35
- i && /* @__PURE__ */ c(g, { htmlFor: "", required: h, children: i }),
36
- /* @__PURE__ */ a("div", { className: n["checkbox-button-bar__row-container"], children: [
37
- /* @__PURE__ */ c("div", { className: n["checkbox-button-bar__row"], children: l.map(({ label: o, value: r, disabled: _ }, f) => /* @__PURE__ */ c(
38
- y,
36
+ a && /* @__PURE__ */ c(z, { htmlFor: "", required: k, children: a }),
37
+ /* @__PURE__ */ i("div", { className: r["checkbox-button-bar__row-container"], children: [
38
+ /* @__PURE__ */ c(
39
+ "div",
39
40
  {
40
- label: o,
41
- value: r,
42
- isChecked: t ? t.includes(r) : !1,
43
- variant: k(f, l.length),
44
- disabled: _ || u,
45
- notValid: b !== "",
46
- onSetValue: (p) => x(p, r)
47
- },
48
- `${r}`
49
- )) }),
50
- b !== "" && /* @__PURE__ */ a("div", { className: n["checkbox-button-bar__error"], children: [
51
- /* @__PURE__ */ c(w, { name: "ExclamationTriangleFill", size: 24 }),
52
- b
53
- ] })
41
+ className: l(r["checkbox-button-bar__row"], {
42
+ [r["checkbox-button-bar__row--not-validated"]]: x || b
43
+ }),
44
+ children: s.map(({ label: n, value: o, disabled: _ }) => /* @__PURE__ */ c(
45
+ w,
46
+ {
47
+ label: n,
48
+ value: o,
49
+ isChecked: t ? t.includes(o) : !1,
50
+ disabled: _ || u,
51
+ onSetValue: (f) => d(f, o)
52
+ },
53
+ `${o}`
54
+ ))
55
+ }
56
+ ),
57
+ b !== "" && /* @__PURE__ */ c(v, { level: "error", feedback: b })
54
58
  ] })
55
59
  ]
56
60
  }
57
61
  );
58
62
  };
59
63
  export {
60
- $ as CheckboxButtonBar
64
+ S as CheckboxButtonBar
61
65
  };
62
66
  //# sourceMappingURL=CheckboxButtonBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxButtonBar.js","sources":["../../../src/components/CheckboxButtonBar/CheckboxButtonBar.tsx"],"sourcesContent":["import { useRef } from 'react';\nimport clsx from 'clsx';\n\nimport type { CheckboxButtonProps } from 'components/CheckboxButton';\n\nimport styles from './CheckboxButtonBar.module.css';\n\nimport { CheckboxButton } from 'components/CheckboxButton';\nimport { Label } from 'components/Label';\nimport { Icon } from 'components/Icon';\n\ntype CheckboxProps = {\n label: string;\n value: string;\n disabled?: boolean;\n};\n\nexport interface CheckboxButtonBarProps {\n /** array with objects with label, value */\n checkboxes: CheckboxProps[];\n //** array with values */\n defaultValues?: string[];\n label?: string;\n /** 'top' | 'left' */\n labelPosition?: 'top' | 'left';\n required?: boolean;\n /** error text to display if set */\n notValidatedText?: string;\n /** disables all checkboxes in the bar */\n disableGroup?: boolean;\n onSetValues: (value: string[]) => void;\n}\n\n/** Represents a component that shows a collection of [CheckboxButton](/story/atoms-checkboxbutton--checkbox-button-example)s. */\nexport const CheckboxButtonBar = ({\n checkboxes,\n defaultValues,\n label,\n labelPosition = 'top',\n required = false,\n notValidatedText = '',\n disableGroup = false,\n onSetValues,\n}: CheckboxButtonBarProps) => {\n const values = useRef<string[]>(defaultValues ? defaultValues.map(String) : []);\n\n const handleChange = (setValue: string | null, value: string) => {\n if (setValue === null) {\n values.current = values.current.filter((val) => val !== value);\n } else {\n values.current = [...values.current, value];\n }\n onSetValues(values.current);\n };\n\n const getVariant = (index: number, totalItems: number): CheckboxButtonProps['variant'] => {\n if (index === 0 && totalItems !== 1) {\n return 'start';\n } else if (index < totalItems - 1) {\n return 'middle';\n } else if (totalItems === 1) {\n return 'single';\n } else {\n return 'end';\n }\n };\n\n return (\n <div\n className={clsx(\n styles['checkbox-button-bar__container'],\n styles[`checkbox-button-bar__container--label-${labelPosition}`]\n )}\n >\n {label && (\n <Label htmlFor=\"\" required={required}>\n {label}\n </Label>\n )}\n <div className={styles['checkbox-button-bar__row-container']}>\n <div className={styles['checkbox-button-bar__row']}>\n {checkboxes.map(({ label, value, disabled }, index) => (\n <CheckboxButton\n key={`${value}`}\n label={label}\n value={value}\n isChecked={defaultValues ? defaultValues.includes(value) : false}\n variant={getVariant(index, checkboxes.length)}\n disabled={disabled || disableGroup}\n notValid={notValidatedText !== ''}\n onSetValue={(newValue) => handleChange(newValue, value)}\n />\n ))}\n </div>\n {notValidatedText !== '' && (\n <div className={styles['checkbox-button-bar__error']}>\n <Icon name=\"ExclamationTriangleFill\" size={24} />\n {notValidatedText}\n </div>\n )}\n </div>\n </div>\n );\n};\n"],"names":["CheckboxButtonBar","checkboxes","defaultValues","label","labelPosition","required","notValidatedText","disableGroup","onSetValues","values","useRef","handleChange","setValue","value","val","getVariant","index","totalItems","jsxs","clsx","styles","jsx","Label","disabled","CheckboxButton","newValue","Icon"],"mappings":";;;;;;;;;;;;;GAkCaA,IAAoB,CAAC;AAAA,EAChC,YAAAC;AAAA,EACA,eAAAC;AAAA,EACA,OAAAC;AAAA,EACA,eAAAC,IAAgB;AAAA,EAChB,UAAAC,IAAW;AAAA,EACX,kBAAAC,IAAmB;AAAA,EACnB,cAAAC,IAAe;AAAA,EACf,aAAAC;AACF,MAA8B;AACtB,QAAAC,IAASC,EAAiBR,IAAgBA,EAAc,IAAI,MAAM,IAAI,EAAE,GAExES,IAAe,CAACC,GAAyBC,MAAkB;AAC/D,IAAID,MAAa,OACfH,EAAO,UAAUA,EAAO,QAAQ,OAAO,CAACK,MAAQA,MAAQD,CAAK,IAE7DJ,EAAO,UAAU,CAAC,GAAGA,EAAO,SAASI,CAAK,GAE5CL,EAAYC,EAAO,OAAO;AAAA,EAC5B,GAEMM,IAAa,CAACC,GAAeC,MAC7BD,MAAU,KAAKC,MAAe,IACzB,UACED,IAAQC,IAAa,IACvB,WACEA,MAAe,IACjB,WAEA;AAKT,SAAA,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACTC,EAAO,gCAAgC;AAAA,QACvCA,EAAO,yCAAyChB,CAAa,EAAE;AAAA,MACjE;AAAA,MAEC,UAAA;AAAA,QAAAD,KACE,gBAAAkB,EAAAC,GAAA,EAAM,SAAQ,IAAG,UAAAjB,GACf,UACHF,GAAA;AAAA,QAED,gBAAAe,EAAA,OAAA,EAAI,WAAWE,EAAO,oCAAoC,GACzD,UAAA;AAAA,UAAA,gBAAAC,EAAC,OAAI,EAAA,WAAWD,EAAO,0BAA0B,GAC9C,UAAWnB,EAAA,IAAI,CAAC,EAAE,OAAAE,GAAO,OAAAU,GAAO,UAAAU,EAAA,GAAYP,MAC3C,gBAAAK;AAAA,YAACG;AAAA,YAAA;AAAA,cAEC,OAAOrB;AAAAA,cACP,OAAAU;AAAA,cACA,WAAWX,IAAgBA,EAAc,SAASW,CAAK,IAAI;AAAA,cAC3D,SAASE,EAAWC,GAAOf,EAAW,MAAM;AAAA,cAC5C,UAAUsB,KAAYhB;AAAA,cACtB,UAAUD,MAAqB;AAAA,cAC/B,YAAY,CAACmB,MAAad,EAAac,GAAUZ,CAAK;AAAA,YAAA;AAAA,YAPjD,GAAGA,CAAK;AAAA,UAShB,CAAA,GACH;AAAA,UACCP,MAAqB,MACpB,gBAAAY,EAAC,SAAI,WAAWE,EAAO,4BAA4B,GACjD,UAAA;AAAA,YAAA,gBAAAC,EAACK,GAAK,EAAA,MAAK,2BAA0B,MAAM,IAAI;AAAA,YAC9CpB;AAAA,UAAA,EACH,CAAA;AAAA,QAAA,EAEJ,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"CheckboxButtonBar.js","sources":["../../../src/components/CheckboxButtonBar/CheckboxButtonBar.tsx"],"sourcesContent":["import { useRef } from 'react';\nimport clsx from 'clsx';\n\nimport styles from './CheckboxButtonBar.module.css';\n\nimport { CheckboxButton } from 'components/CheckboxButton';\nimport { Label } from 'components/Label';\nimport { FeedbackBox } from 'components/FeedbackBox';\n\ntype CheckboxProps = {\n label: string;\n value: string;\n disabled?: boolean;\n};\n\nexport interface CheckboxButtonBarProps {\n /** array with objects with label, value */\n checkboxes: CheckboxProps[];\n //** array with values */\n defaultValues?: string[];\n label?: string;\n /** 'top' | 'left' */\n labelPosition?: 'top' | 'left';\n /** `true` to show an asterisk to indicate an item is required; otherwise, `false`. */\n required?: boolean;\n /** `true` to color border red to show missing in validation; otherwise, `false`. */\n notValidated?: boolean;\n /** error text to display under the bar */\n notValidatedText?: string;\n /** disables all checkboxes in the bar */\n disableGroup?: boolean;\n onSetValues: (value: string[]) => void;\n}\n\n/** Represents a component that shows a collection of [CheckboxButton](/story/atoms-checkboxbutton--checkbox-button-example)s. */\nexport const CheckboxButtonBar = ({\n checkboxes,\n defaultValues,\n label,\n labelPosition = 'top',\n required = false,\n notValidated = false,\n notValidatedText = '',\n disableGroup = false,\n onSetValues,\n}: CheckboxButtonBarProps) => {\n const values = useRef<string[]>(defaultValues ? defaultValues.map(String) : []);\n\n const handleChange = (setValue: string | null, value: string) => {\n if (setValue === null) {\n values.current = values.current.filter((val) => val !== value);\n } else {\n values.current = [...values.current, value];\n }\n onSetValues(values.current);\n };\n\n return (\n <div\n className={clsx(\n styles['checkbox-button-bar__container'],\n styles[`checkbox-button-bar__container--label-${labelPosition}`]\n )}\n >\n {label && (\n <Label htmlFor=\"\" required={required}>\n {label}\n </Label>\n )}\n <div className={styles['checkbox-button-bar__row-container']}>\n <div\n className={clsx(styles['checkbox-button-bar__row'], {\n [styles['checkbox-button-bar__row--not-validated']]: notValidated || notValidatedText,\n })}\n >\n {checkboxes.map(({ label, value, disabled }) => (\n <CheckboxButton\n key={`${value}`}\n label={label}\n value={value}\n isChecked={defaultValues ? defaultValues.includes(value) : false}\n disabled={disabled || disableGroup}\n onSetValue={(newValue) => handleChange(newValue, value)}\n />\n ))}\n </div>\n {notValidatedText !== '' && <FeedbackBox level=\"error\" feedback={notValidatedText} />}\n </div>\n </div>\n );\n};\n"],"names":["CheckboxButtonBar","checkboxes","defaultValues","label","labelPosition","required","notValidated","notValidatedText","disableGroup","onSetValues","values","useRef","handleChange","setValue","value","val","jsxs","clsx","styles","jsx","Label","disabled","CheckboxButton","newValue","FeedbackBox"],"mappings":";;;;;;;;;;;;;GAmCaA,IAAoB,CAAC;AAAA,EAChC,YAAAC;AAAA,EACA,eAAAC;AAAA,EACA,OAAAC;AAAA,EACA,eAAAC,IAAgB;AAAA,EAChB,UAAAC,IAAW;AAAA,EACX,cAAAC,IAAe;AAAA,EACf,kBAAAC,IAAmB;AAAA,EACnB,cAAAC,IAAe;AAAA,EACf,aAAAC;AACF,MAA8B;AACtB,QAAAC,IAASC,EAAiBT,IAAgBA,EAAc,IAAI,MAAM,IAAI,EAAE,GAExEU,IAAe,CAACC,GAAyBC,MAAkB;AAC/D,IAAID,MAAa,OACfH,EAAO,UAAUA,EAAO,QAAQ,OAAO,CAACK,MAAQA,MAAQD,CAAK,IAE7DJ,EAAO,UAAU,CAAC,GAAGA,EAAO,SAASI,CAAK,GAE5CL,EAAYC,EAAO,OAAO;AAAA,EAC5B;AAGE,SAAA,gBAAAM;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACTC,EAAO,gCAAgC;AAAA,QACvCA,EAAO,yCAAyCd,CAAa,EAAE;AAAA,MACjE;AAAA,MAEC,UAAA;AAAA,QAAAD,KACE,gBAAAgB,EAAAC,GAAA,EAAM,SAAQ,IAAG,UAAAf,GACf,UACHF,GAAA;AAAA,QAED,gBAAAa,EAAA,OAAA,EAAI,WAAWE,EAAO,oCAAoC,GACzD,UAAA;AAAA,UAAA,gBAAAC;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAWF,EAAKC,EAAO,0BAA0B,GAAG;AAAA,gBAClD,CAACA,EAAO,yCAAyC,CAAC,GAAGZ,KAAgBC;AAAA,cAAA,CACtE;AAAA,cAEA,UAAAN,EAAW,IAAI,CAAC,EAAE,OAAAE,GAAO,OAAAW,GAAO,UAAAO,QAC/B,gBAAAF;AAAA,gBAACG;AAAA,gBAAA;AAAA,kBAEC,OAAOnB;AAAAA,kBACP,OAAAW;AAAA,kBACA,WAAWZ,IAAgBA,EAAc,SAASY,CAAK,IAAI;AAAA,kBAC3D,UAAUO,KAAYb;AAAA,kBACtB,YAAY,CAACe,MAAaX,EAAaW,GAAUT,CAAK;AAAA,gBAAA;AAAA,gBALjD,GAAGA,CAAK;AAAA,cAOhB,CAAA;AAAA,YAAA;AAAA,UACH;AAAA,UACCP,MAAqB,MAAM,gBAAAY,EAACK,KAAY,OAAM,SAAQ,UAAUjB,EAAkB,CAAA;AAAA,QAAA,EACrF,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
@@ -1,5 +1,5 @@
1
- import { jsx as t } from "react/jsx-runtime";
2
- import { fn as l } from "../../index-BCvy9BiK.js";
1
+ import { jsx as l } from "react/jsx-runtime";
2
+ import { fn as t } from "../../index-BCvy9BiK.js";
3
3
  import { CheckboxButtonBar as e } from "./CheckboxButtonBar.js";
4
4
  const a = "<CheckboxButtonBar checkboxes={} defaultValues={} label={} labelPosition={} required={} notValidatedText={} disableGroup={} onSetValues={} />", i = {
5
5
  title: "Molecules/CheckboxButtonBar",
@@ -41,7 +41,7 @@ const a = "<CheckboxButtonBar checkboxes={} defaultValues={} label={} labelPosit
41
41
  inspectComponent: e,
42
42
  codeString: a
43
43
  }
44
- }, r = (o) => /* @__PURE__ */ t(e, { ...o }), n = r.bind({});
44
+ }, r = (o) => /* @__PURE__ */ l(e, { ...o }), n = r.bind({});
45
45
  n.args = {
46
46
  label: "Periode",
47
47
  required: !0,
@@ -57,11 +57,23 @@ n.args = {
57
57
  {
58
58
  label: "1.3",
59
59
  value: "3"
60
+ },
61
+ {
62
+ label: "4",
63
+ value: "4"
64
+ },
65
+ {
66
+ label: "5",
67
+ value: "5"
68
+ },
69
+ {
70
+ label: "6",
71
+ value: "6"
60
72
  }
61
73
  ],
62
74
  defaultValues: ["1", "2"],
63
75
  labelPosition: "top",
64
- onSetValues: l()
76
+ onSetValues: t()
65
77
  };
66
78
  export {
67
79
  n as CheckboxButtonBarExample,
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxButtonBar.stories.js","sources":["../../../src/components/CheckboxButtonBar/CheckboxButtonBar.stories.tsx"],"sourcesContent":["import { fn } from '@storybook/test';\n\nimport type { Meta, StoryFn } from '@storybook/react';\nimport type { CheckboxButtonBarProps } from './CheckboxButtonBar';\n\nimport { CheckboxButtonBar } from './CheckboxButtonBar';\n\nconst codeString =\n '<CheckboxButtonBar checkboxes={} defaultValues={} label={} labelPosition={} required={} notValidatedText={} disableGroup={} onSetValues={} />';\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n title: 'Molecules/CheckboxButtonBar',\n component: CheckboxButtonBar,\n argTypes: {\n checkboxes: {\n table: {\n disable: true,\n },\n },\n defaultValues: {\n table: {\n disable: true,\n },\n },\n label: {\n control: 'text',\n },\n labelPosition: {\n control: 'radio',\n options: ['top', 'left'],\n },\n required: {\n control: 'boolean',\n },\n notValidatedText: {\n control: 'text',\n },\n disableGroup: {\n control: 'boolean',\n },\n onSetValues: {\n table: {\n disable: true,\n },\n },\n },\n parameters: {\n inspectComponent: CheckboxButtonBar,\n codeString: codeString,\n },\n} as Meta<CheckboxButtonBarProps>;\n\nconst Template: StoryFn<CheckboxButtonBarProps> = (args) => <CheckboxButtonBar {...args} />;\n\nexport const CheckboxButtonBarExample = Template.bind({});\nCheckboxButtonBarExample.args = {\n label: 'Periode',\n required: true,\n checkboxes: [\n {\n label: '1.1',\n value: '1',\n },\n {\n label: '1.2',\n value: '2',\n },\n {\n label: '1.3',\n value: '3',\n },\n ],\n defaultValues: ['1', '2'],\n labelPosition: 'top',\n onSetValues: fn(),\n};\n"],"names":["codeString","CheckboxButtonBar_stories","CheckboxButtonBar","Template","args","jsx","CheckboxButtonBarExample","fn"],"mappings":";;;AAOA,MAAMA,IACJ,iJAGaC,IAAA;AAAA,EACb,OAAO;AAAA,EACP,WAAWC;AAAA,EACX,UAAU;AAAA,IACR,YAAY;AAAA,MACV,OAAO;AAAA,QACL,SAAS;AAAA,MAAA;AAAA,IAEb;AAAA,IACA,eAAe;AAAA,MACb,OAAO;AAAA,QACL,SAAS;AAAA,MAAA;AAAA,IAEb;AAAA,IACA,OAAO;AAAA,MACL,SAAS;AAAA,IACX;AAAA,IACA,eAAe;AAAA,MACb,SAAS;AAAA,MACT,SAAS,CAAC,OAAO,MAAM;AAAA,IACzB;AAAA,IACA,UAAU;AAAA,MACR,SAAS;AAAA,IACX;AAAA,IACA,kBAAkB;AAAA,MAChB,SAAS;AAAA,IACX;AAAA,IACA,cAAc;AAAA,MACZ,SAAS;AAAA,IACX;AAAA,IACA,aAAa;AAAA,MACX,OAAO;AAAA,QACL,SAAS;AAAA,MAAA;AAAA,IACX;AAAA,EAEJ;AAAA,EACA,YAAY;AAAA,IACV,kBAAkBA;AAAA,IAClB,YAAAF;AAAA,EAAA;AAEJ,GAEMG,IAA4C,CAACC,MAAU,gBAAAC,EAAAH,GAAA,EAAmB,GAAGE,GAAM,GAE5EE,IAA2BH,EAAS,KAAK,CAAE,CAAA;AACxDG,EAAyB,OAAO;AAAA,EAC9B,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,IACV;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IAAA;AAAA,EAEX;AAAA,EACA,eAAe,CAAC,KAAK,GAAG;AAAA,EACxB,eAAe;AAAA,EACf,aAAaC,EAAG;AAClB;"}
1
+ {"version":3,"file":"CheckboxButtonBar.stories.js","sources":["../../../src/components/CheckboxButtonBar/CheckboxButtonBar.stories.tsx"],"sourcesContent":["import { fn } from '@storybook/test';\n\nimport type { Meta, StoryFn } from '@storybook/react';\nimport type { CheckboxButtonBarProps } from './CheckboxButtonBar';\n\nimport { CheckboxButtonBar } from './CheckboxButtonBar';\n\nconst codeString =\n '<CheckboxButtonBar checkboxes={} defaultValues={} label={} labelPosition={} required={} notValidatedText={} disableGroup={} onSetValues={} />';\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n title: 'Molecules/CheckboxButtonBar',\n component: CheckboxButtonBar,\n argTypes: {\n checkboxes: {\n table: {\n disable: true,\n },\n },\n defaultValues: {\n table: {\n disable: true,\n },\n },\n label: {\n control: 'text',\n },\n labelPosition: {\n control: 'radio',\n options: ['top', 'left'],\n },\n required: {\n control: 'boolean',\n },\n notValidatedText: {\n control: 'text',\n },\n disableGroup: {\n control: 'boolean',\n },\n onSetValues: {\n table: {\n disable: true,\n },\n },\n },\n parameters: {\n inspectComponent: CheckboxButtonBar,\n codeString: codeString,\n },\n} as Meta<CheckboxButtonBarProps>;\n\nconst Template: StoryFn<CheckboxButtonBarProps> = (args) => <CheckboxButtonBar {...args} />;\n\nexport const CheckboxButtonBarExample = Template.bind({});\nCheckboxButtonBarExample.args = {\n label: 'Periode',\n required: true,\n checkboxes: [\n {\n label: '1.1',\n value: '1',\n },\n {\n label: '1.2',\n value: '2',\n },\n {\n label: '1.3',\n value: '3',\n },\n {\n label: '4',\n value: '4',\n },\n {\n label: '5',\n value: '5',\n },\n {\n label: '6',\n value: '6',\n },\n ],\n defaultValues: ['1', '2'],\n labelPosition: 'top',\n onSetValues: fn(),\n};\n"],"names":["codeString","CheckboxButtonBar_stories","CheckboxButtonBar","Template","args","jsx","CheckboxButtonBarExample","fn"],"mappings":";;;AAOA,MAAMA,IACJ,iJAGaC,IAAA;AAAA,EACb,OAAO;AAAA,EACP,WAAWC;AAAA,EACX,UAAU;AAAA,IACR,YAAY;AAAA,MACV,OAAO;AAAA,QACL,SAAS;AAAA,MAAA;AAAA,IAEb;AAAA,IACA,eAAe;AAAA,MACb,OAAO;AAAA,QACL,SAAS;AAAA,MAAA;AAAA,IAEb;AAAA,IACA,OAAO;AAAA,MACL,SAAS;AAAA,IACX;AAAA,IACA,eAAe;AAAA,MACb,SAAS;AAAA,MACT,SAAS,CAAC,OAAO,MAAM;AAAA,IACzB;AAAA,IACA,UAAU;AAAA,MACR,SAAS;AAAA,IACX;AAAA,IACA,kBAAkB;AAAA,MAChB,SAAS;AAAA,IACX;AAAA,IACA,cAAc;AAAA,MACZ,SAAS;AAAA,IACX;AAAA,IACA,aAAa;AAAA,MACX,OAAO;AAAA,QACL,SAAS;AAAA,MAAA;AAAA,IACX;AAAA,EAEJ;AAAA,EACA,YAAY;AAAA,IACV,kBAAkBA;AAAA,IAClB,YAAAF;AAAA,EAAA;AAEJ,GAEMG,IAA4C,CAACC,MAAU,gBAAAC,EAAAH,GAAA,EAAmB,GAAGE,GAAM,GAE5EE,IAA2BH,EAAS,KAAK,CAAE,CAAA;AACxDG,EAAyB,OAAO;AAAA,EAC9B,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,IACV;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IAAA;AAAA,EAEX;AAAA,EACA,eAAe,CAAC,KAAK,GAAG;AAAA,EACxB,eAAe;AAAA,EACf,aAAaC,EAAG;AAClB;"}
@@ -1,8 +1,8 @@
1
1
  import { jsx as l } from "react/jsx-runtime";
2
2
  import "../../index-BqLi4tOb.js";
3
- import { r as c, s as e } from "../../react.esm-CsMDid07.js";
3
+ import { r as c, s as t } from "../../react.esm-CsMDid07.js";
4
4
  import { CheckboxButtonBar as a } from "./CheckboxButtonBar.js";
5
- const n = jest.fn(), x = [
5
+ const n = jest.fn(), d = [
6
6
  {
7
7
  label: "1.1",
8
8
  value: "1"
@@ -23,15 +23,15 @@ describe("CheckboxButton", () => {
23
23
  a,
24
24
  {
25
25
  label: "Periode",
26
- checkboxes: x,
26
+ checkboxes: d,
27
27
  defaultValues: ["1", "2"],
28
28
  labelPosition: "top",
29
29
  onSetValues: n
30
30
  }
31
31
  )
32
- ), expect(e.getByText("Periode")).toBeInTheDocument();
33
- const t = e.getAllByRole("checkbox");
34
- expect(t).toHaveLength(3);
32
+ ), expect(t.getByText("Periode")).toBeInTheDocument();
33
+ const e = t.getAllByRole("checkbox");
34
+ expect(e).toHaveLength(3);
35
35
  }), it("should render required", () => {
36
36
  c(
37
37
  /* @__PURE__ */ l(
@@ -39,16 +39,16 @@ describe("CheckboxButton", () => {
39
39
  {
40
40
  label: "Periode",
41
41
  required: !0,
42
- checkboxes: x,
42
+ checkboxes: d,
43
43
  defaultValues: ["1", "2"],
44
44
  labelPosition: "top",
45
45
  onSetValues: n
46
46
  }
47
47
  )
48
48
  );
49
- const t = e.getByText("Periode");
50
- expect(t).toHaveTextContent("Periode"), expect(t).toHaveClass("label--required");
51
- const o = e.getAllByRole("checkbox");
49
+ const e = t.getByText("Periode");
50
+ expect(e).toHaveTextContent("Periode"), expect(e).toHaveClass("label--required");
51
+ const o = t.getAllByRole("checkbox");
52
52
  expect(o).toHaveLength(3);
53
53
  }), it("should render default checked", () => {
54
54
  c(
@@ -56,16 +56,16 @@ describe("CheckboxButton", () => {
56
56
  a,
57
57
  {
58
58
  label: "Periode",
59
- checkboxes: x,
59
+ checkboxes: d,
60
60
  defaultValues: ["1", "2"],
61
61
  labelPosition: "top",
62
62
  onSetValues: n
63
63
  }
64
64
  )
65
65
  );
66
- const t = e.getByText("Periode");
67
- expect(t).toHaveTextContent("Periode");
68
- const o = e.getAllByRole("checkbox");
66
+ const e = t.getByText("Periode");
67
+ expect(e).toHaveTextContent("Periode");
68
+ const o = t.getAllByRole("checkbox");
69
69
  expect(o).toHaveLength(3), expect(o[0]).toBeChecked(), expect(o[1]).toBeChecked(), expect(o[2]).not.toBeChecked();
70
70
  }), it("should render notValidatedText and notValid style", () => {
71
71
  c(
@@ -74,17 +74,15 @@ describe("CheckboxButton", () => {
74
74
  {
75
75
  label: "Periode",
76
76
  notValidatedText: "Not Valid",
77
- checkboxes: x,
77
+ checkboxes: d,
78
78
  defaultValues: ["1", "2"],
79
79
  labelPosition: "top",
80
80
  onSetValues: n
81
81
  }
82
82
  )
83
83
  );
84
- const t = e.getByText("Periode");
85
- expect(t).toHaveTextContent("Periode"), expect(e.getByText("Not Valid")).toBeInTheDocument();
86
- const o = e.getAllByRole("checkbox");
87
- expect(o).toHaveLength(3), expect(e.getByText("1.1")).toHaveClass("checkbox-button--not-valid"), expect(e.getByText("1.2")).toHaveClass("checkbox-button--not-valid"), expect(e.getByText("1.3")).toHaveClass("checkbox-button--not-valid");
84
+ const e = t.getByText("Periode");
85
+ expect(e).toHaveTextContent("Periode"), expect(t.getByText("Not Valid")).toBeInTheDocument();
88
86
  });
89
87
  });
90
88
  //# sourceMappingURL=CheckboxButtonBar.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxButtonBar.test.js","sources":["../../../src/components/CheckboxButtonBar/CheckboxButtonBar.test.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-magic-numbers */\nimport '@testing-library/jest-dom';\nimport { render, screen } from '@testing-library/react';\n\nimport { CheckboxButtonBar } from './CheckboxButtonBar';\n\nconst onClickSpy = jest.fn();\n\nconst MOCK_CHECKBOXES = [\n {\n label: '1.1',\n value: '1',\n },\n {\n label: '1.2',\n value: '2',\n },\n {\n label: '1.3',\n value: '3',\n },\n];\n\ndescribe('CheckboxButton', () => {\n it('should render', () => {\n render(\n <CheckboxButtonBar\n label=\"Periode\"\n checkboxes={MOCK_CHECKBOXES}\n defaultValues={['1', '2']}\n labelPosition=\"top\"\n onSetValues={onClickSpy}\n />\n );\n expect(screen.getByText('Periode')).toBeInTheDocument();\n const checkbox = screen.getAllByRole('checkbox');\n expect(checkbox).toHaveLength(3);\n });\n\n it('should render required', () => {\n render(\n <CheckboxButtonBar\n label=\"Periode\"\n required={true}\n checkboxes={MOCK_CHECKBOXES}\n defaultValues={['1', '2']}\n labelPosition=\"top\"\n onSetValues={onClickSpy}\n />\n );\n const label = screen.getByText('Periode');\n expect(label).toHaveTextContent('Periode');\n expect(label).toHaveClass('label--required');\n const checkbox = screen.getAllByRole('checkbox');\n expect(checkbox).toHaveLength(3);\n });\n\n it('should render default checked', () => {\n render(\n <CheckboxButtonBar\n label=\"Periode\"\n checkboxes={MOCK_CHECKBOXES}\n defaultValues={['1', '2']}\n labelPosition=\"top\"\n onSetValues={onClickSpy}\n />\n );\n const label = screen.getByText('Periode');\n expect(label).toHaveTextContent('Periode');\n const checkbox = screen.getAllByRole('checkbox');\n expect(checkbox).toHaveLength(3);\n expect(checkbox[0]).toBeChecked();\n expect(checkbox[1]).toBeChecked();\n expect(checkbox[2]).not.toBeChecked();\n });\n\n it('should render notValidatedText and notValid style', () => {\n render(\n <CheckboxButtonBar\n label=\"Periode\"\n notValidatedText=\"Not Valid\"\n checkboxes={MOCK_CHECKBOXES}\n defaultValues={['1', '2']}\n labelPosition=\"top\"\n onSetValues={onClickSpy}\n />\n );\n const label = screen.getByText('Periode');\n expect(label).toHaveTextContent('Periode');\n expect(screen.getByText('Not Valid')).toBeInTheDocument();\n const checkbox = screen.getAllByRole('checkbox');\n expect(checkbox).toHaveLength(3);\n expect(screen.getByText('1.1')).toHaveClass('checkbox-button--not-valid');\n expect(screen.getByText('1.2')).toHaveClass('checkbox-button--not-valid');\n expect(screen.getByText('1.3')).toHaveClass('checkbox-button--not-valid');\n });\n});\n"],"names":["onClickSpy","MOCK_CHECKBOXES","render","jsx","CheckboxButtonBar","screen","checkbox","label"],"mappings":";;;;AAMA,MAAMA,IAAa,KAAK,GAAG,GAErBC,IAAkB;AAAA,EACtB;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EAAA;AAEX;AAEA,SAAS,kBAAkB,MAAM;AAC/B,KAAG,iBAAiB,MAAM;AACxB,IAAAC;AAAA,MACE,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,OAAM;AAAA,UACN,YAAYH;AAAA,UACZ,eAAe,CAAC,KAAK,GAAG;AAAA,UACxB,eAAc;AAAA,UACd,aAAaD;AAAA,QAAA;AAAA,MAAA;AAAA,IAEjB,GACA,OAAOK,EAAO,UAAU,SAAS,CAAC,EAAE,kBAAkB;AAChD,UAAAC,IAAWD,EAAO,aAAa,UAAU;AACxC,WAAAC,CAAQ,EAAE,aAAa,CAAC;AAAA,EAAA,CAChC,GAED,GAAG,0BAA0B,MAAM;AACjC,IAAAJ;AAAA,MACE,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,OAAM;AAAA,UACN,UAAU;AAAA,UACV,YAAYH;AAAA,UACZ,eAAe,CAAC,KAAK,GAAG;AAAA,UACxB,eAAc;AAAA,UACd,aAAaD;AAAA,QAAA;AAAA,MAAA;AAAA,IAEjB;AACM,UAAAO,IAAQF,EAAO,UAAU,SAAS;AACjC,WAAAE,CAAK,EAAE,kBAAkB,SAAS,GAClC,OAAAA,CAAK,EAAE,YAAY,iBAAiB;AACrC,UAAAD,IAAWD,EAAO,aAAa,UAAU;AACxC,WAAAC,CAAQ,EAAE,aAAa,CAAC;AAAA,EAAA,CAChC,GAED,GAAG,iCAAiC,MAAM;AACxC,IAAAJ;AAAA,MACE,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,OAAM;AAAA,UACN,YAAYH;AAAA,UACZ,eAAe,CAAC,KAAK,GAAG;AAAA,UACxB,eAAc;AAAA,UACd,aAAaD;AAAA,QAAA;AAAA,MAAA;AAAA,IAEjB;AACM,UAAAO,IAAQF,EAAO,UAAU,SAAS;AACjC,WAAAE,CAAK,EAAE,kBAAkB,SAAS;AACnC,UAAAD,IAAWD,EAAO,aAAa,UAAU;AACxC,WAAAC,CAAQ,EAAE,aAAa,CAAC,GAC/B,OAAOA,EAAS,CAAC,CAAC,EAAE,YAAY,GAChC,OAAOA,EAAS,CAAC,CAAC,EAAE,YAAY,GAChC,OAAOA,EAAS,CAAC,CAAC,EAAE,IAAI,YAAY;AAAA,EAAA,CACrC,GAED,GAAG,qDAAqD,MAAM;AAC5D,IAAAJ;AAAA,MACE,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,OAAM;AAAA,UACN,kBAAiB;AAAA,UACjB,YAAYH;AAAA,UACZ,eAAe,CAAC,KAAK,GAAG;AAAA,UACxB,eAAc;AAAA,UACd,aAAaD;AAAA,QAAA;AAAA,MAAA;AAAA,IAEjB;AACM,UAAAO,IAAQF,EAAO,UAAU,SAAS;AACjC,WAAAE,CAAK,EAAE,kBAAkB,SAAS,GACzC,OAAOF,EAAO,UAAU,WAAW,CAAC,EAAE,kBAAkB;AAClD,UAAAC,IAAWD,EAAO,aAAa,UAAU;AACxC,WAAAC,CAAQ,EAAE,aAAa,CAAC,GAC/B,OAAOD,EAAO,UAAU,KAAK,CAAC,EAAE,YAAY,4BAA4B,GACxE,OAAOA,EAAO,UAAU,KAAK,CAAC,EAAE,YAAY,4BAA4B,GACxE,OAAOA,EAAO,UAAU,KAAK,CAAC,EAAE,YAAY,4BAA4B;AAAA,EAAA,CACzE;AACH,CAAC;"}
1
+ {"version":3,"file":"CheckboxButtonBar.test.js","sources":["../../../src/components/CheckboxButtonBar/CheckboxButtonBar.test.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-magic-numbers */\nimport '@testing-library/jest-dom';\nimport { render, screen } from '@testing-library/react';\n\nimport { CheckboxButtonBar } from './CheckboxButtonBar';\n\nconst onClickSpy = jest.fn();\n\nconst MOCK_CHECKBOXES = [\n {\n label: '1.1',\n value: '1',\n },\n {\n label: '1.2',\n value: '2',\n },\n {\n label: '1.3',\n value: '3',\n },\n];\n\ndescribe('CheckboxButton', () => {\n it('should render', () => {\n render(\n <CheckboxButtonBar\n label=\"Periode\"\n checkboxes={MOCK_CHECKBOXES}\n defaultValues={['1', '2']}\n labelPosition=\"top\"\n onSetValues={onClickSpy}\n />\n );\n expect(screen.getByText('Periode')).toBeInTheDocument();\n const checkbox = screen.getAllByRole('checkbox');\n expect(checkbox).toHaveLength(3);\n });\n\n it('should render required', () => {\n render(\n <CheckboxButtonBar\n label=\"Periode\"\n required={true}\n checkboxes={MOCK_CHECKBOXES}\n defaultValues={['1', '2']}\n labelPosition=\"top\"\n onSetValues={onClickSpy}\n />\n );\n const label = screen.getByText('Periode');\n expect(label).toHaveTextContent('Periode');\n expect(label).toHaveClass('label--required');\n const checkbox = screen.getAllByRole('checkbox');\n expect(checkbox).toHaveLength(3);\n });\n\n it('should render default checked', () => {\n render(\n <CheckboxButtonBar\n label=\"Periode\"\n checkboxes={MOCK_CHECKBOXES}\n defaultValues={['1', '2']}\n labelPosition=\"top\"\n onSetValues={onClickSpy}\n />\n );\n const label = screen.getByText('Periode');\n expect(label).toHaveTextContent('Periode');\n const checkbox = screen.getAllByRole('checkbox');\n expect(checkbox).toHaveLength(3);\n expect(checkbox[0]).toBeChecked();\n expect(checkbox[1]).toBeChecked();\n expect(checkbox[2]).not.toBeChecked();\n });\n\n it('should render notValidatedText and notValid style', () => {\n render(\n <CheckboxButtonBar\n label=\"Periode\"\n notValidatedText=\"Not Valid\"\n checkboxes={MOCK_CHECKBOXES}\n defaultValues={['1', '2']}\n labelPosition=\"top\"\n onSetValues={onClickSpy}\n />\n );\n const label = screen.getByText('Periode');\n expect(label).toHaveTextContent('Periode');\n expect(screen.getByText('Not Valid')).toBeInTheDocument();\n });\n});\n"],"names":["onClickSpy","MOCK_CHECKBOXES","render","jsx","CheckboxButtonBar","screen","checkbox","label"],"mappings":";;;;AAMA,MAAMA,IAAa,KAAK,GAAG,GAErBC,IAAkB;AAAA,EACtB;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EAAA;AAEX;AAEA,SAAS,kBAAkB,MAAM;AAC/B,KAAG,iBAAiB,MAAM;AACxB,IAAAC;AAAA,MACE,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,OAAM;AAAA,UACN,YAAYH;AAAA,UACZ,eAAe,CAAC,KAAK,GAAG;AAAA,UACxB,eAAc;AAAA,UACd,aAAaD;AAAA,QAAA;AAAA,MAAA;AAAA,IAEjB,GACA,OAAOK,EAAO,UAAU,SAAS,CAAC,EAAE,kBAAkB;AAChD,UAAAC,IAAWD,EAAO,aAAa,UAAU;AACxC,WAAAC,CAAQ,EAAE,aAAa,CAAC;AAAA,EAAA,CAChC,GAED,GAAG,0BAA0B,MAAM;AACjC,IAAAJ;AAAA,MACE,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,OAAM;AAAA,UACN,UAAU;AAAA,UACV,YAAYH;AAAA,UACZ,eAAe,CAAC,KAAK,GAAG;AAAA,UACxB,eAAc;AAAA,UACd,aAAaD;AAAA,QAAA;AAAA,MAAA;AAAA,IAEjB;AACM,UAAAO,IAAQF,EAAO,UAAU,SAAS;AACjC,WAAAE,CAAK,EAAE,kBAAkB,SAAS,GAClC,OAAAA,CAAK,EAAE,YAAY,iBAAiB;AACrC,UAAAD,IAAWD,EAAO,aAAa,UAAU;AACxC,WAAAC,CAAQ,EAAE,aAAa,CAAC;AAAA,EAAA,CAChC,GAED,GAAG,iCAAiC,MAAM;AACxC,IAAAJ;AAAA,MACE,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,OAAM;AAAA,UACN,YAAYH;AAAA,UACZ,eAAe,CAAC,KAAK,GAAG;AAAA,UACxB,eAAc;AAAA,UACd,aAAaD;AAAA,QAAA;AAAA,MAAA;AAAA,IAEjB;AACM,UAAAO,IAAQF,EAAO,UAAU,SAAS;AACjC,WAAAE,CAAK,EAAE,kBAAkB,SAAS;AACnC,UAAAD,IAAWD,EAAO,aAAa,UAAU;AACxC,WAAAC,CAAQ,EAAE,aAAa,CAAC,GAC/B,OAAOA,EAAS,CAAC,CAAC,EAAE,YAAY,GAChC,OAAOA,EAAS,CAAC,CAAC,EAAE,YAAY,GAChC,OAAOA,EAAS,CAAC,CAAC,EAAE,IAAI,YAAY;AAAA,EAAA,CACrC,GAED,GAAG,qDAAqD,MAAM;AAC5D,IAAAJ;AAAA,MACE,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,OAAM;AAAA,UACN,kBAAiB;AAAA,UACjB,YAAYH;AAAA,UACZ,eAAe,CAAC,KAAK,GAAG;AAAA,UACxB,eAAc;AAAA,UACd,aAAaD;AAAA,QAAA;AAAA,MAAA;AAAA,IAEjB;AACM,UAAAO,IAAQF,EAAO,UAAU,SAAS;AACjC,WAAAE,CAAK,EAAE,kBAAkB,SAAS,GACzC,OAAOF,EAAO,UAAU,WAAW,CAAC,EAAE,kBAAkB;AAAA,EAAA,CACzD;AACH,CAAC;"}
@@ -6,11 +6,11 @@ import "../Buttons/LinkButton.js";
6
6
  import "@react-aria/button";
7
7
  import "../Checkbox/Checkbox.js";
8
8
  import { Label as h } from "../Label/Label.js";
9
+ import { FeedbackBox as k } from "../FeedbackBox/FeedbackBox.js";
9
10
  import "@react-aria/dialog";
10
11
  import "@react-aria/focus";
11
12
  import "@react-aria/overlays";
12
13
  import "../OverlayCloseButton/OverlayCloseButton.js";
13
- import { FeedbackBox as k } from "../FeedbackBox/FeedbackBox.js";
14
14
  import "../GridRow/GridRow.js";
15
15
  import "../IconButton/IconButton.js";
16
16
  import "../Input/Input.js";
@@ -1,21 +1,21 @@
1
1
  import { jsxs as h, jsx as s } from "react/jsx-runtime";
2
- import { c as v } from "../../clsx-OuTLNxxd.js";
3
- import { useRef as M, useState as $, useEffect as N } from "react";
2
+ import { c as x } from "../../clsx-OuTLNxxd.js";
3
+ import { useRef as v, useState as M, useEffect as $ } from "react";
4
4
  import "../Buttons/Button.js";
5
5
  import "../Buttons/LinkButton.js";
6
6
  import "@react-aria/button";
7
7
  import "../Checkbox/Checkbox.js";
8
- import { CheckboxButtonBar as w } from "../CheckboxButtonBar/CheckboxButtonBar.js";
8
+ import { CheckboxButtonBar as N } from "../CheckboxButtonBar/CheckboxButtonBar.js";
9
9
  import "@react-aria/dialog";
10
10
  import "@react-aria/focus";
11
11
  import "@react-aria/overlays";
12
12
  import "../OverlayCloseButton/OverlayCloseButton.js";
13
- import { FeedbackBox as B } from "../FeedbackBox/FeedbackBox.js";
13
+ import { FeedbackBox as w } from "../FeedbackBox/FeedbackBox.js";
14
14
  import "../GridRow/GridRow.js";
15
15
  import "../IconButton/IconButton.js";
16
16
  import "../Input/Input.js";
17
17
  import "../InputField/InputField.js";
18
- import { Label as D } from "../Label/Label.js";
18
+ import { Label as B } from "../Label/Label.js";
19
19
  import "react-router";
20
20
  import "../../TablePlugin-hxs9O_ox.js";
21
21
  import "../RteEditor/Providers/LanguageProvider.js";
@@ -27,59 +27,60 @@ import "../SelectListbox/SelectProvider.js";
27
27
  import "../Sortable/components/SortableItem.js";
28
28
  import "../../SortableProvider-B3_u0pKv.js";
29
29
  import '../../assets/PeriodSelector.css';const l = {
30
- "period-selector__container": "_period-selector__container_10t7p_1",
31
- "period-selector__container--label-left": "_period-selector__container--label-left_10t7p_6",
32
- "period-selector__container--label-top": "_period-selector__container--label-top_10t7p_12",
33
- "period-selector__selector-container": "_period-selector__selector-container_10t7p_19",
34
- "period-selector__selector-row": "_period-selector__selector-row_10t7p_25"
35
- }, S = 0, f = 1, E = 2, p = 3, I = 7, T = (n) => {
30
+ "period-selector__container": "_period-selector__container_d1p0j_1",
31
+ "period-selector__container--label-left": "_period-selector__container--label-left_d1p0j_6",
32
+ "period-selector__container--label-top": "_period-selector__container--label-top_d1p0j_12",
33
+ "period-selector__selector-container": "_period-selector__selector-container_d1p0j_18",
34
+ "period-selector__selector-row": "_period-selector__selector-row_d1p0j_24"
35
+ }, S = 0, f = 1, E = 2, _ = 3, D = 7, I = (n) => {
36
36
  const c = [];
37
- for (let t = 0; t < n.length; t += p)
38
- c.push(n.slice(t, t + p));
37
+ for (let t = 0; t < n.length; t += _)
38
+ c.push(n.slice(t, t + _));
39
39
  return c;
40
40
  }, lr = ({
41
- maxPeriods: n = I,
41
+ maxPeriods: n = D,
42
42
  defaultValues: c,
43
43
  label: t,
44
44
  labelPosition: b = "top",
45
- required: _ = !1,
46
- notValidatedText: m = "",
45
+ required: m = !1,
46
+ notValidatedText: p = "",
47
47
  onChange: g
48
48
  }) => {
49
- const R = Array.from({ length: n }, (r, e) => e + 1), a = T(R), x = a.map((r, e) => r.map((o) => ({
50
- label: `${e + 1}${r.length === 1 ? "" : `.${(o - 1) % p + 1}`}`,
49
+ const R = Array.from({ length: n }, (r, e) => e + 1), a = I(R), j = a.map((r, e) => r.map((o) => ({
50
+ label: `${e + 1}${r.length === 1 ? "" : `.${(o - 1) % _ + 1}`}`,
51
51
  value: o.toString()
52
- }))), i = M(
52
+ }))), i = v(
53
53
  a.map(
54
54
  (r) => r.reduce((e, o) => (c != null && c.includes(o) && e.push(o), e), [])
55
55
  )
56
- ), [P, u] = $([]), d = (r) => r[S].length !== 0 || r[f].length !== 0 ? [E] : r[E].length !== 0 ? [S, f] : [], k = (r, e) => {
57
- i.current[e] = r.map((o) => Number(o)), u(d(i.current)), g([...i.current.flat()].sort());
56
+ ), [P, d] = M([]), u = (r) => r[S].length !== 0 || r[f].length !== 0 ? [E] : r[E].length !== 0 ? [S, f] : [], k = (r, e) => {
57
+ i.current[e] = r.map((o) => Number(o)), d(u(i.current)), g([...i.current.flat()].sort());
58
58
  };
59
- return N(() => {
60
- u(d(i.current));
59
+ return $(() => {
60
+ d(u(i.current));
61
61
  }, []), /* @__PURE__ */ h(
62
62
  "div",
63
63
  {
64
- className: v(
64
+ className: x(
65
65
  l["period-selector__container"],
66
66
  l[`period-selector__container--label-${b}`]
67
67
  ),
68
68
  children: [
69
- t && /* @__PURE__ */ s(D, { htmlFor: "", required: _, children: t }),
69
+ t && /* @__PURE__ */ s(B, { htmlFor: "", required: m, children: t }),
70
70
  /* @__PURE__ */ h("div", { className: l["period-selector__selector-container"], children: [
71
- /* @__PURE__ */ s("div", { className: l["period-selector__selector-row"], children: x.map((r, e) => /* @__PURE__ */ s(
72
- w,
71
+ /* @__PURE__ */ s("div", { className: l["period-selector__selector-row"], children: j.map((r, e) => /* @__PURE__ */ s(
72
+ N,
73
73
  {
74
74
  checkboxes: r,
75
75
  defaultValues: i.current[e].map((o) => o.toString()),
76
76
  disableGroup: P.includes(e),
77
- required: _,
78
- onSetValues: (o) => k(o, e)
77
+ required: m,
78
+ onSetValues: (o) => k(o, e),
79
+ notValidated: p !== ""
79
80
  },
80
81
  `group_${e}`
81
82
  )) }),
82
- m !== "" && /* @__PURE__ */ s(B, { level: "error", feedback: m })
83
+ p !== "" && /* @__PURE__ */ s(w, { level: "error", feedback: p })
83
84
  ] })
84
85
  ]
85
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, semester) => {\n return periods.map((period) => ({\n label: `${semester + 1}${periods.length === 1 ? '' : `.${((period - 1) % PERIODS_PER_SEMESTER) + 1}`}`,\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 />\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","semester","period","returnValues","useRef","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, semester) => {\n return periods.map((period) => ({\n label: `${semester + 1}${periods.length === 1 ? '' : `.${((period - 1) % PERIODS_PER_SEMESTER) + 1}`}`,\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","semester","period","returnValues","useRef","disableSemesters","setDisableSemesters","useState","disableGroups","selects","handleChange","values","num","useEffect","jsxs","clsx","styles","jsx","Label","checkboxes","CheckboxButtonBar","event","FeedbackBox"],"mappings":"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"}
@@ -8,11 +8,11 @@ import "../../../../Buttons/LinkButton.js";
8
8
  import "@react-aria/button";
9
9
  import "../../../../Checkbox/Checkbox.js";
10
10
  import "../../../../Label/Label.js";
11
+ import "../../../../FeedbackBox/FeedbackBox.js";
11
12
  import "@react-aria/dialog";
12
13
  import "@react-aria/focus";
13
14
  import "@react-aria/overlays";
14
15
  import "../../../../OverlayCloseButton/OverlayCloseButton.js";
15
- import "../../../../FeedbackBox/FeedbackBox.js";
16
16
  import "../../../../FormField/FormField.js";
17
17
  import "../../../../GridRow/GridRow.js";
18
18
  import "../../../../IconButton/IconButton.js";
@@ -23,11 +23,11 @@ import "../Buttons/Button.js";
23
23
  import "../Buttons/LinkButton.js";
24
24
  import "@react-aria/button";
25
25
  import "../Checkbox/Checkbox.js";
26
+ import { FeedbackBox as fr } from "../FeedbackBox/FeedbackBox.js";
26
27
  import "@react-aria/dialog";
27
28
  import "@react-aria/focus";
28
29
  import "@react-aria/overlays";
29
30
  import "../OverlayCloseButton/OverlayCloseButton.js";
30
- import { FeedbackBox as fr } from "../FeedbackBox/FeedbackBox.js";
31
31
  import "../GridRow/GridRow.js";
32
32
  import "../IconButton/IconButton.js";
33
33
  import "../Input/Input.js";
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@uva-glass/component-library",
3
3
  "author": "Team Glass - Frontend vrienden",
4
4
  "private": false,
5
- "version": "3.19.4",
5
+ "version": "3.20.0",
6
6
  "type": "module",
7
7
  "main": "dist/index.js",
8
8
  "types": "dist/index.d.ts",