@uva-glass/component-library 3.30.1 → 3.31.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 (165) hide show
  1. package/dist/{Lexical.prod-UwAbgYpF.js → Lexical.prod-B84LhBo3.js} +1196 -1224
  2. package/dist/Lexical.prod-B84LhBo3.js.map +1 -0
  3. package/dist/{LexicalClipboard.prod-DHIGjydG.js → LexicalClipboard.prod-DLgWWXys.js} +4 -4
  4. package/dist/{LexicalClipboard.prod-DHIGjydG.js.map → LexicalClipboard.prod-DLgWWXys.js.map} +1 -1
  5. package/dist/{LexicalLink.prod-Bsa9J7L-.js → LexicalLink.prod-DoU9RL94.js} +3 -3
  6. package/dist/{LexicalLink.prod-Bsa9J7L-.js.map → LexicalLink.prod-DoU9RL94.js.map} +1 -1
  7. package/dist/{LexicalList.prod-jxGuZd4b.js → LexicalList.prod-Cw2TK1jY.js} +4 -4
  8. package/dist/{LexicalList.prod-jxGuZd4b.js.map → LexicalList.prod-Cw2TK1jY.js.map} +1 -1
  9. package/dist/{LexicalSelection.prod-xk5MiZnZ.js → LexicalSelection.prod-TB5pn9xc.js} +2 -2
  10. package/dist/{LexicalSelection.prod-xk5MiZnZ.js.map → LexicalSelection.prod-TB5pn9xc.js.map} +1 -1
  11. package/dist/{LexicalTable.prod-BSjs04iE.js → LexicalTable.prod-9xjyWB0C.js} +4 -4
  12. package/dist/{LexicalTable.prod-BSjs04iE.js.map → LexicalTable.prod-9xjyWB0C.js.map} +1 -1
  13. package/dist/{LexicalUtils.prod-cQutjKA3.js → LexicalUtils.prod-CD3xGFhm.js} +2 -2
  14. package/dist/{LexicalUtils.prod-cQutjKA3.js.map → LexicalUtils.prod-CD3xGFhm.js.map} +1 -1
  15. package/dist/Sortable.module--kgnzOjW.js +26 -0
  16. package/dist/Sortable.module--kgnzOjW.js.map +1 -0
  17. package/dist/SortableProvider-C2T7b-pm.js +153 -0
  18. package/dist/SortableProvider-C2T7b-pm.js.map +1 -0
  19. package/dist/{TablePlugin-NmJsn2fm.js → TablePlugin-Dmy98Epb.js} +86 -91
  20. package/dist/{TablePlugin-NmJsn2fm.js.map → TablePlugin-Dmy98Epb.js.map} +1 -1
  21. package/dist/assets/Backdrop.css +1 -1
  22. package/dist/assets/Button.css +1 -1
  23. package/dist/assets/ClipboardButton.css +1 -1
  24. package/dist/assets/ExpandableInfoPanel.css +1 -1
  25. package/dist/assets/FormInput.css +1 -1
  26. package/dist/assets/IconButton.css +1 -1
  27. package/dist/assets/Input.css +1 -1
  28. package/dist/assets/InputField.css +1 -1
  29. package/dist/assets/LinkContextMenu.css +1 -1
  30. package/dist/assets/Notification.css +1 -1
  31. package/dist/assets/OverlayCloseButton.css +1 -1
  32. package/dist/assets/OverlayStepBar.css +1 -1
  33. package/dist/assets/PageOverlay.css +1 -1
  34. package/dist/assets/Sortable.css +1 -1
  35. package/dist/assets/VarIndicator.css +1 -1
  36. package/dist/components/Accordion/Accordion.test.js +3 -3
  37. package/dist/components/AccordionCard/AccordionCard.test.js +3 -3
  38. package/dist/components/ActionList/ActionList.test.js +3 -3
  39. package/dist/components/AppStatusBar/AppStatusBar.test.js +2 -2
  40. package/dist/components/Attention/Attention.test.js +2 -2
  41. package/dist/components/Backdrop/Backdrop.test.js +2 -2
  42. package/dist/components/Buttons/Button.stories.js +1 -1
  43. package/dist/components/Buttons/Button.test.js +2 -2
  44. package/dist/components/Buttons/LinkButton.stories.js +1 -1
  45. package/dist/components/Buttons/LinkButton.test.js +2 -2
  46. package/dist/components/Buttons/MenuButton.stories.js +5 -5
  47. package/dist/components/Buttons/MenuButton.test.js +2 -2
  48. package/dist/components/Card/Card.test.js +2 -2
  49. package/dist/components/Checkbox/Checkbox.stories.js +1 -1
  50. package/dist/components/Checkbox/Checkbox.test.js +3 -3
  51. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.stories.js +1 -1
  52. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.test.js +2 -2
  53. package/dist/components/CheckboxTree/CheckboxTree.js +58 -59
  54. package/dist/components/CheckboxTree/CheckboxTree.js.map +1 -1
  55. package/dist/components/CheckboxTree/CheckboxTree.stories.js +58 -59
  56. package/dist/components/CheckboxTree/CheckboxTree.stories.js.map +1 -1
  57. package/dist/components/Chip/Chip.stories.js +5 -5
  58. package/dist/components/ControlsButton/ControlsButton.stories.js +5 -5
  59. package/dist/components/Drawer/Drawer.stories.js +1 -1
  60. package/dist/components/FeedbackBar/FeedbackBar.test.js +2 -2
  61. package/dist/components/FormInput/FormInput.js +3 -3
  62. package/dist/components/FormInput/FormInput.stories.js +1 -1
  63. package/dist/components/HorizontalList/HorizontalList.js +7 -7
  64. package/dist/components/HorizontalList/HorizontalList.js.map +1 -1
  65. package/dist/components/IconButton/IconButton.stories.js +1 -1
  66. package/dist/components/InputField/InputField.stories.js +10 -10
  67. package/dist/components/Label/Label.test.js +2 -2
  68. package/dist/components/ModalDialog/ModalDialog.stories.js +8 -8
  69. package/dist/components/MultiSelect/MultiSelect.js +1 -1
  70. package/dist/components/MultiSelect/MultiSelect.stories.js +8 -8
  71. package/dist/components/MultiSelect/components/MultiSelectHeader.js +3 -3
  72. package/dist/components/MultiSelect/index.js +1 -1
  73. package/dist/components/MultiSelectBox/MultiSelectBox.js +66 -70
  74. package/dist/components/MultiSelectBox/MultiSelectBox.js.map +1 -1
  75. package/dist/components/MultiSelectBox/MultiSelectBox.stories.js +1 -1
  76. package/dist/components/MultiSelectBox/MultiSelectBox.test.js +2 -2
  77. package/dist/components/Notification/Notification.stories.js +6 -6
  78. package/dist/components/Notification/Notification.test.js +2 -2
  79. package/dist/components/OverlayCloseButton/OverlayCloseButton.stories.js +4 -4
  80. package/dist/components/OverlayStepBar/OverlayStepBar.stories.js +19 -20
  81. package/dist/components/OverlayStepBar/OverlayStepBar.stories.js.map +1 -1
  82. package/dist/components/PeriodSelector/PeriodSelector.js +33 -33
  83. package/dist/components/PeriodSelector/PeriodSelector.js.map +1 -1
  84. package/dist/components/PeriodSelector/PeriodSelector.stories.js +4 -4
  85. package/dist/components/ProgrammeCard/ProgrammeCard.stories.js +3 -3
  86. package/dist/components/RadioGroup/RadioGroup.stories.js +1 -1
  87. package/dist/components/RadioGroup/Radiogroup.test.js +2 -2
  88. package/dist/components/RadioTabSelector/RadioTabSelector.js +3 -3
  89. package/dist/components/RadioTabSelector/RadioTabSelector.stories.js +1 -1
  90. package/dist/components/RteEditor/EditorHeader/EditorHeader.js +3 -3
  91. package/dist/components/RteEditor/Plugins/BlockFormatPlugin/BlockFormatPlugin.js +1 -1
  92. package/dist/components/RteEditor/Plugins/HistoryPlugin/HistoryPlugin.js +4 -4
  93. package/dist/components/RteEditor/Plugins/LinkPlugin/AddLinkForm/AddLinkFrom.js +4 -4
  94. package/dist/components/RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js +51 -61
  95. package/dist/components/RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js.map +1 -1
  96. package/dist/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.js +79 -89
  97. package/dist/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.js.map +1 -1
  98. package/dist/components/RteEditor/Plugins/LinkPlugin/helpers.js +1 -1
  99. package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.js +3 -3
  100. package/dist/components/RteEditor/Plugins/PasteHandlerPlugin/PasteHandlerPlugin.js +4 -4
  101. package/dist/components/RteEditor/Plugins/TablePlugin/AddTableFrom.js +3 -3
  102. package/dist/components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/TableCellContextMenu.js +19 -19
  103. package/dist/components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/TableCellContextMenu.js.map +1 -1
  104. package/dist/components/RteEditor/Plugins/TablePlugin/TablePlugin.js +5 -5
  105. package/dist/components/RteEditor/Plugins/TablePlugin/helpers.js +17 -18
  106. package/dist/components/RteEditor/Plugins/TablePlugin/helpers.js.map +1 -1
  107. package/dist/components/RteEditor/Plugins/TablePlugin/index.js +1 -1
  108. package/dist/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.js +31 -32
  109. package/dist/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.js.map +1 -1
  110. package/dist/components/RteEditor/Plugins/index.js +1 -1
  111. package/dist/components/RteEditor/RteEditor.js +10 -10
  112. package/dist/components/RteEditor/helpers.js +4 -4
  113. package/dist/components/SelectListbox/SelectListBox.stories.js +1 -1
  114. package/dist/components/SelectListbox/components/SelectButton.js +31 -32
  115. package/dist/components/SelectListbox/components/SelectButton.js.map +1 -1
  116. package/dist/components/SelectListbox/components/SelectOption.js +29 -30
  117. package/dist/components/SelectListbox/components/SelectOption.js.map +1 -1
  118. package/dist/components/Sortable/Sortable.d.ts +6 -1
  119. package/dist/components/Sortable/Sortable.js +23 -13
  120. package/dist/components/Sortable/Sortable.js.map +1 -1
  121. package/dist/components/Sortable/Sortable.stories.js +13 -12
  122. package/dist/components/Sortable/Sortable.stories.js.map +1 -1
  123. package/dist/components/Sortable/SortableProvider.d.ts +2 -1
  124. package/dist/components/Sortable/SortableProvider.js +1 -1
  125. package/dist/components/Sortable/components/SortableContainer.d.ts +2 -1
  126. package/dist/components/Sortable/components/SortableContainer.js +2 -2
  127. package/dist/components/Sortable/components/SortableHandle.js +1 -1
  128. package/dist/components/Sortable/components/SortableItem.d.ts +3 -1
  129. package/dist/components/Sortable/components/SortableItem.js +48 -47
  130. package/dist/components/Sortable/components/SortableItem.js.map +1 -1
  131. package/dist/components/StatusBadge/StatusBadge.test.js +2 -2
  132. package/dist/components/TextArea/TextArea.stories.js +1 -1
  133. package/dist/components/TextArea/TextArea.test.js +3 -3
  134. package/dist/components/ToggleSwitch/ToggleSwitch.stories.js +1 -1
  135. package/dist/components/VarIndicator/VarIndicator.stories.js +1 -1
  136. package/dist/components/VarIndicator/VarIndicator.test.js +3 -3
  137. package/dist/components/hooks/usePositionedFloaters.js +39 -39
  138. package/dist/components/hooks/usePositionedFloaters.js.map +1 -1
  139. package/dist/components/index.js +1 -1
  140. package/dist/{helpers-DZIm3MiJ.js → helpers-CMG0anwr.js} +4 -4
  141. package/dist/{helpers-DZIm3MiJ.js.map → helpers-CMG0anwr.js.map} +1 -1
  142. package/dist/{index-DV47hRzi.js → index-Br0QepD6.js} +8 -10
  143. package/dist/{index-DV47hRzi.js.map → index-Br0QepD6.js.map} +1 -1
  144. package/dist/{index-Di9WPZUe.js → index-C2E9FY6V.js} +9149 -9854
  145. package/dist/index-C2E9FY6V.js.map +1 -0
  146. package/dist/{index-PaHiqSUg.js → index-Ds1dMTvJ.js} +29 -29
  147. package/dist/{index-PaHiqSUg.js.map → index-Ds1dMTvJ.js.map} +1 -1
  148. package/dist/{index-BVAvx58-.js → index-KJPw-7za.js} +2209 -2280
  149. package/dist/{index-BVAvx58-.js.map → index-KJPw-7za.js.map} +1 -1
  150. package/dist/{index-DllfJcv4.js → index-nrPtQ1dv.js} +2 -2
  151. package/dist/{index-DllfJcv4.js.map → index-nrPtQ1dv.js.map} +1 -1
  152. package/dist/index.js +1 -1
  153. package/dist/{react.esm-CFMwGdo5.js → react.esm-BKjCIfbB.js} +373 -374
  154. package/dist/{react.esm-CFMwGdo5.js.map → react.esm-BKjCIfbB.js.map} +1 -1
  155. package/dist/setupTests.js +6 -9
  156. package/dist/setupTests.js.map +1 -1
  157. package/dist/storybook__react.d.js +2056 -2072
  158. package/dist/storybook__react.d.js.map +1 -1
  159. package/package.json +14 -14
  160. package/dist/Lexical.prod-UwAbgYpF.js.map +0 -1
  161. package/dist/Sortable.module-CekPNg54.js +0 -23
  162. package/dist/Sortable.module-CekPNg54.js.map +0 -1
  163. package/dist/SortableProvider-CwX1lFMa.js +0 -152
  164. package/dist/SortableProvider-CwX1lFMa.js.map +0 -1
  165. package/dist/index-Di9WPZUe.js.map +0 -1
@@ -1 +1 @@
1
- ._overlay-step-bar__container_goxua_1{align-items:center;background-color:var(--new-color-grey-200);display:flex;height:2.5rem;justify-content:center;overflow-y:hidden}._overlay-step-bar__step-wrapper_goxua_10{background-color:var(--new-color-grey-200);height:100%;position:relative}._overlay-step-bar__step-wrapper_goxua_10:not(:last-child):after{border-bottom:1.5rem solid transparent;border-left:1rem solid var(--new-color-grey-200);border-top:1.5rem solid transparent;content:"";position:absolute;right:-.25rem;top:-.25rem;z-index:10}._overlay-step-bar__step-wrapper_goxua_10:not(:last-child):before{border-bottom:1.5rem solid transparent;border-left:1rem solid var(--new-color-uva-white);border-top:1.5rem solid transparent;content:"";position:absolute;right:-.5rem;top:-.25rem;z-index:5}._overlay-step-bar__step_goxua_10{align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;color:var(--new-color-grey-700);cursor:pointer;display:flex;font-family:inherit;font-size:var(--font-size-default);height:100%;margin-left:.5rem;padding:0 2rem 0 1.5rem;position:relative;width:calc(100% - .75rem)}._overlay-step-bar__step--label_goxua_55{display:none;text-decoration:none;white-space:nowrap}._overlay-step-bar__step--label-show_goxua_61{display:block}._overlay-step-bar__step--index_goxua_65{margin-right:.5rem}._overlay-step-bar__step--label_goxua_55:hover{text-decoration:underline}._overlay-step-bar__step--active_goxua_73 ._overlay-step-bar__step--label_goxua_55{display:block}._overlay-step-bar__step_goxua_10:hover ._overlay-step-bar__step--index_goxua_65,._overlay-step-bar__step_goxua_10:hover ._overlay-step-bar__step--label_goxua_55{text-decoration:underline}@media (min-width: 70rem){._overlay-step-bar__step--label_goxua_55{display:block}._overlay-step-bar__step_goxua_10:hover ._overlay-step-bar__step--index_goxua_65{text-decoration:none}}._overlay-step-bar__step_goxua_10:focus-visible{outline:.125rem dotted var(--new-color-navy-600);outline-offset:-.25rem;z-index:15}._overlay-step-bar__step--active_goxua_73{color:var(--new-color-uva-black);font-weight:var(--semibold)}._overlay-step-bar__step--active_goxua_73:hover ._overlay-step-bar__step--index_goxua_65,._overlay-step-bar__step--active_goxua_73:hover ._overlay-step-bar__step--label_goxua_55{cursor:default;text-decoration:none}
1
+ ._overlay-step-bar__container_goxua_1{align-items:center;background-color:var(--new-color-grey-200);display:flex;height:2.5rem;justify-content:center;overflow-y:hidden}._overlay-step-bar__step-wrapper_goxua_10{background-color:var(--new-color-grey-200);height:100%;position:relative}._overlay-step-bar__step-wrapper_goxua_10:not(:last-child):after{border-bottom:1.5rem solid transparent;border-left:1rem solid var(--new-color-grey-200);border-top:1.5rem solid transparent;content:"";position:absolute;right:-.25rem;top:-.25rem;z-index:10}._overlay-step-bar__step-wrapper_goxua_10:not(:last-child):before{border-bottom:1.5rem solid transparent;border-left:1rem solid var(--new-color-uva-white);border-top:1.5rem solid transparent;content:"";position:absolute;right:-.5rem;top:-.25rem;z-index:5}._overlay-step-bar__step_goxua_10{align-items:center;appearance:none;background-color:transparent;border:none;color:var(--new-color-grey-700);cursor:pointer;display:flex;font-family:inherit;font-size:var(--font-size-default);height:100%;margin-left:.5rem;padding:0 2rem 0 1.5rem;position:relative;width:calc(100% - .75rem)}._overlay-step-bar__step--label_goxua_55{display:none;text-decoration:none;white-space:nowrap}._overlay-step-bar__step--label-show_goxua_61{display:block}._overlay-step-bar__step--index_goxua_65{margin-right:.5rem}._overlay-step-bar__step--label_goxua_55:hover{text-decoration:underline}._overlay-step-bar__step--active_goxua_73 ._overlay-step-bar__step--label_goxua_55{display:block}._overlay-step-bar__step_goxua_10:hover ._overlay-step-bar__step--index_goxua_65,._overlay-step-bar__step_goxua_10:hover ._overlay-step-bar__step--label_goxua_55{text-decoration:underline}@media (min-width: 70rem){._overlay-step-bar__step--label_goxua_55{display:block}._overlay-step-bar__step_goxua_10:hover ._overlay-step-bar__step--index_goxua_65{text-decoration:none}}._overlay-step-bar__step_goxua_10:focus-visible{outline:.125rem dotted var(--new-color-navy-600);outline-offset:-.25rem;z-index:15}._overlay-step-bar__step--active_goxua_73{color:var(--new-color-uva-black);font-weight:var(--semibold)}._overlay-step-bar__step--active_goxua_73:hover ._overlay-step-bar__step--index_goxua_65,._overlay-step-bar__step--active_goxua_73:hover ._overlay-step-bar__step--label_goxua_55{cursor:default;text-decoration:none}
@@ -1 +1 @@
1
- ._page-overlay__container_x277a_1{bottom:0;left:0;position:fixed;right:0;top:0;z-index:50}._page-overlay_x277a_1{background:var(--new-color-uva-white);display:flex;flex-direction:column;height:100dvh}._page-overlay--full-screen_x277a_19{width:100vw}._page-overlay--with-gutters_x277a_23{max-width:87.5rem;width:100%}._page-overlay__content_x277a_28{display:flex;flex-direction:column;height:100svh;justify-content:space-between;overflow:hidden;overflow-y:auto;padding:0 1.5rem;width:100%}._page-overlay__content--grey_x277a_39{background-color:var(--new-color-grey-200)}._page-overlay__content--white_x277a_43{background-color:var(--new-color-uva-white)}._page-overlay__children_x277a_47{padding-bottom:1rem}._page-overlay__title-wrapper_x277a_51{position:relative}._page-overlay__title_x277a_51{font-size:var(--font-size-s);line-height:var(--line-height-m);margin:0 1.5rem 0 0;padding:1rem 1.5rem}._page-overlay__buttons-bar_x277a_62{background-color:var(--new-color-uva-white);bottom:0;display:flex;flex-direction:column;gap:.75rem;justify-content:flex-start;margin:0 -1.5rem;padding:.5rem 1rem;position:sticky;right:0}._page-overlay__buttons-bar_x277a_62:before{background:linear-gradient(to top,#0000004d,#0000);bottom:100%;content:"";height:10px;left:0;opacity:0;pointer-events:none;position:absolute;right:0;transition:opacity .4s ease-out}._page-overlay__buttons-bar--shadow_x277a_88:before{opacity:1}._page-overlay__close_x277a_94{height:1.5rem;position:absolute;right:1rem;top:calc(50% - .125rem);transform:translateY(-50%)}@media (min-width: 28rem) and (min-height: 28rem){._page-overlay--with-gutters_x277a_23{margin:0 .75rem}}
1
+ ._page-overlay__container_x277a_1{inset:0;position:fixed;z-index:50}._page-overlay_x277a_1{background:var(--new-color-uva-white);display:flex;flex-direction:column;height:100dvh}._page-overlay--full-screen_x277a_19{width:100vw}._page-overlay--with-gutters_x277a_23{max-width:87.5rem;width:100%}._page-overlay__content_x277a_28{display:flex;flex-direction:column;height:100svh;justify-content:space-between;overflow:hidden;overflow-y:auto;padding:0 1.5rem;width:100%}._page-overlay__content--grey_x277a_39{background-color:var(--new-color-grey-200)}._page-overlay__content--white_x277a_43{background-color:var(--new-color-uva-white)}._page-overlay__children_x277a_47{padding-bottom:1rem}._page-overlay__title-wrapper_x277a_51{position:relative}._page-overlay__title_x277a_51{font-size:var(--font-size-s);line-height:var(--line-height-m);margin:0 1.5rem 0 0;padding:1rem 1.5rem}._page-overlay__buttons-bar_x277a_62{background-color:var(--new-color-uva-white);bottom:0;display:flex;flex-direction:column;gap:.75rem;justify-content:flex-start;margin:0 -1.5rem;padding:.5rem 1rem;position:sticky;right:0}._page-overlay__buttons-bar_x277a_62:before{background:linear-gradient(to top,#0000004d,#0000);bottom:100%;content:"";height:10px;left:0;opacity:0;pointer-events:none;position:absolute;right:0;transition:opacity .4s ease-out}._page-overlay__buttons-bar--shadow_x277a_88:before{opacity:1}._page-overlay__close_x277a_94{height:1.5rem;position:absolute;right:1rem;top:calc(50% - .125rem);transform:translateY(-50%)}@media (min-width: 28rem) and (min-height: 28rem){._page-overlay--with-gutters_x277a_23{margin:0 .75rem}}
@@ -1 +1 @@
1
- ._sortable__wrapper_ttudd_1{position:relative}._sortable__wrapper--scrollable_ttudd_5{border-bottom:1px solid var(--new-color-grey-300);border-top:1px solid var(--new-color-grey-300);margin-bottom:1rem;max-height:21rem;overflow-y:auto}._sortable__container_ttudd_13{--item-min-height: 3.75rem;counter-reset:container;display:flex;flex-direction:column;gap:1rem;list-style:none;margin:1rem 1rem 1rem 0;padding:0}._sortable__drop-target_ttudd_25{display:flex;gap:1rem;min-height:var(--item-min-height);position:relative}._sortable__drop-target_ttudd_25:before{align-items:center;content:counter(container);counter-increment:container;display:flex;opacity:1;position:relative;transition:opacity .25s}._sortable__drop-target_ttudd_25:after{content:"";display:block;height:1px;left:0;position:absolute;width:100%;z-index:1}._sortable__drop-target_ttudd_25:last-child:after{display:inline}._sortable__sort-item_ttudd_56{align-items:center;background-color:var(--new-color-grey-200);border-radius:.5rem;display:flex;gap:1rem;min-height:var(--item-min-height);position:relative;width:100%;z-index:0}._sortable__sort-item_ttudd_56:focus{z-index:2}._sortable__sort-item--ghost_ttudd_72{margin:0 1rem;opacity:.5;padding:.5rem 0;pointer-events:none;position:fixed;-webkit-user-drag:none;visibility:hidden;z-index:2}._sortable__sort-item__handle_ttudd_83{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;background-color:var(--new-color-uva-white);border:0;cursor:grab;height:2.625rem;width:2.625rem}._sortable__sort-item__button-container_ttudd_93{align-items:center;background-color:var(--new-color-grey-300);border-left:1px solid var(--new-color-grey-300);border-radius:0 .5rem .5rem 0;display:flex;flex-direction:column;inset:0 0 0 auto;margin-right:1px;overflow:hidden;position:absolute;width:2.625rem;z-index:20}._sortable__sort-item__button-container_ttudd_93[data-touch=false]{display:none}._sortable__sort-item__handle--icon_ttudd_112{align-items:center;display:flex;height:1rem;width:1rem}._sortable__sort-item__handle--up_ttudd_119,._sortable__sort-item__handle--down_ttudd_120{color:#000;display:none;height:100%;right:.5rem}._sortable__sort-item__handle--up_ttudd_119{transform:rotate(180deg)}._sortable__sort-item--dragging_ttudd_131 ._sortable__sort-item__handle_ttudd_83{cursor:grabbing}._sortable__sort-item__contents_ttudd_135{align-items:center;color:var(--new-color-uva-black);display:flex;gap:.5rem;padding:.5rem;width:100%}._sortable__sort-item__contents--handle-right_ttudd_144{padding-left:1rem;padding-right:2.5rem}._sortable__handle_ttudd_149{color:var(--new-color-grey-700);cursor:grab;display:flex}._sortable__handle--right_ttudd_155{position:absolute;right:.5rem}._sortable__sort-item__button-container_ttudd_93[data-touch=true]{gap:1px;justify-content:center}._sortable__sort-item__button-container_ttudd_93[data-touch=true] ._sortable__sort-item__handle--up_ttudd_119,._sortable__sort-item__button-container_ttudd_93[data-touch=true] ._sortable__sort-item__handle--down_ttudd_120{align-items:center;display:flex;justify-content:center}._sortable__visually-hidden_ttudd_174{border:0;clip:rect(0,0,0,0);clip-path:inset(50%);height:1px;margin:0 -1px -1px 0;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}
1
+ ._sortable__wrapper_v5kts_1{position:relative}._sortable__wrapper--scrollable_v5kts_5{border-bottom:1px solid var(--new-color-grey-300);border-top:1px solid var(--new-color-grey-300);margin-bottom:1rem;max-height:21rem;overflow-y:auto}._sortable__container_v5kts_13{--item-min-height: 3.75rem;counter-reset:container;display:flex;flex-direction:column;gap:1rem;list-style:none;margin:1rem 1rem 1rem 0;padding:0}._sortable__drop-target_v5kts_25{display:flex;gap:1rem;min-height:var(--item-min-height);position:relative}._sortable__drop-target_v5kts_25:before{align-items:center;content:counter(container);counter-increment:container;display:flex;opacity:1;position:relative;transition:opacity .25s}._sortable__drop-target--no-number_v5kts_42:before{content:none}._sortable__drop-target_v5kts_25:after{content:"";display:block;height:1px;left:0;position:absolute;width:100%;z-index:1}._sortable__drop-target_v5kts_25:last-child:after{display:inline}._sortable__sort-item_v5kts_60{align-items:center;border-radius:.5rem;display:flex;gap:1rem;min-height:var(--item-min-height);position:relative;width:100%;z-index:0}._sortable__sort-item--grey-200_v5kts_71{background-color:var(--new-color-grey-200)}._sortable__sort-item--white_v5kts_75{background-color:var(--new-color-uva-white)}._sortable__sort-item_v5kts_60:focus{z-index:2}._sortable__sort-item--ghost_v5kts_83{margin:0 1rem;opacity:.5;padding:.5rem 0;pointer-events:none;position:fixed;-webkit-user-drag:none;visibility:hidden;z-index:2}._sortable__sort-item__handle_v5kts_94{appearance:none;background:none;background-color:var(--new-color-uva-white);border:0;cursor:grab;height:2.625rem;width:2.625rem}._sortable__sort-item__button-container_v5kts_104{align-items:center;background-color:var(--new-color-grey-300);border-left:1px solid var(--new-color-grey-300);border-radius:0 .5rem .5rem 0;display:flex;flex-direction:column;inset:0 0 0 auto;margin-right:1px;overflow:hidden;position:absolute;width:2.625rem;z-index:20}._sortable__sort-item__button-container_v5kts_104[data-touch=false]{display:none}._sortable__sort-item__handle--icon_v5kts_123{align-items:center;display:flex;height:1rem;width:1rem}._sortable__sort-item__handle--up_v5kts_130,._sortable__sort-item__handle--down_v5kts_131{color:#000;display:none;height:100%;right:.5rem}._sortable__sort-item__handle--up_v5kts_130{transform:rotate(180deg)}._sortable__sort-item--dragging_v5kts_142 ._sortable__sort-item__handle_v5kts_94{cursor:grabbing}._sortable__sort-item__contents_v5kts_146{align-items:center;color:var(--new-color-uva-black);display:flex;gap:.5rem;padding:.5rem;width:100%}._sortable__sort-item__contents--handle-right_v5kts_155{padding-left:1rem;padding-right:2.5rem}._sortable__handle_v5kts_160{color:var(--new-color-grey-700);cursor:grab;display:flex}._sortable__handle--right_v5kts_166{position:absolute;right:.5rem}._sortable__sort-item__button-container_v5kts_104[data-touch=true]{gap:1px;justify-content:center}._sortable__sort-item__button-container_v5kts_104[data-touch=true] ._sortable__sort-item__handle--up_v5kts_130,._sortable__sort-item__button-container_v5kts_104[data-touch=true] ._sortable__sort-item__handle--down_v5kts_131{align-items:center;display:flex;justify-content:center}._sortable__visually-hidden_v5kts_185{border:0;clip:rect(0,0,0,0);clip-path:inset(50%);height:1px;margin:0 -1px -1px 0;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}
@@ -1 +1 @@
1
- :root{--color-active: var(--new-color-forest-700);--color-active-hover: var(--new-color-uva-white);--color-background-active: var(--new-color-forest-100);--color-background-active-hover: var(--new-color-forest-700);--color-background-draft: var(--new-color-sky-100);--color-background-draft-hover: var(--new-color-navy-600);--color-background-submitted: var(--new-color-orange-100);--color-background-submitted-hover: var(--new-color-orange-900);--color-border-active: var(--new-color-forest-700);--color-border-draft: var(--new-color-navy-600);--color-border-submitted: var(--new-color-orange-900);--color-draft: var(--new-color-navy-600);--color-draft-hover: var(--new-color-uva-white);--color-label: var(--new-color-uva-black);--color-submitted: var(--new-color-orange-900);--color-submitted-hover: var(--new-color-uva-white);--border-radius-var-indicator: .25rem}._var-indicator__container_1m025_29{align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid;border-radius:var(--border-radius-var-indicator);cursor:pointer;display:inline-flex;font-family:inherit;font-size:var(--font-size-default);font-weight:var(--semibold);gap:.375rem;height:2rem;justify-content:center;line-height:inherit;margin:0;padding:0 .75rem 0 .5rem;white-space:nowrap}._var-indicator__container--draft_1m025_48,._var-indicator__container--rejected_1m025_49{background-color:var(--color-background-draft);border-color:var(--color-border-draft);color:var(--color-draft)}._var-indicator__container--draft_1m025_48:hover,._var-indicator__container--rejected_1m025_49:hover{background-color:var(--color-background-draft-hover);color:var(--color-draft-hover)}._var-indicator__container--submitted_1m025_61{background-color:var(--color-background-submitted);border-color:var(--color-border-submitted);color:var(--color-submitted)}._var-indicator__container--submitted_1m025_61:hover{background-color:var(--color-background-submitted-hover);color:var(--color-submitted-hover)}._var-indicator__container--active_1m025_72{background-color:var(--color-background-active);border-color:var(--color-border-active);color:var(--color-active)}._var-indicator__container--active_1m025_72:hover{background-color:var(--color-background-active-hover);color:var(--color-active-hover)}._var-indicator__label_1m025_83{color:var(--color-label)}._var-indicator__container--submitted_1m025_61:hover ._var-indicator__label_1m025_83,._var-indicator__container--draft_1m025_48:hover ._var-indicator__label_1m025_83,._var-indicator__container--rejected_1m025_49:hover ._var-indicator__label_1m025_83,._var-indicator__container--active_1m025_72:hover ._var-indicator__label_1m025_83{color:var(--color-uva-white)}._var-indicator__step-container_1m025_94{align-items:center;display:inline flex;height:100%;justify-content:flex-start}._var-indicator__step-container_1m025_94 svg{margin:0 -.5rem}
1
+ :root{--color-active: var(--new-color-forest-700);--color-active-hover: var(--new-color-uva-white);--color-background-active: var(--new-color-forest-100);--color-background-active-hover: var(--new-color-forest-700);--color-background-draft: var(--new-color-sky-100);--color-background-draft-hover: var(--new-color-navy-600);--color-background-submitted: var(--new-color-orange-100);--color-background-submitted-hover: var(--new-color-orange-900);--color-border-active: var(--new-color-forest-700);--color-border-draft: var(--new-color-navy-600);--color-border-submitted: var(--new-color-orange-900);--color-draft: var(--new-color-navy-600);--color-draft-hover: var(--new-color-uva-white);--color-label: var(--new-color-uva-black);--color-submitted: var(--new-color-orange-900);--color-submitted-hover: var(--new-color-uva-white);--border-radius-var-indicator: .25rem}._var-indicator__container_1m025_29{align-items:center;appearance:none;border:1px solid;border-radius:var(--border-radius-var-indicator);cursor:pointer;display:inline-flex;font-family:inherit;font-size:var(--font-size-default);font-weight:var(--semibold);gap:.375rem;height:2rem;justify-content:center;line-height:inherit;margin:0;padding:0 .75rem 0 .5rem;white-space:nowrap}._var-indicator__container--draft_1m025_48,._var-indicator__container--rejected_1m025_49{background-color:var(--color-background-draft);border-color:var(--color-border-draft);color:var(--color-draft)}._var-indicator__container--draft_1m025_48:hover,._var-indicator__container--rejected_1m025_49:hover{background-color:var(--color-background-draft-hover);color:var(--color-draft-hover)}._var-indicator__container--submitted_1m025_61{background-color:var(--color-background-submitted);border-color:var(--color-border-submitted);color:var(--color-submitted)}._var-indicator__container--submitted_1m025_61:hover{background-color:var(--color-background-submitted-hover);color:var(--color-submitted-hover)}._var-indicator__container--active_1m025_72{background-color:var(--color-background-active);border-color:var(--color-border-active);color:var(--color-active)}._var-indicator__container--active_1m025_72:hover{background-color:var(--color-background-active-hover);color:var(--color-active-hover)}._var-indicator__label_1m025_83{color:var(--color-label)}._var-indicator__container--submitted_1m025_61:hover ._var-indicator__label_1m025_83,._var-indicator__container--draft_1m025_48:hover ._var-indicator__label_1m025_83,._var-indicator__container--rejected_1m025_49:hover ._var-indicator__label_1m025_83,._var-indicator__container--active_1m025_72:hover ._var-indicator__label_1m025_83{color:var(--color-uva-white)}._var-indicator__step-container_1m025_94{align-items:center;display:inline flex;height:100%;justify-content:flex-start}._var-indicator__step-container_1m025_94 svg{margin:0 -.5rem}
@@ -1,7 +1,7 @@
1
1
  import { jsx as o } from "react/jsx-runtime";
2
- import "../../index-DV47hRzi.js";
3
- import { r as n, s as a } from "../../react.esm-CFMwGdo5.js";
4
- import { u as e } from "../../index-PaHiqSUg.js";
2
+ import "../../index-Br0QepD6.js";
3
+ import { r as n, s as a } from "../../react.esm-BKjCIfbB.js";
4
+ import { u as e } from "../../index-Ds1dMTvJ.js";
5
5
  import { Accordion as i } from "./Accordion.js";
6
6
  describe("Accordion", () => {
7
7
  it("should render", () => {
@@ -1,7 +1,7 @@
1
1
  import { jsx as n } from "react/jsx-runtime";
2
- import "../../index-DV47hRzi.js";
3
- import { r as c, s as e, f as s, w as d } from "../../react.esm-CFMwGdo5.js";
4
- import { u as r } from "../../index-PaHiqSUg.js";
2
+ import "../../index-Br0QepD6.js";
3
+ import { r as c, s as e, f as s, w as d } from "../../react.esm-BKjCIfbB.js";
4
+ import { u as r } from "../../index-Ds1dMTvJ.js";
5
5
  import { AccordionCard as a } from "./AccordionCard.js";
6
6
  describe("AccordionCard", () => {
7
7
  it("should render", () => {
@@ -1,7 +1,7 @@
1
1
  import { jsx as i } from "react/jsx-runtime";
2
- import "../../index-DV47hRzi.js";
3
- import { r as n, s as t, w as a } from "../../react.esm-CFMwGdo5.js";
4
- import { u as l } from "../../index-PaHiqSUg.js";
2
+ import "../../index-Br0QepD6.js";
3
+ import { r as n, s as t, w as a } from "../../react.esm-BKjCIfbB.js";
4
+ import { u as l } from "../../index-Ds1dMTvJ.js";
5
5
  import { ActionList as o } from "./ActionList.js";
6
6
  const T = jest.fn(), c = [
7
7
  /* @__PURE__ */ i("button", { type: "button", onClick: T, children: "Test Action 1" }, "1"),
@@ -1,6 +1,6 @@
1
1
  import { jsx as e } from "react/jsx-runtime";
2
- import "../../index-DV47hRzi.js";
3
- import { r, s as t } from "../../react.esm-CFMwGdo5.js";
2
+ import "../../index-Br0QepD6.js";
3
+ import { r, s as t } from "../../react.esm-BKjCIfbB.js";
4
4
  import { AppStatusBar as s } from "./AppStatusBar.js";
5
5
  describe("AppStatusBar", () => {
6
6
  it("should render", () => {
@@ -1,6 +1,6 @@
1
1
  import { jsx as e } from "react/jsx-runtime";
2
- import "../../index-DV47hRzi.js";
3
- import { r as t, s as r } from "../../react.esm-CFMwGdo5.js";
2
+ import "../../index-Br0QepD6.js";
3
+ import { r as t, s as r } from "../../react.esm-BKjCIfbB.js";
4
4
  import { Attention as n } from "./Attention.js";
5
5
  describe("Attention", () => {
6
6
  it("should render (variant primary)", () => {
@@ -1,6 +1,6 @@
1
1
  import { jsx as r } from "react/jsx-runtime";
2
- import "../../index-DV47hRzi.js";
3
- import { r as e, s as o } from "../../react.esm-CFMwGdo5.js";
2
+ import "../../index-Br0QepD6.js";
3
+ import { r as e, s as o } from "../../react.esm-BKjCIfbB.js";
4
4
  import { Backdrop as t } from "./Backdrop.js";
5
5
  describe("Backdrop", () => {
6
6
  it("should render", () => {
@@ -1,5 +1,5 @@
1
1
  import { jsx as t, jsxs as a, Fragment as s } from "react/jsx-runtime";
2
- import { W as l } from "../../index-Di9WPZUe.js";
2
+ import { l } from "../../index-C2E9FY6V.js";
3
3
  import { Button as n } from "./Button.js";
4
4
  const c = "<Button variant={variant} onClick={onClictFunction}>{children}</Button>", h = {
5
5
  title: "Atoms/Buttons/Button",
@@ -1,6 +1,6 @@
1
1
  import { jsx as e } from "react/jsx-runtime";
2
- import "../../index-DV47hRzi.js";
3
- import { r as n, s as t, f as c } from "../../react.esm-CFMwGdo5.js";
2
+ import "../../index-Br0QepD6.js";
3
+ import { r as n, s as t, f as c } from "../../react.esm-BKjCIfbB.js";
4
4
  import { Button as o } from "./Button.js";
5
5
  const s = jest.fn();
6
6
  describe("Button", () => {
@@ -1,5 +1,5 @@
1
1
  import { jsx as t, jsxs as a, Fragment as l } from "react/jsx-runtime";
2
- import { W as s } from "../../index-Di9WPZUe.js";
2
+ import { l as s } from "../../index-C2E9FY6V.js";
3
3
  import { BrowserRouter as c } from "react-router";
4
4
  import { LinkButton as e } from "./LinkButton.js";
5
5
  const d = `
@@ -1,6 +1,6 @@
1
1
  import { jsxs as s, jsx as e } from "react/jsx-runtime";
2
- import "../../index-DV47hRzi.js";
3
- import { r as n, s as t, f as c } from "../../react.esm-CFMwGdo5.js";
2
+ import "../../index-Br0QepD6.js";
3
+ import { r as n, s as t, f as c } from "../../react.esm-BKjCIfbB.js";
4
4
  import { BrowserRouter as u, Routes as a, Route as d } from "react-router";
5
5
  import { LinkButton as o } from "./LinkButton.js";
6
6
  const r = ({ children: i }) => /* @__PURE__ */ s(u, { children: [
@@ -1,10 +1,10 @@
1
- import { jsx as e, jsxs as s, Fragment as l } from "react/jsx-runtime";
2
- import { W as c } from "../../index-Di9WPZUe.js";
1
+ import { jsx as e, jsxs as l, Fragment as s } from "react/jsx-runtime";
2
+ import { l as c } from "../../index-C2E9FY6V.js";
3
3
  import { MenuButton as n } from "./MenuButton.js";
4
4
  const d = `
5
5
  // Has all LabelHTMLAttributes props available except "className" and "style"
6
6
  <MenuButton variant={variant} onClick={onClickFunction} onKeyDown={onKeyDown} onKeyUp={onKeyUp} buttonRef={buttonRef}>{children}</MenuButton>
7
- `, h = {
7
+ `, b = {
8
8
  title: "Atoms/Buttons/MenuButton",
9
9
  component: n,
10
10
  argTypes: {
@@ -42,7 +42,7 @@ t.argTypes = {
42
42
  const i = r.bind({});
43
43
  i.args = {
44
44
  ...o,
45
- children: /* @__PURE__ */ s(l, { children: [
45
+ children: /* @__PURE__ */ l(s, { children: [
46
46
  /* @__PURE__ */ e("div", { children: "Child 1" }),
47
47
  /* @__PURE__ */ e("div", { children: "Child 2" })
48
48
  ] })
@@ -60,6 +60,6 @@ export {
60
60
  p as MenuButtonExample,
61
61
  t as WithIconChildren,
62
62
  i as WithMultipleChildren,
63
- h as default
63
+ b as default
64
64
  };
65
65
  //# sourceMappingURL=MenuButton.stories.js.map
@@ -1,6 +1,6 @@
1
1
  import { jsx as o } from "react/jsx-runtime";
2
- import "../../index-DV47hRzi.js";
3
- import { r as u, s as e, f as c } from "../../react.esm-CFMwGdo5.js";
2
+ import "../../index-Br0QepD6.js";
3
+ import { r as u, s as e, f as c } from "../../react.esm-BKjCIfbB.js";
4
4
  import { createRef as s } from "react";
5
5
  import { MenuButton as r } from "./MenuButton.js";
6
6
  const n = jest.fn();
@@ -1,6 +1,6 @@
1
1
  import { jsx as e } from "react/jsx-runtime";
2
- import "../../index-DV47hRzi.js";
3
- import { r, s as d } from "../../react.esm-CFMwGdo5.js";
2
+ import "../../index-Br0QepD6.js";
3
+ import { r, s as d } from "../../react.esm-BKjCIfbB.js";
4
4
  import { Card as o } from "./Card.js";
5
5
  describe("Card", () => {
6
6
  it("should render", () => {
@@ -1,5 +1,5 @@
1
1
  import { jsxs as g, jsx as o } from "react/jsx-runtime";
2
- import { W as e } from "../../index-Di9WPZUe.js";
2
+ import { l as e } from "../../index-C2E9FY6V.js";
3
3
  import { Checkbox as n } from "./Checkbox.js";
4
4
  import { FormField as t } from "../FormField/FormField.js";
5
5
  import { Label as i } from "../Label/Label.js";
@@ -1,7 +1,7 @@
1
1
  import { jsx as c } from "react/jsx-runtime";
2
- import "../../index-DV47hRzi.js";
3
- import { r as o, s as t } from "../../react.esm-CFMwGdo5.js";
4
- import { u as s } from "../../index-PaHiqSUg.js";
2
+ import "../../index-Br0QepD6.js";
3
+ import { r as o, s as t } from "../../react.esm-BKjCIfbB.js";
4
+ import { u as s } from "../../index-Ds1dMTvJ.js";
5
5
  import { Checkbox as r } from "./Checkbox.js";
6
6
  describe("Checkbox", () => {
7
7
  it("should render", () => {
@@ -1,5 +1,5 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
- import { W as l } from "../../index-Di9WPZUe.js";
2
+ import { l } from "../../index-C2E9FY6V.js";
3
3
  import { CheckboxButtonBar as e } from "./CheckboxButtonBar.js";
4
4
  const r = "<CheckboxButtonBar checkboxes={} defaultValues={} label={} labelPosition={} required={} notValidatedText={} disableGroup={} onSetValues={} />", d = {
5
5
  title: "Molecules/CheckboxButtonBar",
@@ -1,6 +1,6 @@
1
1
  import { jsx as l } from "react/jsx-runtime";
2
- import "../../index-DV47hRzi.js";
3
- import { r as c, s as t } from "../../react.esm-CFMwGdo5.js";
2
+ import "../../index-Br0QepD6.js";
3
+ import { r as c, s as t } from "../../react.esm-BKjCIfbB.js";
4
4
  import { CheckboxButtonBar as a } from "./CheckboxButtonBar.js";
5
5
  const n = jest.fn(), d = [
6
6
  {
@@ -1,33 +1,33 @@
1
- import { jsxs as u, jsx as i } from "react/jsx-runtime";
1
+ import { jsxs as l, jsx as i } from "react/jsx-runtime";
2
2
  import { useRef as G, useState as S, useEffect as E, createRef as q } from "react";
3
3
  import { c as j } from "../../clsx-OuTLNxxd.js";
4
4
  import { Icon as I } from "../Icon/Icon.js";
5
5
  import { Button as L } from "../Buttons/Button.js";
6
6
  import "../Buttons/LinkButton.js";
7
7
  import "@react-aria/button";
8
- import { Checkbox as A } from "../Checkbox/Checkbox.js";
9
- import { Label as C } from "../Label/Label.js";
8
+ import { Checkbox as B } from "../Checkbox/Checkbox.js";
9
+ import { Label as A } from "../Label/Label.js";
10
10
  import "@react-aria/dialog";
11
11
  import "@react-aria/focus";
12
12
  import "@react-aria/overlays";
13
13
  import "../OverlayCloseButton/OverlayCloseButton.js";
14
- import { FormField as B } from "../FormField/FormField.js";
14
+ import { FormField as C } from "../FormField/FormField.js";
15
15
  import "../GridRow/GridRow.js";
16
16
  import "../IconButton/IconButton.js";
17
17
  import "../Input/Input.js";
18
18
  import "../InputField/InputField.js";
19
19
  import "react-router";
20
- import "../../TablePlugin-NmJsn2fm.js";
20
+ import "../../TablePlugin-Dmy98Epb.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";
24
- import "../../index-DllfJcv4.js";
24
+ import "../../index-nrPtQ1dv.js";
25
25
  import "../SelectListbox/SelectListbox.js";
26
26
  import "../SelectListbox/SelectProvider.js";
27
27
  import "../Sortable/components/SortableItem.js";
28
- import "../../SortableProvider-CwX1lFMa.js";
28
+ import "../../SortableProvider-C2T7b-pm.js";
29
29
  import { useResponsive as N } from "../hooks/useResponsive.js";
30
- import '../../assets/CheckboxTree.css';const s = {
30
+ import '../../assets/CheckboxTree.css';const a = {
31
31
  "checkbox-tree__header": "_checkbox-tree__header_l338d_1",
32
32
  "checkbox-tree__branch": "_checkbox-tree__branch_l338d_8",
33
33
  "checkbox-tree__branch--icon": "_checkbox-tree__branch--icon_l338d_21",
@@ -43,32 +43,31 @@ import '../../assets/CheckboxTree.css';const s = {
43
43
  noLabelFrontWeight: p = !1,
44
44
  onChange: b
45
45
  }) => {
46
- const n = G({}), [m, x] = S([]), { lessThan: h } = N(), R = (r, e) => {
46
+ const c = G({}), [x, m] = S([]), { lessThan: h } = N(), R = (r, e) => {
47
47
  if (r.length !== e.length) return !1;
48
- const t = (o) => o.reduce((_, O) => (_[O] = (_[O] || 0) + 1, _), {}), c = t(r), a = t(e);
49
- return !Object.keys(c).some((o) => c[o] !== a[o]);
50
- }, k = (r) => (n.current[r] || (n.current[r] = q()), n.current[r]), v = () => {
48
+ const t = (o) => o.reduce((_, O) => (_[O] = (_[O] || 0) + 1, _), {}), n = t(r), s = t(e);
49
+ return !Object.keys(n).some((o) => n[o] !== s[o]);
50
+ }, k = (r) => (c.current[r] || (c.current[r] = q()), c.current[r]), v = () => {
51
51
  const r = [];
52
- Object.entries(n.current).forEach(([e]) => {
53
- const t = n.current[e].current;
52
+ Object.entries(c.current).forEach(([e]) => {
53
+ const t = c.current[e].current;
54
54
  t && t.name.indexOf("Group") === -1 && t.checked && r.push(t.value);
55
- }), x(r), b && b(r);
56
- }, l = (r) => {
55
+ }), m(r), b && b(r);
56
+ }, u = (r) => {
57
57
  if (r === "") return;
58
58
  const e = [];
59
- Object.entries(n.current).forEach(([a]) => {
60
- const o = n.current[a].current;
61
- o && (o == null ? void 0 : o.getAttribute("data-groupname")) === r && e.push(o.checked);
59
+ Object.entries(c.current).forEach(([s]) => {
60
+ const o = c.current[s].current;
61
+ o && o?.getAttribute("data-groupname") === r && e.push(o.checked);
62
62
  });
63
- const t = e.every(Boolean), c = e.some(Boolean);
64
- n.current[r].current && (n.current[r].current.checked = t, n.current[r].current.indeterminate = !t && t !== c, n.current[r].current.checked = t && t === c);
63
+ const t = e.every(Boolean), n = e.some(Boolean);
64
+ c.current[r].current && (c.current[r].current.checked = t, c.current[r].current.indeterminate = !t && t !== n, c.current[r].current.checked = t && t === n);
65
65
  }, g = (r, e) => {
66
- var c, a;
67
- const t = e == null ? void 0 : e.querySelector("[data-ul]");
68
- r.childNodes[0].classList.toggle(s["checkbox-tree__branch--icon--expanded"]), (a = e == null ? void 0 : e.closest("[data-li]")) == null || a.setAttribute(
66
+ const t = e?.querySelector("[data-ul]");
67
+ r.childNodes[0].classList.toggle(a["checkbox-tree__branch--icon--expanded"]), e?.closest("[data-li]")?.setAttribute(
69
68
  "aria-expanded",
70
- ((c = e == null ? void 0 : e.closest("[data-li]")) == null ? void 0 : c.getAttribute("aria-expanded")) === "false" ? "true" : "false"
71
- ), t && t.classList.toggle(s["checkbox-tree__leaves--expanded"]);
69
+ e?.closest("[data-li]")?.getAttribute("aria-expanded") === "false" ? "true" : "false"
70
+ ), t && t.classList.toggle(a["checkbox-tree__leaves--expanded"]);
72
71
  }, $ = (r) => {
73
72
  const e = r.target;
74
73
  if (!(e.type !== "checkbox" && e.type !== "button")) {
@@ -78,83 +77,83 @@ import '../../assets/CheckboxTree.css';const s = {
78
77
  }
79
78
  if (e.name.indexOf("Group") !== -1) {
80
79
  const t = e.name;
81
- Object.entries(n.current).forEach(([c]) => {
82
- if (c.indexOf(`${t}_`) !== -1) {
83
- const a = n.current[c].current, o = n.current[t].current;
84
- if (!a || !o) return;
85
- a.checked = !!o.checked;
80
+ Object.entries(c.current).forEach(([n]) => {
81
+ if (n.indexOf(`${t}_`) !== -1) {
82
+ const s = c.current[n].current, o = c.current[t].current;
83
+ if (!s || !o) return;
84
+ s.checked = !!o.checked;
86
85
  }
87
- }), l(t), v();
86
+ }), u(t), v();
88
87
  return;
89
88
  }
90
- l(e.getAttribute("data-groupname") || ""), v();
89
+ u(e.getAttribute("data-groupname") || ""), v();
91
90
  }
92
91
  }, y = (r) => {
93
92
  const e = r.target, t = e.closest("[data-li]");
94
93
  g(e, t);
95
94
  };
96
95
  return E(() => {
97
- d && !R(d, m) && Object.entries(n.current).forEach(([r]) => {
98
- const e = n.current[r].current;
99
- e && (d != null && d.includes(e.value) ? e.checked = !0 : e.checked = !1, e.name.indexOf("Group") !== -1 && x(d || []));
96
+ d && !R(d, x) && Object.entries(c.current).forEach(([r]) => {
97
+ const e = c.current[r].current;
98
+ e && (d?.includes(e.value) ? e.checked = !0 : e.checked = !1, e.name.indexOf("Group") !== -1 && m(d || []));
100
99
  });
101
100
  }, [d]), E(() => {
102
- Object.entries(n.current).forEach(([r]) => {
103
- const e = n.current[r].current;
104
- e && e.name.indexOf("Group") !== -1 && l(e.name);
101
+ Object.entries(c.current).forEach(([r]) => {
102
+ const e = c.current[r].current;
103
+ e && e.name.indexOf("Group") !== -1 && u(e.name);
105
104
  });
106
- }, [m]), /* @__PURE__ */ u("div", { children: [
107
- f && /* @__PURE__ */ i("span", { className: s["checkbox-tree__header"], children: f }),
108
- /* @__PURE__ */ i("div", { onClick: $, "data-ul": !0, role: "tree", tabIndex: 0, children: F.map(({ itemName: r, children: e }, t) => /* @__PURE__ */ u(
105
+ }, [x]), /* @__PURE__ */ l("div", { children: [
106
+ f && /* @__PURE__ */ i("span", { className: a["checkbox-tree__header"], children: f }),
107
+ /* @__PURE__ */ i("div", { onClick: $, "data-ul": !0, role: "tree", tabIndex: 0, children: F.map(({ itemName: r, children: e }, t) => /* @__PURE__ */ l(
109
108
  "div",
110
109
  {
111
- className: s["checkbox-tree__branch"],
110
+ className: a["checkbox-tree__branch"],
112
111
  "data-li": !0,
113
112
  "aria-expanded": h.md ? "false" : "true",
114
113
  children: [
115
- /* @__PURE__ */ u(B, { inline: !0, className: s["checkbox-tree__branch--formfield"], children: [
114
+ /* @__PURE__ */ l(C, { inline: !0, className: a["checkbox-tree__branch--formfield"], children: [
116
115
  /* @__PURE__ */ i(L, { variant: "blank", onClick: y, children: /* @__PURE__ */ i(
117
116
  I,
118
117
  {
119
118
  name: "CheveronRight",
120
119
  size: 16,
121
- className: j(s["checkbox-tree__branch--icon"], {
122
- [s["checkbox-tree__branch--icon--expanded"]]: !h.md
120
+ className: j(a["checkbox-tree__branch--icon"], {
121
+ [a["checkbox-tree__branch--icon--expanded"]]: !h.md
123
122
  })
124
123
  }
125
124
  ) }),
126
125
  /* @__PURE__ */ i(
127
- A,
126
+ B,
128
127
  {
129
128
  id: r,
130
129
  name: `Group${t}`,
131
- disabled: e.every((c) => c.disabled),
130
+ disabled: e.every((n) => n.disabled),
132
131
  ref: k(`Group${t}`)
133
132
  }
134
133
  ),
135
- /* @__PURE__ */ i(C, { htmlFor: r, noFontWeight: p, children: r })
134
+ /* @__PURE__ */ i(A, { htmlFor: r, noFontWeight: p, children: r })
136
135
  ] }),
137
136
  /* @__PURE__ */ i(
138
137
  "div",
139
138
  {
140
- className: j(s["checkbox-tree__leaves"], {
141
- [s["checkbox-tree__leaves--expanded"]]: !h.md
139
+ className: j(a["checkbox-tree__leaves"], {
140
+ [a["checkbox-tree__leaves--expanded"]]: !h.md
142
141
  }),
143
142
  "data-ul": !0,
144
- children: e.map(({ itemName: c, itemValue: a, disabled: o }) => /* @__PURE__ */ i("div", { className: s["checkbox-tree__leaf"], "data-li": !0, children: /* @__PURE__ */ u(B, { inline: !0, className: s["checkbox-tree__branch--formfield"], children: [
143
+ children: e.map(({ itemName: n, itemValue: s, disabled: o }) => /* @__PURE__ */ i("div", { className: a["checkbox-tree__leaf"], "data-li": !0, children: /* @__PURE__ */ l(C, { inline: !0, className: a["checkbox-tree__branch--formfield"], children: [
145
144
  /* @__PURE__ */ i(
146
- A,
145
+ B,
147
146
  {
148
- id: c,
149
- name: c,
150
- value: a,
147
+ id: n,
148
+ name: n,
149
+ value: s,
151
150
  disabled: o,
152
151
  "data-groupname": `Group${t}`,
153
- ref: k(`Group${t}_${c}`)
152
+ ref: k(`Group${t}_${n}`)
154
153
  }
155
154
  ),
156
- /* @__PURE__ */ i(C, { htmlFor: c, noFontWeight: p, children: c })
157
- ] }) }, c))
155
+ /* @__PURE__ */ i(A, { htmlFor: n, noFontWeight: p, children: n })
156
+ ] }) }, n))
158
157
  }
159
158
  )
160
159
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxTree.js","sources":["../../../src/components/CheckboxTree/CheckboxTree.tsx"],"sourcesContent":["import { createRef, useEffect, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\n\nimport type { MouseEventHandler, RefObject } from 'react';\n\nimport styles from './CheckboxTree.module.css';\n\nimport { Button, Checkbox, FormField, Icon, Label } from 'components';\nimport { useResponsive } from 'components/hooks/useResponsive';\n\n// TODO: Currently the checkbox tree shows odd behavior when a disabled checkbox is checked.\n// When deselecting the parent checkbox, the disabled checkbox is deselected, and will never\n// be checked again. We'll leave this for now, until we run into a real world\n// example where this is necessary.\n\nexport type CheckboxLeaf = {\n itemName: string;\n itemValue: string;\n disabled?: boolean;\n};\n\nexport type CheckboxBranch = {\n itemName: string;\n children: CheckboxLeaf[];\n};\n\nexport interface CheckboxTreeProps {\n /** The title of the component. */\n title?: string;\n /** Array of checkbox groups with a label and array of children (itemName, itemValue and disabled boolean). */\n checkboxTree: CheckboxBranch[];\n /** Array of selected values. */\n selectedValues?: string[];\n /** `true` if the font-weight needs to be unset; otherwise, `false`. The default is `false`. */\n noLabelFrontWeight?: boolean;\n /** Returns array of selected values. */\n onChange?: (value: string[]) => void;\n}\n\n/** Represents a component to render a tree of checkboxes. */\nexport const CheckboxTree = ({\n title,\n checkboxTree,\n selectedValues,\n noLabelFrontWeight = false,\n onChange,\n}: CheckboxTreeProps) => {\n const checkboxRefs = useRef<Record<string, RefObject<HTMLInputElement | null>>>({});\n const [values, setValues] = useState<string[]>([]);\n const { lessThan } = useResponsive();\n\n const valuesAreEqual = (values1: string[], values2: string[]): boolean => {\n if (values1.length !== values2.length) return false;\n\n const countElements = (list: string[]) =>\n list.reduce((acc: Record<string, number>, val) => {\n acc[val] = (acc[val] || 0) + 1;\n return acc;\n }, {});\n\n const numberOfValues1 = countElements(values1);\n const numberOfValues2 = countElements(values2);\n\n return !Object.keys(numberOfValues1).some((key) => numberOfValues1[key] !== numberOfValues2[key]);\n };\n\n const createRefForKey = (key: string) => {\n if (!checkboxRefs.current[key]) {\n checkboxRefs.current[key] = createRef();\n }\n return checkboxRefs.current[key];\n };\n\n const setValue = () => {\n const newValues: string[] = [];\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (chkBox && chkBox.name.indexOf('Group') === -1 && chkBox.checked) {\n newValues.push(chkBox.value);\n }\n });\n setValues(newValues);\n if (onChange) onChange(newValues);\n };\n\n const setCheckboxesState = (checkGroupName: string) => {\n if (checkGroupName === '') return;\n\n const groupStatus: boolean[] = [];\n\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (!chkBox) return;\n if (chkBox?.getAttribute('data-groupname') === checkGroupName) {\n groupStatus.push(chkBox.checked);\n }\n });\n\n const every = groupStatus.every(Boolean);\n const some = groupStatus.some(Boolean);\n\n if (checkboxRefs.current[checkGroupName].current) {\n checkboxRefs.current[checkGroupName].current.checked = every;\n checkboxRefs.current[checkGroupName].current.indeterminate = !every && every !== some;\n checkboxRefs.current[checkGroupName].current.checked = every && every === some;\n }\n };\n\n const setExpandedAttributes = (trigger: HTMLButtonElement, container: Element | null) => {\n const children = container?.querySelector('[data-ul]');\n\n (trigger.childNodes[0] as Element).classList.toggle(styles['checkbox-tree__branch--icon--expanded']);\n container\n ?.closest('[data-li]')\n ?.setAttribute(\n 'aria-expanded',\n container?.closest('[data-li]')?.getAttribute('aria-expanded') === 'false' ? 'true' : 'false'\n );\n\n if (children) {\n children.classList.toggle(styles['checkbox-tree__leaves--expanded']);\n }\n };\n\n const handleChange: MouseEventHandler<HTMLDivElement> = (event) => {\n const check = event.target as HTMLInputElement;\n\n if (check.type !== 'checkbox' && check.type !== 'button') return;\n\n if (\n lessThan.md &&\n check.name.indexOf('Group') !== -1 &&\n check.parentNode &&\n (check.parentNode.parentNode as HTMLElement).getAttribute('aria-expanded') === 'false'\n ) {\n event.preventDefault();\n setExpandedAttributes(check.parentNode as HTMLButtonElement, check.parentNode.parentNode as HTMLElement);\n return;\n }\n\n if (check.name.indexOf('Group') !== -1) {\n const childPrefix = check.name;\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n if (key.indexOf(`${childPrefix}_`) !== -1) {\n const chkBox = checkboxRefs.current[key].current;\n const parentCheckbox = checkboxRefs.current[childPrefix].current;\n if (!chkBox || !parentCheckbox) return;\n chkBox.checked = parentCheckbox.checked ? true : false;\n }\n });\n setCheckboxesState(childPrefix);\n setValue();\n return;\n }\n setCheckboxesState(check.getAttribute('data-groupname') || '');\n setValue();\n };\n\n const handleExpanded: MouseEventHandler<HTMLButtonElement> = (event) => {\n const target = event.target as HTMLButtonElement;\n const parent = target.closest('[data-li]');\n setExpandedAttributes(target, parent);\n };\n\n useEffect(() => {\n if (selectedValues && !valuesAreEqual(selectedValues, values)) {\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (!chkBox) return;\n if (selectedValues?.includes(chkBox.value)) {\n chkBox.checked = true;\n } else {\n chkBox.checked = false;\n }\n if (chkBox.name.indexOf('Group') !== -1) {\n setValues(selectedValues || []);\n }\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedValues]);\n\n useEffect(() => {\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (!chkBox) return;\n if (chkBox.name.indexOf('Group') !== -1) {\n setCheckboxesState(chkBox.name);\n }\n });\n }, [values]);\n\n return (\n <div>\n {title && <span className={styles['checkbox-tree__header']}>{title}</span>}\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */}\n <div onClick={handleChange} data-ul role=\"tree\" tabIndex={0}>\n {checkboxTree.map(({ itemName, children }, index) => (\n <div\n key={itemName}\n className={styles['checkbox-tree__branch']}\n data-li\n aria-expanded={lessThan.md ? 'false' : 'true'}\n >\n <FormField inline className={styles['checkbox-tree__branch--formfield']}>\n <Button variant=\"blank\" onClick={handleExpanded}>\n <Icon\n name=\"CheveronRight\"\n size={16}\n className={clsx(styles['checkbox-tree__branch--icon'], {\n [styles['checkbox-tree__branch--icon--expanded']]: !lessThan.md,\n })}\n />\n </Button>\n <Checkbox\n id={itemName}\n name={`Group${index}`}\n disabled={children.every((checkbox) => checkbox.disabled)}\n ref={createRefForKey(`Group${index}`)}\n />\n <Label htmlFor={itemName} noFontWeight={noLabelFrontWeight}>\n {itemName}\n </Label>\n </FormField>\n <div\n className={clsx(styles['checkbox-tree__leaves'], {\n [styles['checkbox-tree__leaves--expanded']]: !lessThan.md,\n })}\n data-ul\n >\n {children.map(({ itemName, itemValue, disabled }) => (\n <div key={itemName} className={styles['checkbox-tree__leaf']} data-li>\n <FormField inline className={styles['checkbox-tree__branch--formfield']}>\n <Checkbox\n id={itemName}\n name={itemName}\n value={itemValue}\n disabled={disabled}\n data-groupname={`Group${index}`}\n ref={createRefForKey(`Group${index}_${itemName}`)}\n />\n <Label htmlFor={itemName} noFontWeight={noLabelFrontWeight}>\n {itemName}\n </Label>\n </FormField>\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n};\n"],"names":["CheckboxTree","title","checkboxTree","selectedValues","noLabelFrontWeight","onChange","checkboxRefs","useRef","values","setValues","useState","lessThan","useResponsive","valuesAreEqual","values1","values2","countElements","list","acc","val","numberOfValues1","numberOfValues2","key","createRefForKey","createRef","setValue","newValues","chkBox","setCheckboxesState","checkGroupName","groupStatus","every","some","setExpandedAttributes","trigger","container","children","styles","_b","_a","handleChange","event","check","childPrefix","parentCheckbox","handleExpanded","target","parent","useEffect","itemName","index","jsxs","FormField","jsx","Button","Icon","clsx","Checkbox","checkbox","Label","itemValue","disabled"],"mappings":"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"}
1
+ {"version":3,"file":"CheckboxTree.js","sources":["../../../src/components/CheckboxTree/CheckboxTree.tsx"],"sourcesContent":["import { createRef, useEffect, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\n\nimport type { MouseEventHandler, RefObject } from 'react';\n\nimport styles from './CheckboxTree.module.css';\n\nimport { Button, Checkbox, FormField, Icon, Label } from 'components';\nimport { useResponsive } from 'components/hooks/useResponsive';\n\n// TODO: Currently the checkbox tree shows odd behavior when a disabled checkbox is checked.\n// When deselecting the parent checkbox, the disabled checkbox is deselected, and will never\n// be checked again. We'll leave this for now, until we run into a real world\n// example where this is necessary.\n\nexport type CheckboxLeaf = {\n itemName: string;\n itemValue: string;\n disabled?: boolean;\n};\n\nexport type CheckboxBranch = {\n itemName: string;\n children: CheckboxLeaf[];\n};\n\nexport interface CheckboxTreeProps {\n /** The title of the component. */\n title?: string;\n /** Array of checkbox groups with a label and array of children (itemName, itemValue and disabled boolean). */\n checkboxTree: CheckboxBranch[];\n /** Array of selected values. */\n selectedValues?: string[];\n /** `true` if the font-weight needs to be unset; otherwise, `false`. The default is `false`. */\n noLabelFrontWeight?: boolean;\n /** Returns array of selected values. */\n onChange?: (value: string[]) => void;\n}\n\n/** Represents a component to render a tree of checkboxes. */\nexport const CheckboxTree = ({\n title,\n checkboxTree,\n selectedValues,\n noLabelFrontWeight = false,\n onChange,\n}: CheckboxTreeProps) => {\n const checkboxRefs = useRef<Record<string, RefObject<HTMLInputElement | null>>>({});\n const [values, setValues] = useState<string[]>([]);\n const { lessThan } = useResponsive();\n\n const valuesAreEqual = (values1: string[], values2: string[]): boolean => {\n if (values1.length !== values2.length) return false;\n\n const countElements = (list: string[]) =>\n list.reduce((acc: Record<string, number>, val) => {\n acc[val] = (acc[val] || 0) + 1;\n return acc;\n }, {});\n\n const numberOfValues1 = countElements(values1);\n const numberOfValues2 = countElements(values2);\n\n return !Object.keys(numberOfValues1).some((key) => numberOfValues1[key] !== numberOfValues2[key]);\n };\n\n const createRefForKey = (key: string) => {\n if (!checkboxRefs.current[key]) {\n checkboxRefs.current[key] = createRef();\n }\n return checkboxRefs.current[key];\n };\n\n const setValue = () => {\n const newValues: string[] = [];\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (chkBox && chkBox.name.indexOf('Group') === -1 && chkBox.checked) {\n newValues.push(chkBox.value);\n }\n });\n setValues(newValues);\n if (onChange) onChange(newValues);\n };\n\n const setCheckboxesState = (checkGroupName: string) => {\n if (checkGroupName === '') return;\n\n const groupStatus: boolean[] = [];\n\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (!chkBox) return;\n if (chkBox?.getAttribute('data-groupname') === checkGroupName) {\n groupStatus.push(chkBox.checked);\n }\n });\n\n const every = groupStatus.every(Boolean);\n const some = groupStatus.some(Boolean);\n\n if (checkboxRefs.current[checkGroupName].current) {\n checkboxRefs.current[checkGroupName].current.checked = every;\n checkboxRefs.current[checkGroupName].current.indeterminate = !every && every !== some;\n checkboxRefs.current[checkGroupName].current.checked = every && every === some;\n }\n };\n\n const setExpandedAttributes = (trigger: HTMLButtonElement, container: Element | null) => {\n const children = container?.querySelector('[data-ul]');\n\n (trigger.childNodes[0] as Element).classList.toggle(styles['checkbox-tree__branch--icon--expanded']);\n container\n ?.closest('[data-li]')\n ?.setAttribute(\n 'aria-expanded',\n container?.closest('[data-li]')?.getAttribute('aria-expanded') === 'false' ? 'true' : 'false'\n );\n\n if (children) {\n children.classList.toggle(styles['checkbox-tree__leaves--expanded']);\n }\n };\n\n const handleChange: MouseEventHandler<HTMLDivElement> = (event) => {\n const check = event.target as HTMLInputElement;\n\n if (check.type !== 'checkbox' && check.type !== 'button') return;\n\n if (\n lessThan.md &&\n check.name.indexOf('Group') !== -1 &&\n check.parentNode &&\n (check.parentNode.parentNode as HTMLElement).getAttribute('aria-expanded') === 'false'\n ) {\n event.preventDefault();\n setExpandedAttributes(check.parentNode as HTMLButtonElement, check.parentNode.parentNode as HTMLElement);\n return;\n }\n\n if (check.name.indexOf('Group') !== -1) {\n const childPrefix = check.name;\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n if (key.indexOf(`${childPrefix}_`) !== -1) {\n const chkBox = checkboxRefs.current[key].current;\n const parentCheckbox = checkboxRefs.current[childPrefix].current;\n if (!chkBox || !parentCheckbox) return;\n chkBox.checked = parentCheckbox.checked ? true : false;\n }\n });\n setCheckboxesState(childPrefix);\n setValue();\n return;\n }\n setCheckboxesState(check.getAttribute('data-groupname') || '');\n setValue();\n };\n\n const handleExpanded: MouseEventHandler<HTMLButtonElement> = (event) => {\n const target = event.target as HTMLButtonElement;\n const parent = target.closest('[data-li]');\n setExpandedAttributes(target, parent);\n };\n\n useEffect(() => {\n if (selectedValues && !valuesAreEqual(selectedValues, values)) {\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (!chkBox) return;\n if (selectedValues?.includes(chkBox.value)) {\n chkBox.checked = true;\n } else {\n chkBox.checked = false;\n }\n if (chkBox.name.indexOf('Group') !== -1) {\n setValues(selectedValues || []);\n }\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedValues]);\n\n useEffect(() => {\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (!chkBox) return;\n if (chkBox.name.indexOf('Group') !== -1) {\n setCheckboxesState(chkBox.name);\n }\n });\n }, [values]);\n\n return (\n <div>\n {title && <span className={styles['checkbox-tree__header']}>{title}</span>}\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */}\n <div onClick={handleChange} data-ul role=\"tree\" tabIndex={0}>\n {checkboxTree.map(({ itemName, children }, index) => (\n <div\n key={itemName}\n className={styles['checkbox-tree__branch']}\n data-li\n aria-expanded={lessThan.md ? 'false' : 'true'}\n >\n <FormField inline className={styles['checkbox-tree__branch--formfield']}>\n <Button variant=\"blank\" onClick={handleExpanded}>\n <Icon\n name=\"CheveronRight\"\n size={16}\n className={clsx(styles['checkbox-tree__branch--icon'], {\n [styles['checkbox-tree__branch--icon--expanded']]: !lessThan.md,\n })}\n />\n </Button>\n <Checkbox\n id={itemName}\n name={`Group${index}`}\n disabled={children.every((checkbox) => checkbox.disabled)}\n ref={createRefForKey(`Group${index}`)}\n />\n <Label htmlFor={itemName} noFontWeight={noLabelFrontWeight}>\n {itemName}\n </Label>\n </FormField>\n <div\n className={clsx(styles['checkbox-tree__leaves'], {\n [styles['checkbox-tree__leaves--expanded']]: !lessThan.md,\n })}\n data-ul\n >\n {children.map(({ itemName, itemValue, disabled }) => (\n <div key={itemName} className={styles['checkbox-tree__leaf']} data-li>\n <FormField inline className={styles['checkbox-tree__branch--formfield']}>\n <Checkbox\n id={itemName}\n name={itemName}\n value={itemValue}\n disabled={disabled}\n data-groupname={`Group${index}`}\n ref={createRefForKey(`Group${index}_${itemName}`)}\n />\n <Label htmlFor={itemName} noFontWeight={noLabelFrontWeight}>\n {itemName}\n </Label>\n </FormField>\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n};\n"],"names":["CheckboxTree","title","checkboxTree","selectedValues","noLabelFrontWeight","onChange","checkboxRefs","useRef","values","setValues","useState","lessThan","useResponsive","valuesAreEqual","values1","values2","countElements","list","acc","val","numberOfValues1","numberOfValues2","key","createRefForKey","createRef","setValue","newValues","chkBox","setCheckboxesState","checkGroupName","groupStatus","every","some","setExpandedAttributes","trigger","container","children","styles","handleChange","event","check","childPrefix","parentCheckbox","handleExpanded","target","parent","useEffect","itemName","index","jsxs","FormField","jsx","Button","Icon","clsx","Checkbox","checkbox","Label","itemValue","disabled"],"mappings":"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"}