@chayns-components/core 5.4.12 → 5.4.13-alpha.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 (487) hide show
  1. package/AGENTS.md +12 -0
  2. package/lib/cjs/components/accordion/Accordion.js +107 -12
  3. package/lib/cjs/components/accordion/Accordion.js.map +1 -1
  4. package/lib/cjs/components/accordion/Accordion.styles.js +23 -3
  5. package/lib/cjs/components/accordion/Accordion.styles.js.map +1 -1
  6. package/lib/cjs/components/accordion/accordion-body/AccordionBody.styles.js +3 -1
  7. package/lib/cjs/components/accordion/accordion-body/AccordionBody.styles.js.map +1 -1
  8. package/lib/cjs/components/accordion/accordion-group/AccordionGroup.js +36 -19
  9. package/lib/cjs/components/accordion/accordion-group/AccordionGroup.js.map +1 -1
  10. package/lib/cjs/components/accordion/accordion-head/AccordionHead.js +6 -3
  11. package/lib/cjs/components/accordion/accordion-head/AccordionHead.js.map +1 -1
  12. package/lib/cjs/components/accordion/accordion-head/AccordionHead.styles.js +14 -0
  13. package/lib/cjs/components/accordion/accordion-head/AccordionHead.styles.js.map +1 -1
  14. package/lib/cjs/components/amount-control/AmountControl.js +31 -17
  15. package/lib/cjs/components/amount-control/AmountControl.js.map +1 -1
  16. package/lib/cjs/components/amount-control/AmountControl.styles.js +18 -2
  17. package/lib/cjs/components/amount-control/AmountControl.styles.js.map +1 -1
  18. package/lib/cjs/components/button/Button.js +5 -1
  19. package/lib/cjs/components/button/Button.js.map +1 -1
  20. package/lib/cjs/components/button/Button.styles.js +10 -0
  21. package/lib/cjs/components/button/Button.styles.js.map +1 -1
  22. package/lib/cjs/components/button/Button.types.js.map +1 -1
  23. package/lib/cjs/components/checkbox/Checkbox.js +5 -1
  24. package/lib/cjs/components/checkbox/Checkbox.js.map +1 -1
  25. package/lib/cjs/components/checkbox/Checkbox.styles.js +29 -2
  26. package/lib/cjs/components/checkbox/Checkbox.styles.js.map +1 -1
  27. package/lib/cjs/components/color-scheme-provider/ColorSchemeProvider.js +7 -2
  28. package/lib/cjs/components/color-scheme-provider/ColorSchemeProvider.js.map +1 -1
  29. package/lib/cjs/components/color-scheme-provider/ColorSchemeProvider.styles.js +8 -2
  30. package/lib/cjs/components/color-scheme-provider/ColorSchemeProvider.styles.js.map +1 -1
  31. package/lib/cjs/components/combobox/ComboBox.js +68 -11
  32. package/lib/cjs/components/combobox/ComboBox.js.map +1 -1
  33. package/lib/cjs/components/combobox/ComboBox.styles.js +11 -0
  34. package/lib/cjs/components/combobox/ComboBox.styles.js.map +1 -1
  35. package/lib/cjs/components/combobox/ComboBox.types.js.map +1 -1
  36. package/lib/cjs/components/context-menu/ContextMenu.js +146 -42
  37. package/lib/cjs/components/context-menu/ContextMenu.js.map +1 -1
  38. package/lib/cjs/components/context-menu/ContextMenu.styles.js +38 -0
  39. package/lib/cjs/components/context-menu/ContextMenu.styles.js.map +1 -1
  40. package/lib/cjs/components/context-menu/ContextMenu.types.js.map +1 -1
  41. package/lib/cjs/components/context-menu/ContextMenu.utils.js +27 -1
  42. package/lib/cjs/components/context-menu/ContextMenu.utils.js.map +1 -1
  43. package/lib/cjs/components/context-menu/context-menu-content/ContextMenuContent.js +3 -8
  44. package/lib/cjs/components/context-menu/context-menu-content/ContextMenuContent.js.map +1 -1
  45. package/lib/cjs/components/file-input/FileInput.js +4 -2
  46. package/lib/cjs/components/file-input/FileInput.js.map +1 -1
  47. package/lib/cjs/components/file-list/file-item/FileItem.js +48 -25
  48. package/lib/cjs/components/file-list/file-item/FileItem.js.map +1 -1
  49. package/lib/cjs/components/file-list/file-item/FileItem.styles.js +25 -1
  50. package/lib/cjs/components/file-list/file-item/FileItem.styles.js.map +1 -1
  51. package/lib/cjs/components/file-select/FileSelect.js +27 -4
  52. package/lib/cjs/components/file-select/FileSelect.js.map +1 -1
  53. package/lib/cjs/components/file-select/FileSelect.styles.js +10 -0
  54. package/lib/cjs/components/file-select/FileSelect.styles.js.map +1 -1
  55. package/lib/cjs/components/filter/Filter.js +51 -16
  56. package/lib/cjs/components/filter/Filter.js.map +1 -1
  57. package/lib/cjs/components/filter/Filter.styles.js +9 -0
  58. package/lib/cjs/components/filter/Filter.styles.js.map +1 -1
  59. package/lib/cjs/components/filter/filter-content/FilterContent.js +14 -5
  60. package/lib/cjs/components/filter/filter-content/FilterContent.js.map +1 -1
  61. package/lib/cjs/components/filter/filter-content/FilterContent.types.js.map +1 -1
  62. package/lib/cjs/components/filter-buttons/FilterButtons.js +69 -4
  63. package/lib/cjs/components/filter-buttons/FilterButtons.js.map +1 -1
  64. package/lib/cjs/components/filter-buttons/filter-button/FilterButton.js +40 -2
  65. package/lib/cjs/components/filter-buttons/filter-button/FilterButton.js.map +1 -1
  66. package/lib/cjs/components/filter-buttons/filter-button/FilterButton.styles.js +11 -0
  67. package/lib/cjs/components/filter-buttons/filter-button/FilterButton.styles.js.map +1 -1
  68. package/lib/cjs/components/grid-image/GridImage.js +20 -2
  69. package/lib/cjs/components/grid-image/GridImage.js.map +1 -1
  70. package/lib/cjs/components/grid-image/GridImage.styles.js +11 -2
  71. package/lib/cjs/components/grid-image/GridImage.styles.js.map +1 -1
  72. package/lib/cjs/components/grouped-image/GroupedImage.js +23 -4
  73. package/lib/cjs/components/grouped-image/GroupedImage.js.map +1 -1
  74. package/lib/cjs/components/grouped-image/GroupedImage.styles.js +9 -0
  75. package/lib/cjs/components/grouped-image/GroupedImage.styles.js.map +1 -1
  76. package/lib/cjs/components/highlight-slider/HighlightSlider.js +13 -3
  77. package/lib/cjs/components/highlight-slider/HighlightSlider.js.map +1 -1
  78. package/lib/cjs/components/highlight-slider/highlight-slider-item/HighlightSliderItem.js +21 -4
  79. package/lib/cjs/components/highlight-slider/highlight-slider-item/HighlightSliderItem.js.map +1 -1
  80. package/lib/cjs/components/highlight-slider/highlight-slider-item/HighlightSliderItem.styles.js +11 -2
  81. package/lib/cjs/components/highlight-slider/highlight-slider-item/HighlightSliderItem.styles.js.map +1 -1
  82. package/lib/cjs/components/icon/Icon.js +24 -5
  83. package/lib/cjs/components/icon/Icon.js.map +1 -1
  84. package/lib/cjs/components/icon/Icon.styles.js +23 -0
  85. package/lib/cjs/components/icon/Icon.styles.js.map +1 -1
  86. package/lib/cjs/components/input/Input.js +29 -8
  87. package/lib/cjs/components/input/Input.js.map +1 -1
  88. package/lib/cjs/components/input/Input.styles.js +38 -3
  89. package/lib/cjs/components/input/Input.styles.js.map +1 -1
  90. package/lib/cjs/components/list/List.js +124 -37
  91. package/lib/cjs/components/list/List.js.map +1 -1
  92. package/lib/cjs/components/list/List.utils.js +213 -1
  93. package/lib/cjs/components/list/List.utils.js.map +1 -1
  94. package/lib/cjs/components/list/list-item/ListItem.js +84 -3
  95. package/lib/cjs/components/list/list-item/ListItem.js.map +1 -1
  96. package/lib/cjs/components/list/list-item/ListItem.styles.js +7 -0
  97. package/lib/cjs/components/list/list-item/ListItem.styles.js.map +1 -1
  98. package/lib/cjs/components/list/list-item/list-item-head/ListItemHead.js +5 -1
  99. package/lib/cjs/components/list/list-item/list-item-head/ListItemHead.js.map +1 -1
  100. package/lib/cjs/components/list/list-item/list-item-head/ListItemHead.styles.js +5 -1
  101. package/lib/cjs/components/list/list-item/list-item-head/ListItemHead.styles.js.map +1 -1
  102. package/lib/cjs/components/list/list-item/list-item-head/list-item-right-element/ListItemRightElement.js +1 -0
  103. package/lib/cjs/components/list/list-item/list-item-head/list-item-right-element/ListItemRightElement.js.map +1 -1
  104. package/lib/cjs/components/list/list-item/list-item-head/list-item-subtitle/ListItemSubtitle.js +3 -0
  105. package/lib/cjs/components/list/list-item/list-item-head/list-item-subtitle/ListItemSubtitle.js.map +1 -1
  106. package/lib/cjs/components/list/list-item/list-item-head/list-item-title/ListItemTitle.js +1 -0
  107. package/lib/cjs/components/list/list-item/list-item-head/list-item-title/ListItemTitle.js.map +1 -1
  108. package/lib/cjs/components/list/list-item/useListItemFocus.js +47 -0
  109. package/lib/cjs/components/list/list-item/useListItemFocus.js.map +1 -0
  110. package/lib/cjs/components/mention-finder/MentionFinder.js +43 -5
  111. package/lib/cjs/components/mention-finder/MentionFinder.js.map +1 -1
  112. package/lib/cjs/components/mention-finder/mention-finder-item/MentionFinderItem.styles.js.map +1 -1
  113. package/lib/cjs/components/multi-action-button/MultiActionButton.js +36 -3
  114. package/lib/cjs/components/multi-action-button/MultiActionButton.js.map +1 -1
  115. package/lib/cjs/components/multi-action-button/MultiActionButton.styles.js +6 -0
  116. package/lib/cjs/components/multi-action-button/MultiActionButton.styles.js.map +1 -1
  117. package/lib/cjs/components/multi-action-button/MultiActionButton.types.js.map +1 -1
  118. package/lib/cjs/components/multi-action-button/action-button/ActionButton.js +7 -1
  119. package/lib/cjs/components/multi-action-button/action-button/ActionButton.js.map +1 -1
  120. package/lib/cjs/components/multi-action-button/action-button/ActionButton.styles.js +12 -0
  121. package/lib/cjs/components/multi-action-button/action-button/ActionButton.styles.js.map +1 -1
  122. package/lib/cjs/components/number-input/NumberInput.js +13 -10
  123. package/lib/cjs/components/number-input/NumberInput.js.map +1 -1
  124. package/lib/cjs/components/page-provider/PageProvider.js +4 -2
  125. package/lib/cjs/components/page-provider/PageProvider.js.map +1 -1
  126. package/lib/cjs/components/popup/Popup.js +8 -1
  127. package/lib/cjs/components/popup/Popup.js.map +1 -1
  128. package/lib/cjs/components/radio-button/RadioButton.js +29 -15
  129. package/lib/cjs/components/radio-button/RadioButton.js.map +1 -1
  130. package/lib/cjs/components/radio-button/RadioButton.styles.js +19 -8
  131. package/lib/cjs/components/radio-button/RadioButton.styles.js.map +1 -1
  132. package/lib/cjs/components/radio-button/radio-button-group/RadioButtonGroup.js +7 -4
  133. package/lib/cjs/components/radio-button/radio-button-group/RadioButtonGroup.js.map +1 -1
  134. package/lib/cjs/components/search-box/SearchBox.js +89 -25
  135. package/lib/cjs/components/search-box/SearchBox.js.map +1 -1
  136. package/lib/cjs/components/search-box/search-box-body/SearchBoxBody.js +3 -1
  137. package/lib/cjs/components/search-box/search-box-body/SearchBoxBody.js.map +1 -1
  138. package/lib/cjs/components/search-box/search-box-body/SearchBoxBody.styles.js +6 -4
  139. package/lib/cjs/components/search-box/search-box-body/SearchBoxBody.styles.js.map +1 -1
  140. package/lib/cjs/components/search-box/search-box-item/SearchBoxItem.js +3 -1
  141. package/lib/cjs/components/search-box/search-box-item/SearchBoxItem.js.map +1 -1
  142. package/lib/cjs/components/search-box/search-box-item/SearchBoxItem.styles.js +6 -1
  143. package/lib/cjs/components/search-box/search-box-item/SearchBoxItem.styles.js.map +1 -1
  144. package/lib/cjs/components/search-input/SearchInput.js +56 -43
  145. package/lib/cjs/components/search-input/SearchInput.js.map +1 -1
  146. package/lib/cjs/components/search-input/SearchInput.styles.js +26 -2
  147. package/lib/cjs/components/search-input/SearchInput.styles.js.map +1 -1
  148. package/lib/cjs/components/select-button/SelectButton.js +4 -2
  149. package/lib/cjs/components/select-button/SelectButton.js.map +1 -1
  150. package/lib/cjs/components/setup-wizard/SetupWizard.js +10 -4
  151. package/lib/cjs/components/setup-wizard/SetupWizard.js.map +1 -1
  152. package/lib/cjs/components/setup-wizard/setup-wizard-item/SetupWizardItem.js +5 -3
  153. package/lib/cjs/components/setup-wizard/setup-wizard-item/SetupWizardItem.js.map +1 -1
  154. package/lib/cjs/components/sharing-bar/SharingBar.js +31 -6
  155. package/lib/cjs/components/sharing-bar/SharingBar.js.map +1 -1
  156. package/lib/cjs/components/sharing-bar/SharingBar.styles.js +5 -0
  157. package/lib/cjs/components/sharing-bar/SharingBar.styles.js.map +1 -1
  158. package/lib/cjs/components/sharing-button/SharingButton.js +4 -2
  159. package/lib/cjs/components/sharing-button/SharingButton.js.map +1 -1
  160. package/lib/cjs/components/sharing-context-menu/SharingContextMenu.js +3 -1
  161. package/lib/cjs/components/sharing-context-menu/SharingContextMenu.js.map +1 -1
  162. package/lib/cjs/components/signature/Signature.js +6 -3
  163. package/lib/cjs/components/signature/Signature.js.map +1 -1
  164. package/lib/cjs/components/slider/Slider.js +30 -7
  165. package/lib/cjs/components/slider/Slider.js.map +1 -1
  166. package/lib/cjs/components/slider/Slider.styles.js +9 -2
  167. package/lib/cjs/components/slider/Slider.styles.js.map +1 -1
  168. package/lib/cjs/components/slider-button/SliderButton.js +63 -6
  169. package/lib/cjs/components/slider-button/SliderButton.js.map +1 -1
  170. package/lib/cjs/components/slider-button/SliderButton.styles.js +15 -2
  171. package/lib/cjs/components/slider-button/SliderButton.styles.js.map +1 -1
  172. package/lib/cjs/components/slider-button/SliderButton.types.js +6 -0
  173. package/lib/cjs/components/slider-button/SliderButton.types.js.map +1 -0
  174. package/lib/cjs/components/slider-button/useSliderButtonPopupKeyboard.js +66 -0
  175. package/lib/cjs/components/slider-button/useSliderButtonPopupKeyboard.js.map +1 -0
  176. package/lib/cjs/components/slider-button/useSliderButtonThumbKeyboard.js +47 -0
  177. package/lib/cjs/components/slider-button/useSliderButtonThumbKeyboard.js.map +1 -0
  178. package/lib/cjs/components/tag-input/TagInput.js +92 -36
  179. package/lib/cjs/components/tag-input/TagInput.js.map +1 -1
  180. package/lib/cjs/components/tag-input/TagInput.styles.js +29 -3
  181. package/lib/cjs/components/tag-input/TagInput.styles.js.map +1 -1
  182. package/lib/cjs/components/text-area/TextArea.js +17 -8
  183. package/lib/cjs/components/text-area/TextArea.js.map +1 -1
  184. package/lib/cjs/components/text-area/TextArea.styles.js +15 -1
  185. package/lib/cjs/components/text-area/TextArea.styles.js.map +1 -1
  186. package/lib/cjs/components/truncation/Truncation.js +17 -3
  187. package/lib/cjs/components/truncation/Truncation.js.map +1 -1
  188. package/lib/cjs/components/truncation/Truncation.styles.js +18 -1
  189. package/lib/cjs/components/truncation/Truncation.styles.js.map +1 -1
  190. package/lib/cjs/hooks/useKeyboardFocusHighlighting.js +68 -0
  191. package/lib/cjs/hooks/useKeyboardFocusHighlighting.js.map +1 -0
  192. package/lib/cjs/utils/file.js.map +1 -1
  193. package/lib/cjs/utils/keyboardFocusHighlighting.styles.js +29 -0
  194. package/lib/cjs/utils/keyboardFocusHighlighting.styles.js.map +1 -0
  195. package/lib/cjs/utils/searchBox.js +22 -12
  196. package/lib/cjs/utils/searchBox.js.map +1 -1
  197. package/lib/esm/components/accordion/Accordion.js +105 -12
  198. package/lib/esm/components/accordion/Accordion.js.map +1 -1
  199. package/lib/esm/components/accordion/Accordion.styles.js +23 -3
  200. package/lib/esm/components/accordion/Accordion.styles.js.map +1 -1
  201. package/lib/esm/components/accordion/accordion-body/AccordionBody.styles.js +3 -1
  202. package/lib/esm/components/accordion/accordion-body/AccordionBody.styles.js.map +1 -1
  203. package/lib/esm/components/accordion/accordion-group/AccordionGroup.js +33 -19
  204. package/lib/esm/components/accordion/accordion-group/AccordionGroup.js.map +1 -1
  205. package/lib/esm/components/accordion/accordion-head/AccordionHead.js +6 -3
  206. package/lib/esm/components/accordion/accordion-head/AccordionHead.js.map +1 -1
  207. package/lib/esm/components/accordion/accordion-head/AccordionHead.styles.js +14 -0
  208. package/lib/esm/components/accordion/accordion-head/AccordionHead.styles.js.map +1 -1
  209. package/lib/esm/components/amount-control/AmountControl.js +30 -16
  210. package/lib/esm/components/amount-control/AmountControl.js.map +1 -1
  211. package/lib/esm/components/amount-control/AmountControl.styles.js +18 -2
  212. package/lib/esm/components/amount-control/AmountControl.styles.js.map +1 -1
  213. package/lib/esm/components/button/Button.js +5 -1
  214. package/lib/esm/components/button/Button.js.map +1 -1
  215. package/lib/esm/components/button/Button.styles.js +10 -0
  216. package/lib/esm/components/button/Button.styles.js.map +1 -1
  217. package/lib/esm/components/button/Button.types.js.map +1 -1
  218. package/lib/esm/components/checkbox/Checkbox.js +5 -1
  219. package/lib/esm/components/checkbox/Checkbox.js.map +1 -1
  220. package/lib/esm/components/checkbox/Checkbox.styles.js +29 -2
  221. package/lib/esm/components/checkbox/Checkbox.styles.js.map +1 -1
  222. package/lib/esm/components/color-scheme-provider/ColorSchemeProvider.js +7 -2
  223. package/lib/esm/components/color-scheme-provider/ColorSchemeProvider.js.map +1 -1
  224. package/lib/esm/components/color-scheme-provider/ColorSchemeProvider.styles.js +8 -2
  225. package/lib/esm/components/color-scheme-provider/ColorSchemeProvider.styles.js.map +1 -1
  226. package/lib/esm/components/combobox/ComboBox.js +61 -7
  227. package/lib/esm/components/combobox/ComboBox.js.map +1 -1
  228. package/lib/esm/components/combobox/ComboBox.styles.js +11 -0
  229. package/lib/esm/components/combobox/ComboBox.styles.js.map +1 -1
  230. package/lib/esm/components/combobox/ComboBox.types.js.map +1 -1
  231. package/lib/esm/components/context-menu/ContextMenu.js +145 -42
  232. package/lib/esm/components/context-menu/ContextMenu.js.map +1 -1
  233. package/lib/esm/components/context-menu/ContextMenu.styles.js +38 -0
  234. package/lib/esm/components/context-menu/ContextMenu.styles.js.map +1 -1
  235. package/lib/esm/components/context-menu/ContextMenu.types.js.map +1 -1
  236. package/lib/esm/components/context-menu/ContextMenu.utils.js +24 -0
  237. package/lib/esm/components/context-menu/ContextMenu.utils.js.map +1 -1
  238. package/lib/esm/components/context-menu/context-menu-content/ContextMenuContent.js +3 -8
  239. package/lib/esm/components/context-menu/context-menu-content/ContextMenuContent.js.map +1 -1
  240. package/lib/esm/components/file-input/FileInput.js +4 -2
  241. package/lib/esm/components/file-input/FileInput.js.map +1 -1
  242. package/lib/esm/components/file-list/file-item/FileItem.js +49 -26
  243. package/lib/esm/components/file-list/file-item/FileItem.js.map +1 -1
  244. package/lib/esm/components/file-list/file-item/FileItem.styles.js +24 -0
  245. package/lib/esm/components/file-list/file-item/FileItem.styles.js.map +1 -1
  246. package/lib/esm/components/file-select/FileSelect.js +27 -4
  247. package/lib/esm/components/file-select/FileSelect.js.map +1 -1
  248. package/lib/esm/components/file-select/FileSelect.styles.js +10 -0
  249. package/lib/esm/components/file-select/FileSelect.styles.js.map +1 -1
  250. package/lib/esm/components/filter/Filter.js +52 -16
  251. package/lib/esm/components/filter/Filter.js.map +1 -1
  252. package/lib/esm/components/filter/Filter.styles.js +9 -0
  253. package/lib/esm/components/filter/Filter.styles.js.map +1 -1
  254. package/lib/esm/components/filter/filter-content/FilterContent.js +15 -5
  255. package/lib/esm/components/filter/filter-content/FilterContent.js.map +1 -1
  256. package/lib/esm/components/filter/filter-content/FilterContent.types.js.map +1 -1
  257. package/lib/esm/components/filter-buttons/FilterButtons.js +69 -5
  258. package/lib/esm/components/filter-buttons/FilterButtons.js.map +1 -1
  259. package/lib/esm/components/filter-buttons/filter-button/FilterButton.js +40 -2
  260. package/lib/esm/components/filter-buttons/filter-button/FilterButton.js.map +1 -1
  261. package/lib/esm/components/filter-buttons/filter-button/FilterButton.styles.js +11 -0
  262. package/lib/esm/components/filter-buttons/filter-button/FilterButton.styles.js.map +1 -1
  263. package/lib/esm/components/grid-image/GridImage.js +20 -2
  264. package/lib/esm/components/grid-image/GridImage.js.map +1 -1
  265. package/lib/esm/components/grid-image/GridImage.styles.js +10 -1
  266. package/lib/esm/components/grid-image/GridImage.styles.js.map +1 -1
  267. package/lib/esm/components/grouped-image/GroupedImage.js +22 -4
  268. package/lib/esm/components/grouped-image/GroupedImage.js.map +1 -1
  269. package/lib/esm/components/grouped-image/GroupedImage.styles.js +9 -0
  270. package/lib/esm/components/grouped-image/GroupedImage.styles.js.map +1 -1
  271. package/lib/esm/components/highlight-slider/HighlightSlider.js +13 -3
  272. package/lib/esm/components/highlight-slider/HighlightSlider.js.map +1 -1
  273. package/lib/esm/components/highlight-slider/highlight-slider-item/HighlightSliderItem.js +20 -3
  274. package/lib/esm/components/highlight-slider/highlight-slider-item/HighlightSliderItem.js.map +1 -1
  275. package/lib/esm/components/highlight-slider/highlight-slider-item/HighlightSliderItem.styles.js +10 -1
  276. package/lib/esm/components/highlight-slider/highlight-slider-item/HighlightSliderItem.styles.js.map +1 -1
  277. package/lib/esm/components/icon/Icon.js +26 -7
  278. package/lib/esm/components/icon/Icon.js.map +1 -1
  279. package/lib/esm/components/icon/Icon.styles.js +23 -0
  280. package/lib/esm/components/icon/Icon.styles.js.map +1 -1
  281. package/lib/esm/components/input/Input.js +24 -4
  282. package/lib/esm/components/input/Input.js.map +1 -1
  283. package/lib/esm/components/input/Input.styles.js +38 -3
  284. package/lib/esm/components/input/Input.styles.js.map +1 -1
  285. package/lib/esm/components/list/List.js +123 -37
  286. package/lib/esm/components/list/List.js.map +1 -1
  287. package/lib/esm/components/list/List.utils.js +202 -0
  288. package/lib/esm/components/list/List.utils.js.map +1 -1
  289. package/lib/esm/components/list/list-item/ListItem.js +85 -4
  290. package/lib/esm/components/list/list-item/ListItem.js.map +1 -1
  291. package/lib/esm/components/list/list-item/ListItem.styles.js +7 -0
  292. package/lib/esm/components/list/list-item/ListItem.styles.js.map +1 -1
  293. package/lib/esm/components/list/list-item/list-item-head/ListItemHead.js +6 -2
  294. package/lib/esm/components/list/list-item/list-item-head/ListItemHead.js.map +1 -1
  295. package/lib/esm/components/list/list-item/list-item-head/ListItemHead.styles.js +4 -0
  296. package/lib/esm/components/list/list-item/list-item-head/ListItemHead.styles.js.map +1 -1
  297. package/lib/esm/components/list/list-item/list-item-head/list-item-right-element/ListItemRightElement.js +1 -0
  298. package/lib/esm/components/list/list-item/list-item-head/list-item-right-element/ListItemRightElement.js.map +1 -1
  299. package/lib/esm/components/list/list-item/list-item-head/list-item-subtitle/ListItemSubtitle.js +4 -1
  300. package/lib/esm/components/list/list-item/list-item-head/list-item-subtitle/ListItemSubtitle.js.map +1 -1
  301. package/lib/esm/components/list/list-item/list-item-head/list-item-title/ListItemTitle.js +1 -0
  302. package/lib/esm/components/list/list-item/list-item-head/list-item-title/ListItemTitle.js.map +1 -1
  303. package/lib/esm/components/list/list-item/useListItemFocus.js +40 -0
  304. package/lib/esm/components/list/list-item/useListItemFocus.js.map +1 -0
  305. package/lib/esm/components/mention-finder/MentionFinder.js +39 -3
  306. package/lib/esm/components/mention-finder/MentionFinder.js.map +1 -1
  307. package/lib/esm/components/mention-finder/mention-finder-item/MentionFinderItem.styles.js.map +1 -1
  308. package/lib/esm/components/multi-action-button/MultiActionButton.js +36 -3
  309. package/lib/esm/components/multi-action-button/MultiActionButton.js.map +1 -1
  310. package/lib/esm/components/multi-action-button/MultiActionButton.styles.js +6 -0
  311. package/lib/esm/components/multi-action-button/MultiActionButton.styles.js.map +1 -1
  312. package/lib/esm/components/multi-action-button/MultiActionButton.types.js.map +1 -1
  313. package/lib/esm/components/multi-action-button/action-button/ActionButton.js +7 -1
  314. package/lib/esm/components/multi-action-button/action-button/ActionButton.js.map +1 -1
  315. package/lib/esm/components/multi-action-button/action-button/ActionButton.styles.js +12 -0
  316. package/lib/esm/components/multi-action-button/action-button/ActionButton.styles.js.map +1 -1
  317. package/lib/esm/components/number-input/NumberInput.js +13 -10
  318. package/lib/esm/components/number-input/NumberInput.js.map +1 -1
  319. package/lib/esm/components/page-provider/PageProvider.js +4 -2
  320. package/lib/esm/components/page-provider/PageProvider.js.map +1 -1
  321. package/lib/esm/components/popup/Popup.js +8 -1
  322. package/lib/esm/components/popup/Popup.js.map +1 -1
  323. package/lib/esm/components/radio-button/RadioButton.js +29 -15
  324. package/lib/esm/components/radio-button/RadioButton.js.map +1 -1
  325. package/lib/esm/components/radio-button/RadioButton.styles.js +19 -8
  326. package/lib/esm/components/radio-button/RadioButton.styles.js.map +1 -1
  327. package/lib/esm/components/radio-button/radio-button-group/RadioButtonGroup.js +7 -4
  328. package/lib/esm/components/radio-button/radio-button-group/RadioButtonGroup.js.map +1 -1
  329. package/lib/esm/components/search-box/SearchBox.js +87 -24
  330. package/lib/esm/components/search-box/SearchBox.js.map +1 -1
  331. package/lib/esm/components/search-box/search-box-body/SearchBoxBody.js +3 -1
  332. package/lib/esm/components/search-box/search-box-body/SearchBoxBody.js.map +1 -1
  333. package/lib/esm/components/search-box/search-box-body/SearchBoxBody.styles.js +6 -4
  334. package/lib/esm/components/search-box/search-box-body/SearchBoxBody.styles.js.map +1 -1
  335. package/lib/esm/components/search-box/search-box-item/SearchBoxItem.js +3 -1
  336. package/lib/esm/components/search-box/search-box-item/SearchBoxItem.js.map +1 -1
  337. package/lib/esm/components/search-box/search-box-item/SearchBoxItem.styles.js +6 -1
  338. package/lib/esm/components/search-box/search-box-item/SearchBoxItem.styles.js.map +1 -1
  339. package/lib/esm/components/search-input/SearchInput.js +56 -44
  340. package/lib/esm/components/search-input/SearchInput.js.map +1 -1
  341. package/lib/esm/components/search-input/SearchInput.styles.js +25 -1
  342. package/lib/esm/components/search-input/SearchInput.styles.js.map +1 -1
  343. package/lib/esm/components/select-button/SelectButton.js +4 -2
  344. package/lib/esm/components/select-button/SelectButton.js.map +1 -1
  345. package/lib/esm/components/setup-wizard/SetupWizard.js +10 -4
  346. package/lib/esm/components/setup-wizard/SetupWizard.js.map +1 -1
  347. package/lib/esm/components/setup-wizard/setup-wizard-item/SetupWizardItem.js +5 -3
  348. package/lib/esm/components/setup-wizard/setup-wizard-item/SetupWizardItem.js.map +1 -1
  349. package/lib/esm/components/sharing-bar/SharingBar.js +30 -5
  350. package/lib/esm/components/sharing-bar/SharingBar.js.map +1 -1
  351. package/lib/esm/components/sharing-bar/SharingBar.styles.js +5 -0
  352. package/lib/esm/components/sharing-bar/SharingBar.styles.js.map +1 -1
  353. package/lib/esm/components/sharing-button/SharingButton.js +4 -2
  354. package/lib/esm/components/sharing-button/SharingButton.js.map +1 -1
  355. package/lib/esm/components/sharing-context-menu/SharingContextMenu.js +3 -1
  356. package/lib/esm/components/sharing-context-menu/SharingContextMenu.js.map +1 -1
  357. package/lib/esm/components/signature/Signature.js +6 -3
  358. package/lib/esm/components/signature/Signature.js.map +1 -1
  359. package/lib/esm/components/slider/Slider.js +30 -7
  360. package/lib/esm/components/slider/Slider.js.map +1 -1
  361. package/lib/esm/components/slider/Slider.styles.js +8 -1
  362. package/lib/esm/components/slider/Slider.styles.js.map +1 -1
  363. package/lib/esm/components/slider-button/SliderButton.js +62 -6
  364. package/lib/esm/components/slider-button/SliderButton.js.map +1 -1
  365. package/lib/esm/components/slider-button/SliderButton.styles.js +14 -1
  366. package/lib/esm/components/slider-button/SliderButton.styles.js.map +1 -1
  367. package/lib/esm/components/slider-button/SliderButton.types.js +2 -0
  368. package/lib/esm/components/slider-button/SliderButton.types.js.map +1 -0
  369. package/lib/esm/components/slider-button/useSliderButtonPopupKeyboard.js +56 -0
  370. package/lib/esm/components/slider-button/useSliderButtonPopupKeyboard.js.map +1 -0
  371. package/lib/esm/components/slider-button/useSliderButtonThumbKeyboard.js +38 -0
  372. package/lib/esm/components/slider-button/useSliderButtonThumbKeyboard.js.map +1 -0
  373. package/lib/esm/components/tag-input/TagInput.js +86 -35
  374. package/lib/esm/components/tag-input/TagInput.js.map +1 -1
  375. package/lib/esm/components/tag-input/TagInput.styles.js +27 -1
  376. package/lib/esm/components/tag-input/TagInput.styles.js.map +1 -1
  377. package/lib/esm/components/text-area/TextArea.js +18 -9
  378. package/lib/esm/components/text-area/TextArea.js.map +1 -1
  379. package/lib/esm/components/text-area/TextArea.styles.js +14 -0
  380. package/lib/esm/components/text-area/TextArea.styles.js.map +1 -1
  381. package/lib/esm/components/truncation/Truncation.js +18 -4
  382. package/lib/esm/components/truncation/Truncation.js.map +1 -1
  383. package/lib/esm/components/truncation/Truncation.styles.js +17 -0
  384. package/lib/esm/components/truncation/Truncation.styles.js.map +1 -1
  385. package/lib/esm/hooks/useKeyboardFocusHighlighting.js +61 -0
  386. package/lib/esm/hooks/useKeyboardFocusHighlighting.js.map +1 -0
  387. package/lib/esm/utils/file.js.map +1 -1
  388. package/lib/esm/utils/keyboardFocusHighlighting.styles.js +24 -0
  389. package/lib/esm/utils/keyboardFocusHighlighting.styles.js.map +1 -0
  390. package/lib/esm/utils/searchBox.js +20 -11
  391. package/lib/esm/utils/searchBox.js.map +1 -1
  392. package/lib/types/components/accordion/Accordion.d.ts +5 -0
  393. package/lib/types/components/accordion/Accordion.styles.d.ts +8 -4
  394. package/lib/types/components/accordion/accordion-body/AccordionBody.styles.d.ts +2 -2
  395. package/lib/types/components/accordion/accordion-group/AccordionGroup.d.ts +7 -2
  396. package/lib/types/components/accordion/accordion-head/AccordionHead.d.ts +1 -0
  397. package/lib/types/components/accordion/accordion-head/AccordionHead.styles.d.ts +18 -18
  398. package/lib/types/components/amount-control/AmountControl.d.ts +5 -0
  399. package/lib/types/components/amount-control/AmountControl.styles.d.ts +8 -4
  400. package/lib/types/components/button/Button.styles.d.ts +8 -6
  401. package/lib/types/components/button/Button.types.d.ts +8 -0
  402. package/lib/types/components/checkbox/Checkbox.d.ts +4 -0
  403. package/lib/types/components/checkbox/Checkbox.styles.d.ts +5 -1
  404. package/lib/types/components/color-scheme-provider/ColorSchemeProvider.d.ts +5 -0
  405. package/lib/types/components/combobox/ComboBox.styles.d.ts +4 -2
  406. package/lib/types/components/combobox/ComboBox.types.d.ts +5 -0
  407. package/lib/types/components/context-menu/ContextMenu.styles.d.ts +4 -2
  408. package/lib/types/components/context-menu/ContextMenu.types.d.ts +6 -0
  409. package/lib/types/components/context-menu/ContextMenu.utils.d.ts +10 -0
  410. package/lib/types/components/context-menu/context-menu-content/ContextMenuContent.d.ts +1 -1
  411. package/lib/types/components/context-menu/context-menu-content/ContextMenuContent.styles.d.ts +2 -2
  412. package/lib/types/components/dropdown-body-wrapper/delayed-dropdown-content/DelayedDropdownContent.styles.d.ts +2 -2
  413. package/lib/types/components/expandable-content/ExpandableContent.styles.d.ts +2 -2
  414. package/lib/types/components/file-input/FileInput.d.ts +4 -0
  415. package/lib/types/components/file-input/FileInput.styles.d.ts +2 -2
  416. package/lib/types/components/file-list/file-item/FileItem.styles.d.ts +3 -0
  417. package/lib/types/components/file-select/FileSelect.d.ts +4 -0
  418. package/lib/types/components/file-select/FileSelect.styles.d.ts +6 -4
  419. package/lib/types/components/filter/Filter.d.ts +1 -0
  420. package/lib/types/components/filter/Filter.styles.d.ts +6 -4
  421. package/lib/types/components/filter/filter-content/FilterContent.types.d.ts +4 -0
  422. package/lib/types/components/filter-buttons/FilterButtons.d.ts +4 -0
  423. package/lib/types/components/filter-buttons/filter-button/FilterButton.d.ts +5 -0
  424. package/lib/types/components/filter-buttons/filter-button/FilterButton.styles.d.ts +12 -8
  425. package/lib/types/components/grid-image/GridImage.d.ts +4 -0
  426. package/lib/types/components/grid-image/GridImage.styles.d.ts +4 -2
  427. package/lib/types/components/grouped-image/GroupedImage.d.ts +4 -0
  428. package/lib/types/components/grouped-image/GroupedImage.styles.d.ts +8 -6
  429. package/lib/types/components/highlight-slider/HighlightSlider.d.ts +4 -0
  430. package/lib/types/components/highlight-slider/highlight-slider-item/HighlightSliderItem.d.ts +3 -0
  431. package/lib/types/components/highlight-slider/highlight-slider-item/HighlightSliderItem.styles.d.ts +9 -5
  432. package/lib/types/components/icon/Icon.d.ts +4 -0
  433. package/lib/types/components/icon/Icon.styles.d.ts +1 -0
  434. package/lib/types/components/input/Input.d.ts +4 -0
  435. package/lib/types/components/input/Input.styles.d.ts +17 -9
  436. package/lib/types/components/list/List.d.ts +11 -0
  437. package/lib/types/components/list/List.utils.d.ts +32 -1
  438. package/lib/types/components/list/list-item/ListItem.d.ts +4 -0
  439. package/lib/types/components/list/list-item/ListItem.styles.d.ts +64 -64
  440. package/lib/types/components/list/list-item/list-item-body/ListItemBody.styles.d.ts +2 -2
  441. package/lib/types/components/list/list-item/list-item-head/ListItemHead.styles.d.ts +195 -194
  442. package/lib/types/components/list/list-item/useListItemFocus.d.ts +13 -0
  443. package/lib/types/components/masonry/masonry-item/MasonryItem.styles.d.ts +2 -2
  444. package/lib/types/components/mention-finder/MentionFinder.styles.d.ts +4 -4
  445. package/lib/types/components/multi-action-button/MultiActionButton.styles.d.ts +2 -2
  446. package/lib/types/components/multi-action-button/MultiActionButton.types.d.ts +7 -0
  447. package/lib/types/components/multi-action-button/action-button/ActionButton.d.ts +4 -1
  448. package/lib/types/components/multi-action-button/action-button/ActionButton.styles.d.ts +4 -2
  449. package/lib/types/components/number-input/NumberInput.d.ts +4 -0
  450. package/lib/types/components/popup/popup-content-wrapper/PopupContentWrapper.styles.d.ts +2 -2
  451. package/lib/types/components/progress-bar/ProgressBar.styles.d.ts +6 -6
  452. package/lib/types/components/radio-button/RadioButton.d.ts +4 -0
  453. package/lib/types/components/radio-button/RadioButton.styles.d.ts +15 -9
  454. package/lib/types/components/radio-button/radio-button-group/RadioButtonGroup.d.ts +5 -0
  455. package/lib/types/components/search-box/SearchBox.d.ts +20 -0
  456. package/lib/types/components/search-box/SearchBox.styles.d.ts +2 -2
  457. package/lib/types/components/search-box/search-box-body/SearchBoxBody.d.ts +1 -0
  458. package/lib/types/components/search-box/search-box-body/SearchBoxBody.styles.d.ts +4 -2
  459. package/lib/types/components/search-box/search-box-item/SearchBoxItem.d.ts +1 -0
  460. package/lib/types/components/search-box/search-box-item/SearchBoxItem.styles.d.ts +6 -2
  461. package/lib/types/components/search-input/SearchInput.d.ts +4 -0
  462. package/lib/types/components/search-input/SearchInput.styles.d.ts +17 -9
  463. package/lib/types/components/select-button/SelectButton.d.ts +4 -0
  464. package/lib/types/components/setup-wizard/SetupWizard.d.ts +5 -0
  465. package/lib/types/components/sharing-bar/SharingBar.d.ts +4 -0
  466. package/lib/types/components/sharing-button/SharingButton.d.ts +1 -1
  467. package/lib/types/components/sharing-context-menu/SharingContextMenu.d.ts +10 -2
  468. package/lib/types/components/signature/Signature.d.ts +4 -0
  469. package/lib/types/components/skeleton/base-skeleton/BaseSkeleton.styles.d.ts +4 -4
  470. package/lib/types/components/slider/Slider.d.ts +8 -0
  471. package/lib/types/components/slider/Slider.styles.d.ts +18 -14
  472. package/lib/types/components/slider-button/SliderButton.d.ts +1 -28
  473. package/lib/types/components/slider-button/SliderButton.styles.d.ts +6 -4
  474. package/lib/types/components/slider-button/SliderButton.types.d.ts +32 -0
  475. package/lib/types/components/slider-button/useSliderButtonPopupKeyboard.d.ts +17 -0
  476. package/lib/types/components/slider-button/useSliderButtonThumbKeyboard.d.ts +13 -0
  477. package/lib/types/components/tag-input/TagInput.d.ts +4 -0
  478. package/lib/types/components/tag-input/TagInput.styles.d.ts +12 -2
  479. package/lib/types/components/text-area/TextArea.d.ts +4 -0
  480. package/lib/types/components/text-area/TextArea.styles.d.ts +1 -0
  481. package/lib/types/components/truncation/Truncation.d.ts +4 -0
  482. package/lib/types/components/truncation/Truncation.styles.d.ts +7 -2
  483. package/lib/types/hooks/useKeyboardFocusHighlighting.d.ts +5 -0
  484. package/lib/types/utils/file.d.ts +1 -1
  485. package/lib/types/utils/keyboardFocusHighlighting.styles.d.ts +9 -0
  486. package/lib/types/utils/searchBox.d.ts +1 -0
  487. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.js","names":["AnimatePresence","MotionConfig","React","useCallback","useContext","useEffect","useMemo","useRef","useState","useUuid","AreaContext","AccordionBody","AccordionGroupContext","AccordionHead","AccordionWrappedContext","StyledMotionAccordion","useInitialRenderRef","AccordionContext","createContext","isWrapped","undefined","Accordion","bodyMaxHeight","children","icon","isDefaultOpen","isDisabled","isFixed","isOpened","isTitleGreyed","onBodyScroll","onClose","onHoverEnd","onHoverStart","onOpen","onSearchChange","rightElement","searchPlaceholder","searchValue","shouldForceBackground","shouldHideBackground","shouldRenderClosed","shouldRotateIcon","shouldHideBottomLine","title","titleElement","onTitleInputChange","titleInputProps","shouldSkipAnimation","shouldSkipAnimationProp","colors","shouldIndex","onBodyAnimationComplete","groupIsWrapped","openAccordionUuid","accordionGroupUuid","accordionUuids","updateOpenAccordionUuid","isParentWrapped","contextIsWrapped","isAccordionOpen","setIsAccordionOpen","uuid","isInitialRenderRef","initialRenderSkipRef","current","isInGroup","isOpen","isOpenRef","onCloseRef","onOpenRef","isLastAccordion","length","handleHeadClick","currentIsAccordionOpen","shouldOnlyOpen","accordionContextProviderValue","areaContextProviderValue","shouldChangeColor","accordionWrappedContextProviderValue","initialAnimation","height","opacity","createElement","animate","className","exit","initial","$isOpen","tabIndex","$shouldShowLines","$isParentWrapped","$isWrapped","$shouldForceBackground","$shouldHideBackground","$shouldHideBottomLine","$bottomBorderColor","borderBottomColor","onKeyDown","e","key","target","includes","preventDefault","stopPropagation","onMouseEnter","onMouseLeave","transition","duration","Provider","value","type","onClick","titleColor","maxHeight","onScroll","onAnimationComplete","shouldHideBody","displayName"],"sources":["../../../../src/components/accordion/Accordion.tsx"],"sourcesContent":["import { AnimatePresence, MotionConfig } from 'motion/react';\nimport React, {\n ChangeEventHandler,\n type CSSProperties,\n FC,\n type MouseEventHandler,\n ReactNode,\n UIEvent,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useUuid } from '../../hooks/uuid';\nimport { AreaContext } from '../area-provider/AreaContextProvider';\nimport type { InputProps } from '../input/Input';\nimport AccordionBody from './accordion-body/AccordionBody';\nimport { AccordionGroupContext } from './accordion-group/AccordionGroup';\nimport AccordionHead from './accordion-head/AccordionHead';\nimport { AccordionWrappedContext } from './accordion-provider/AccordionContextProvider';\nimport { StyledMotionAccordion } from './Accordion.styles';\nimport { useInitialRenderRef } from '../../hooks/ref';\n\nexport const AccordionContext = React.createContext<{ isWrapped?: boolean }>({\n isWrapped: undefined,\n});\n\ntype AccordionColors = {\n titleColor?: CSSProperties['color'];\n borderBottomColor?: CSSProperties['borderBottomColor'];\n};\n\nexport type AccordionProps = {\n /**\n * Maximum height of the accordion body element. This automatically makes the content of the\n * body element scrollable.\n */\n bodyMaxHeight?: number;\n /**\n * The content of the accordion body\n */\n children: ReactNode;\n /**\n * The icon that is displayed in front of the title\n */\n icon?: string;\n /**\n * This can be used to automatically expand the Accordion during the first render.\n */\n isDefaultOpen?: boolean;\n /**\n * This will disable the Accordion so that it cannot be opened and will gray out the title. Does not work with isOpened.\n */\n isDisabled?: boolean;\n /**\n * This can be used so that the Accordion cannot be opened or closed.\n * In addition, in this case the icon is exchanged to mark the Accordions.\n */\n isFixed?: boolean;\n /**\n * This can be used to open the Accordion from the outside\n */\n isOpened?: boolean;\n /**\n * This will gray out the title of the Accordion to indicate hidden content, for example.\n */\n isTitleGreyed?: boolean;\n /**\n * Function that is executed when the accordion body will be scrolled\n */\n onBodyScroll?: (event: UIEvent<HTMLDivElement>) => void;\n /**\n * Function that is executed when the accordion will be closed.\n */\n onClose?: VoidFunction;\n /**\n * Function to be executed when the accordion is no longer hovered.\n */\n onHoverEnd?: MouseEventHandler<HTMLDivElement>;\n /**\n * Function to be executed when the accordion is hovered.\n */\n onHoverStart?: MouseEventHandler<HTMLDivElement>;\n /**\n * Function that is executed when the accordion will be opened.\n */\n onOpen?: VoidFunction;\n /**\n * Function that is executed when the accordion body is animated\n */\n onBodyAnimationComplete?: VoidFunction;\n /**\n * Function that is executed when the text of the search in the accordion\n * head changes. When this function is given, the search field is displayed\n * in the Accordion Head.\n */\n onSearchChange?: ChangeEventHandler<HTMLInputElement>;\n /**\n * Function that is executed when the text of the search in the accordion\n * title changes. When this function is given, the search field is displayed\n * as the Accordion title.\n */\n onTitleInputChange?: ChangeEventHandler<HTMLInputElement>;\n /**\n * Content to be displayed on the right side in the head of the Accordion\n */\n rightElement?: ReactNode;\n /**\n * The placeholder to be used for the search\n */\n searchPlaceholder?: string;\n /**\n * The value that is displayed inside the search\n */\n searchValue?: string;\n /**\n * This will force the background color of the accordion to be used even if it is closed and not hovered.\n */\n shouldForceBackground?: boolean;\n /**\n * This will hide the background color of the accordion\n */\n shouldHideBackground?: boolean;\n /**\n * Whether the bottom line should be hidden.\n */\n shouldHideBottomLine?: boolean;\n /**\n * This will render the Accordion closed on the first render.\n */\n shouldRenderClosed?: boolean;\n /**\n * Whether the icon should be rotating.\n */\n shouldRotateIcon?: boolean;\n /**\n * Whether the animation should be skipped.\n * If 'isDefaultOpen' is true the initial animation will be skipped even this prop is false\n */\n shouldSkipAnimation?: boolean;\n /**\n * Title of the Accordion displayed in the head\n */\n title?: string;\n /**\n * Additional elements to be displayed in the header next to the title.\n */\n titleElement?: ReactNode;\n /**\n * The props of the title Input.\n */\n titleInputProps?: InputProps;\n /**\n * Provide custom colors to the Accordion Component\n */\n colors?: AccordionColors;\n /**\n * Whether the accordion should be indexed.\n */\n shouldIndex?: boolean;\n};\n\nconst Accordion: FC<AccordionProps> = ({\n bodyMaxHeight,\n children,\n icon,\n isDefaultOpen = false,\n isDisabled = false,\n isFixed = false,\n isOpened,\n isTitleGreyed = false,\n onBodyScroll,\n onClose,\n onHoverEnd,\n onHoverStart,\n onOpen,\n onSearchChange,\n rightElement,\n searchPlaceholder,\n searchValue,\n shouldForceBackground = false,\n shouldHideBackground = false,\n shouldRenderClosed = false,\n shouldRotateIcon = true,\n shouldHideBottomLine = false,\n title,\n titleElement,\n onTitleInputChange,\n titleInputProps,\n shouldSkipAnimation: shouldSkipAnimationProp = false,\n colors,\n shouldIndex = false,\n onBodyAnimationComplete,\n}) => {\n const {\n isWrapped: groupIsWrapped,\n openAccordionUuid,\n accordionGroupUuid,\n accordionUuids,\n updateOpenAccordionUuid,\n } = useContext(AccordionGroupContext);\n const { isWrapped: isParentWrapped } = useContext(AccordionContext);\n\n const { isWrapped: contextIsWrapped } = useContext(AccordionWrappedContext);\n const isWrapped = useMemo(\n () => groupIsWrapped ?? contextIsWrapped,\n [contextIsWrapped, groupIsWrapped],\n );\n\n const [isAccordionOpen, setIsAccordionOpen] = useState<boolean>(isDefaultOpen ?? isOpened);\n\n const uuid = useUuid();\n\n const isInitialRenderRef = useRef(true);\n\n const initialRenderSkipRef = useInitialRenderRef(true);\n\n const shouldSkipAnimation =\n shouldSkipAnimationProp ?? (initialRenderSkipRef.current && isDefaultOpen);\n\n const isInGroup = shouldSkipAnimation ? false : typeof updateOpenAccordionUuid === 'function';\n\n const isOpen = isInGroup ? openAccordionUuid === uuid : isAccordionOpen;\n\n const isOpenRef = useRef(isOpen);\n const onCloseRef = useRef(onClose);\n const onOpenRef = useRef(onOpen);\n\n const isLastAccordion = useMemo(\n () => (accordionUuids ? accordionUuids[accordionUuids.length - 1] === uuid : false),\n [accordionUuids, uuid],\n );\n\n useEffect(() => {\n isOpenRef.current = isOpen;\n onCloseRef.current = onClose;\n onOpenRef.current = onOpen;\n }, [isOpen, onClose, onOpen]);\n\n const handleHeadClick = useCallback(() => {\n if (isDisabled) {\n return;\n }\n\n if (typeof updateOpenAccordionUuid === 'function') {\n updateOpenAccordionUuid(uuid);\n }\n\n setIsAccordionOpen((currentIsAccordionOpen) => !currentIsAccordionOpen);\n }, [isDisabled, updateOpenAccordionUuid, uuid]);\n\n useEffect(() => {\n if (isDisabled && isOpen) {\n if (typeof updateOpenAccordionUuid === 'function') {\n updateOpenAccordionUuid(uuid);\n }\n\n setIsAccordionOpen((currentIsAccordionOpen) => !currentIsAccordionOpen);\n }\n }, [isDisabled, isOpen, updateOpenAccordionUuid, uuid]);\n\n useEffect(() => {\n if (isInitialRenderRef.current) {\n isInitialRenderRef.current = false;\n } else if (isOpen) {\n if (typeof onOpenRef.current === 'function') {\n onOpenRef.current();\n }\n } else if (typeof onCloseRef.current === 'function') {\n onCloseRef.current();\n }\n }, [isOpen]);\n\n useEffect(() => {\n if (isDefaultOpen) {\n if (typeof updateOpenAccordionUuid === 'function') {\n updateOpenAccordionUuid(uuid, { shouldOnlyOpen: true });\n } else {\n setIsAccordionOpen(true);\n }\n }\n }, [isDefaultOpen, updateOpenAccordionUuid, uuid]);\n\n useEffect(() => {\n if (typeof isOpened === 'boolean') {\n if (typeof updateOpenAccordionUuid === 'function' && isOpened !== isOpenRef.current) {\n updateOpenAccordionUuid(uuid);\n } else {\n setIsAccordionOpen(isOpened);\n }\n }\n }, [isOpened, updateOpenAccordionUuid, uuid]);\n\n const accordionContextProviderValue = useMemo(\n () => ({ isWrapped: isWrapped === true }),\n [isWrapped],\n );\n\n const areaContextProviderValue = useMemo(\n () => ({ shouldChangeColor: !shouldHideBackground }),\n [shouldHideBackground],\n );\n\n const accordionWrappedContextProviderValue = useMemo(() => ({ isWrapped: true }), []);\n\n const initialAnimation = useMemo(() => {\n if (shouldSkipAnimation) {\n return { height: 'auto', opacity: 1 };\n }\n\n return isOpen ? { height: 'auto', opacity: 1 } : { height: 0, opacity: 0 };\n }, [isOpen, shouldSkipAnimation]);\n\n return (\n <StyledMotionAccordion\n animate={{ height: 'auto', opacity: 1 }}\n data-uuid={`${accordionGroupUuid ?? ''}---${uuid}`}\n className=\"beta-chayns-accordion\"\n exit={{ height: 0, opacity: 0 }}\n initial={initialAnimation}\n $isOpen={isOpen}\n tabIndex={shouldIndex ? 0 : -1}\n $shouldShowLines={!isLastAccordion || !isWrapped}\n $isParentWrapped={isParentWrapped}\n $isWrapped={isWrapped}\n $shouldForceBackground={shouldForceBackground}\n $shouldHideBackground={shouldHideBackground}\n $shouldHideBottomLine={shouldHideBottomLine}\n $bottomBorderColor={colors?.borderBottomColor}\n onKeyDown={(e) => {\n if (\n (e.key === 'Enter' || e.key === ' ') &&\n (e.target as HTMLDivElement).className.includes('beta-chayns-accordion') &&\n shouldIndex\n ) {\n e.preventDefault();\n e.stopPropagation();\n handleHeadClick();\n }\n }}\n onMouseEnter={onHoverStart}\n onMouseLeave={onHoverEnd}\n transition={{ duration: shouldSkipAnimation ? 0 : 0.25 }}\n >\n <AccordionContext.Provider value={accordionContextProviderValue}>\n <MotionConfig transition={{ type: 'tween' }}>\n <AccordionHead\n uuid={uuid}\n icon={icon}\n isOpen={isOpen}\n shouldSkipAnimation={shouldSkipAnimation}\n isFixed={isFixed}\n isTitleGreyed={isTitleGreyed || isDisabled}\n isWrapped={isWrapped === true}\n onClick={handleHeadClick}\n onSearchChange={onSearchChange}\n rightElement={rightElement}\n searchPlaceholder={searchPlaceholder}\n searchValue={searchValue}\n shouldRotateIcon={shouldRotateIcon}\n title={title}\n titleElement={titleElement}\n onTitleInputChange={onTitleInputChange}\n titleInputProps={titleInputProps}\n titleColor={colors?.titleColor}\n />\n <AnimatePresence initial={false}>\n {(isOpen || shouldRenderClosed) && (\n <AccordionBody\n shouldSkipAnimation={shouldSkipAnimation}\n maxHeight={bodyMaxHeight}\n onScroll={onBodyScroll}\n onAnimationComplete={onBodyAnimationComplete}\n shouldHideBody={shouldRenderClosed && !isOpen}\n >\n <AccordionWrappedContext.Provider\n value={accordionWrappedContextProviderValue}\n >\n <AreaContext.Provider value={areaContextProviderValue}>\n {children}\n </AreaContext.Provider>\n </AccordionWrappedContext.Provider>\n </AccordionBody>\n )}\n </AnimatePresence>\n </MotionConfig>\n </AccordionContext.Provider>\n </StyledMotionAccordion>\n );\n};\n\nAccordion.displayName = 'Accordion';\n\nexport default Accordion;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Accordion.js","names":["AnimatePresence","MotionConfig","React","useCallback","useContext","useEffect","useMemo","useRef","useState","useUuid","useKeyboardFocusHighlighting","AreaContext","useColorScheme","AccordionBody","AccordionGroupContext","AccordionHead","AccordionWrappedContext","StyledMotionAccordion","useInitialRenderRef","AccordionContext","createContext","isWrapped","undefined","Accordion","bodyMaxHeight","children","icon","isDefaultOpen","isDisabled","isFixed","isOpened","isTitleGreyed","onBodyScroll","onClose","onHoverEnd","onHoverStart","onOpen","onSearchChange","rightElement","searchPlaceholder","searchValue","shouldForceBackground","shouldHideBackground","shouldRenderClosed","shouldRotateIcon","shouldHideBottomLine","title","titleElement","onTitleInputChange","titleInputProps","shouldSkipAnimation","shouldSkipAnimationProp","colors","shouldIndex","onBodyAnimationComplete","shouldEnableKeyboardHighlighting","groupIsWrapped","openAccordionUuid","accordionGroupUuid","accordionUuids","updateOpenAccordionUuid","activeAccordionUuid","updateActiveAccordionUuid","registerAccordionUuid","unregisterAccordionUuid","isParentWrapped","contextIsWrapped","colorScheme","shouldEnableKeyboardHighlightingEffective","isAccordionOpen","setIsAccordionOpen","isGroupFocusWithin","setIsGroupFocusWithin","uuid","isInitialRenderRef","initialRenderSkipRef","current","isInGroup","isOpen","isOpenRef","onCloseRef","onOpenRef","shouldShowKeyboardHighlighting","isKeyboardFocusable","isInKeyboardNavigationGroup","isLastAccordion","length","handleHeadClick","currentIsAccordionOpen","shouldOnlyOpen","accordionContextProviderValue","areaContextProviderValue","shouldChangeColor","accordionWrappedContextProviderValue","initialAnimation","height","opacity","tabIndex","handleKeyDown","e","isCurrentAccordionTarget","currentTarget","target","key","currentIndex","indexOf","nextIndex","nextAccordionUuid","nextAccordionElement","document","querySelector","focus","preventDefault","parentAccordion","parentElement","closest","parentGroupId","getAttribute","split","handleFocus","handleBlur","nextFocusedElement","relatedTarget","currentGroupElement","contains","createElement","animate","className","exit","initial","$isOpen","$shouldShowLines","$isParentWrapped","$isWrapped","$shouldForceBackground","$shouldHideBackground","$shouldHideBottomLine","$bottomBorderColor","borderBottomColor","$shouldEnableKeyboardHighlighting","$shouldShowKeyboardHighlighting","onKeyDown","onFocus","onBlur","onMouseEnter","onMouseLeave","transition","duration","Provider","value","type","onClick","titleColor","maxHeight","onScroll","onAnimationComplete","shouldHideBody","displayName"],"sources":["../../../../src/components/accordion/Accordion.tsx"],"sourcesContent":["import { AnimatePresence, MotionConfig } from 'motion/react';\nimport React, {\n ChangeEventHandler,\n type CSSProperties,\n FC,\n type MouseEventHandler,\n ReactNode,\n UIEvent,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n KeyboardEvent,\n FocusEvent,\n} from 'react';\nimport { useUuid } from '../../hooks/uuid';\nimport { useKeyboardFocusHighlighting } from '../../hooks/useKeyboardFocusHighlighting';\nimport { AreaContext } from '../area-provider/AreaContextProvider';\nimport { useColorScheme } from '../color-scheme-provider/ColorSchemeProvider';\nimport type { InputProps } from '../input/Input';\nimport AccordionBody from './accordion-body/AccordionBody';\nimport { AccordionGroupContext } from './accordion-group/AccordionGroup';\nimport AccordionHead from './accordion-head/AccordionHead';\nimport { AccordionWrappedContext } from './accordion-provider/AccordionContextProvider';\nimport { StyledMotionAccordion } from './Accordion.styles';\nimport { useInitialRenderRef } from '../../hooks/ref';\n\nexport const AccordionContext = React.createContext<{ isWrapped?: boolean }>({\n isWrapped: undefined,\n});\n\ntype AccordionColors = {\n titleColor?: CSSProperties['color'];\n borderBottomColor?: CSSProperties['borderBottomColor'];\n};\n\nexport type AccordionProps = {\n /**\n * Maximum height of the accordion body element. This automatically makes the content of the\n * body element scrollable.\n */\n bodyMaxHeight?: number;\n /**\n * The content of the accordion body\n */\n children: ReactNode;\n /**\n * The icon that is displayed in front of the title\n */\n icon?: string;\n /**\n * This can be used to automatically expand the Accordion during the first render.\n */\n isDefaultOpen?: boolean;\n /**\n * This will disable the Accordion so that it cannot be opened and will gray out the title. Does not work with isOpened.\n */\n isDisabled?: boolean;\n /**\n * This can be used so that the Accordion cannot be opened or closed.\n * In addition, in this case the icon is exchanged to mark the Accordions.\n */\n isFixed?: boolean;\n /**\n * This can be used to open the Accordion from the outside\n */\n isOpened?: boolean;\n /**\n * This will gray out the title of the Accordion to indicate hidden content, for example.\n */\n isTitleGreyed?: boolean;\n /**\n * Function that is executed when the accordion body will be scrolled\n */\n onBodyScroll?: (event: UIEvent<HTMLDivElement>) => void;\n /**\n * Function that is executed when the accordion will be closed.\n */\n onClose?: VoidFunction;\n /**\n * Function to be executed when the accordion is no longer hovered.\n */\n onHoverEnd?: MouseEventHandler<HTMLDivElement>;\n /**\n * Function to be executed when the accordion is hovered.\n */\n onHoverStart?: MouseEventHandler<HTMLDivElement>;\n /**\n * Function that is executed when the accordion will be opened.\n */\n onOpen?: VoidFunction;\n /**\n * Function that is executed when the accordion body is animated\n */\n onBodyAnimationComplete?: VoidFunction;\n /**\n * Function that is executed when the text of the search in the accordion\n * head changes. When this function is given, the search field is displayed\n * in the Accordion Head.\n */\n onSearchChange?: ChangeEventHandler<HTMLInputElement>;\n /**\n * Function that is executed when the text of the search in the accordion\n * title changes. When this function is given, the search field is displayed\n * as the Accordion title.\n */\n onTitleInputChange?: ChangeEventHandler<HTMLInputElement>;\n /**\n * Content to be displayed on the right side in the head of the Accordion\n */\n rightElement?: ReactNode;\n /**\n * The placeholder to be used for the search\n */\n searchPlaceholder?: string;\n /**\n * The value that is displayed inside the search\n */\n searchValue?: string;\n /**\n * This will force the background color of the accordion to be used even if it is closed and not hovered.\n */\n shouldForceBackground?: boolean;\n /**\n * This will hide the background color of the accordion\n */\n shouldHideBackground?: boolean;\n /**\n * Whether the bottom line should be hidden.\n */\n shouldHideBottomLine?: boolean;\n /**\n * This will render the Accordion closed on the first render.\n */\n shouldRenderClosed?: boolean;\n /**\n * Whether the icon should be rotating.\n */\n shouldRotateIcon?: boolean;\n /**\n * Whether the animation should be skipped.\n * If 'isDefaultOpen' is true the initial animation will be skipped even this prop is false\n */\n shouldSkipAnimation?: boolean;\n /**\n * Title of the Accordion displayed in the head\n */\n title?: string;\n /**\n * Additional elements to be displayed in the header next to the title.\n */\n titleElement?: ReactNode;\n /**\n * The props of the title Input.\n */\n titleInputProps?: InputProps;\n /**\n * Provide custom colors to the Accordion Component\n */\n colors?: AccordionColors;\n /**\n * Whether the accordion should be indexed.\n */\n shouldIndex?: boolean;\n /**\n * Enables keyboard-only focus highlighting. The highlighting is only visible while the\n * user navigates with the keyboard and is reset on mouse movement or click.\n */\n shouldEnableKeyboardHighlighting?: boolean;\n};\n\nconst Accordion: FC<AccordionProps> = ({\n bodyMaxHeight,\n children,\n icon,\n isDefaultOpen = false,\n isDisabled = false,\n isFixed = false,\n isOpened,\n isTitleGreyed = false,\n onBodyScroll,\n onClose,\n onHoverEnd,\n onHoverStart,\n onOpen,\n onSearchChange,\n rightElement,\n searchPlaceholder,\n searchValue,\n shouldForceBackground = false,\n shouldHideBackground = false,\n shouldRenderClosed = false,\n shouldRotateIcon = true,\n shouldHideBottomLine = false,\n title,\n titleElement,\n onTitleInputChange,\n titleInputProps,\n shouldSkipAnimation: shouldSkipAnimationProp = false,\n colors,\n shouldIndex = false,\n onBodyAnimationComplete,\n shouldEnableKeyboardHighlighting,\n}) => {\n const {\n isWrapped: groupIsWrapped,\n openAccordionUuid,\n accordionGroupUuid,\n accordionUuids,\n updateOpenAccordionUuid,\n activeAccordionUuid,\n updateActiveAccordionUuid,\n registerAccordionUuid,\n unregisterAccordionUuid,\n } = useContext(AccordionGroupContext);\n const { isWrapped: isParentWrapped } = useContext(AccordionContext);\n\n const { isWrapped: contextIsWrapped } = useContext(AccordionWrappedContext);\n const colorScheme = useColorScheme();\n const shouldEnableKeyboardHighlightingEffective =\n shouldEnableKeyboardHighlighting ?? colorScheme?.shouldEnableKeyboardHighlighting ?? false;\n\n const isWrapped = useMemo(\n () => groupIsWrapped ?? contextIsWrapped,\n [contextIsWrapped, groupIsWrapped],\n );\n\n const [isAccordionOpen, setIsAccordionOpen] = useState<boolean>(isDefaultOpen ?? isOpened);\n const [isGroupFocusWithin, setIsGroupFocusWithin] = useState(false);\n\n const uuid = useUuid();\n\n const isInitialRenderRef = useRef(true);\n\n const initialRenderSkipRef = useInitialRenderRef(true);\n\n const shouldSkipAnimation =\n shouldSkipAnimationProp ?? (initialRenderSkipRef.current && isDefaultOpen);\n\n const isInGroup = shouldSkipAnimation ? false : typeof updateOpenAccordionUuid === 'function';\n\n const isOpen = isInGroup ? openAccordionUuid === uuid : isAccordionOpen;\n\n const isOpenRef = useRef(isOpen);\n const onCloseRef = useRef(onClose);\n const onOpenRef = useRef(onOpen);\n const shouldShowKeyboardHighlighting = useKeyboardFocusHighlighting(\n shouldEnableKeyboardHighlightingEffective,\n );\n const isKeyboardFocusable =\n !isDisabled && (shouldIndex || shouldEnableKeyboardHighlightingEffective);\n\n const isInKeyboardNavigationGroup =\n isKeyboardFocusable &&\n typeof updateActiveAccordionUuid === 'function' &&\n typeof accordionGroupUuid === 'string';\n\n useEffect(() => {\n if (\n typeof accordionGroupUuid === 'string' &&\n typeof registerAccordionUuid === 'function' &&\n typeof unregisterAccordionUuid === 'function'\n ) {\n registerAccordionUuid(uuid);\n\n return () => {\n unregisterAccordionUuid(uuid);\n };\n }\n\n return undefined;\n }, [accordionGroupUuid, registerAccordionUuid, unregisterAccordionUuid, uuid]);\n\n const isLastAccordion = useMemo(\n () => (accordionUuids ? accordionUuids[accordionUuids.length - 1] === uuid : false),\n [accordionUuids, uuid],\n );\n\n useEffect(() => {\n isOpenRef.current = isOpen;\n onCloseRef.current = onClose;\n onOpenRef.current = onOpen;\n }, [isOpen, onClose, onOpen]);\n\n const handleHeadClick = useCallback(() => {\n if (isDisabled) {\n return;\n }\n\n if (isKeyboardFocusable && typeof updateActiveAccordionUuid === 'function') {\n updateActiveAccordionUuid(uuid);\n }\n\n if (typeof updateOpenAccordionUuid === 'function') {\n updateOpenAccordionUuid(uuid);\n }\n\n setIsAccordionOpen((currentIsAccordionOpen) => !currentIsAccordionOpen);\n }, [isDisabled, isKeyboardFocusable, updateActiveAccordionUuid, updateOpenAccordionUuid, uuid]);\n\n useEffect(() => {\n if (isDisabled && isOpen) {\n if (typeof updateOpenAccordionUuid === 'function') {\n updateOpenAccordionUuid(uuid);\n }\n\n setIsAccordionOpen((currentIsAccordionOpen) => !currentIsAccordionOpen);\n }\n }, [isDisabled, isOpen, updateOpenAccordionUuid, uuid]);\n\n useEffect(() => {\n if (isInitialRenderRef.current) {\n isInitialRenderRef.current = false;\n } else if (isOpen) {\n if (typeof onOpenRef.current === 'function') {\n onOpenRef.current();\n }\n } else if (typeof onCloseRef.current === 'function') {\n onCloseRef.current();\n }\n }, [isOpen]);\n\n useEffect(() => {\n if (isDefaultOpen) {\n if (typeof updateOpenAccordionUuid === 'function') {\n updateOpenAccordionUuid(uuid, { shouldOnlyOpen: true });\n } else {\n setIsAccordionOpen(true);\n }\n }\n }, [isDefaultOpen, updateOpenAccordionUuid, uuid]);\n\n useEffect(() => {\n if (typeof isOpened === 'boolean') {\n if (typeof updateOpenAccordionUuid === 'function' && isOpened !== isOpenRef.current) {\n updateOpenAccordionUuid(uuid);\n } else {\n setIsAccordionOpen(isOpened);\n }\n }\n }, [isOpened, updateOpenAccordionUuid, uuid]);\n\n const accordionContextProviderValue = useMemo(\n () => ({ isWrapped: isWrapped === true }),\n [isWrapped],\n );\n\n const areaContextProviderValue = useMemo(\n () => ({ shouldChangeColor: !shouldHideBackground }),\n [shouldHideBackground],\n );\n\n const accordionWrappedContextProviderValue = useMemo(() => ({ isWrapped: true }), []);\n\n const initialAnimation = useMemo(() => {\n if (shouldSkipAnimation) {\n return { height: 'auto', opacity: 1 };\n }\n\n return isOpen ? { height: 'auto', opacity: 1 } : { height: 0, opacity: 0 };\n }, [isOpen, shouldSkipAnimation]);\n\n const tabIndex = useMemo(() => (isKeyboardFocusable ? 0 : -1), [isKeyboardFocusable]);\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLDivElement>) => {\n const isCurrentAccordionTarget = e.currentTarget === e.target;\n\n if (\n isCurrentAccordionTarget &&\n isInKeyboardNavigationGroup &&\n accordionUuids?.length &&\n (e.key === 'ArrowDown' || e.key === 'ArrowUp')\n ) {\n const currentIndex = accordionUuids.indexOf(uuid);\n\n if (currentIndex !== -1) {\n const nextIndex =\n e.key === 'ArrowDown'\n ? (currentIndex + 1) % accordionUuids.length\n : (currentIndex - 1 + accordionUuids.length) % accordionUuids.length;\n const nextAccordionUuid = accordionUuids[nextIndex];\n\n if (nextAccordionUuid && nextAccordionUuid !== uuid) {\n const nextAccordionElement = document.querySelector<HTMLDivElement>(\n `[data-uuid=\"${accordionGroupUuid}---${nextAccordionUuid}\"]`,\n );\n\n if (nextAccordionElement) {\n updateActiveAccordionUuid(nextAccordionUuid);\n nextAccordionElement.focus();\n return;\n }\n }\n }\n }\n\n if (\n isCurrentAccordionTarget &&\n (e.key === 'Enter' || e.key === ' ') &&\n isKeyboardFocusable\n ) {\n handleHeadClick();\n }\n\n if (\n isCurrentAccordionTarget &&\n e.key === 'ArrowRight' &&\n isKeyboardFocusable &&\n !isOpen\n ) {\n e.preventDefault();\n handleHeadClick();\n }\n\n if (isCurrentAccordionTarget && (e.key === 'Escape' || e.key === 'ArrowLeft')) {\n if (isOpen && isKeyboardFocusable) {\n e.preventDefault();\n handleHeadClick();\n return;\n }\n\n if (\n isInKeyboardNavigationGroup &&\n typeof updateActiveAccordionUuid === 'function'\n ) {\n e.preventDefault();\n updateActiveAccordionUuid(undefined);\n let parentAccordion =\n e.currentTarget.parentElement?.closest<HTMLElement>(\n '.beta-chayns-accordion',\n );\n while (parentAccordion) {\n const parentGroupId = parentAccordion\n .getAttribute('data-uuid')\n ?.split('---')[0];\n if (parentGroupId !== accordionGroupUuid) {\n parentAccordion.focus();\n break;\n }\n parentAccordion =\n parentAccordion.parentElement?.closest<HTMLElement>(\n '.beta-chayns-accordion',\n );\n }\n }\n }\n },\n [\n accordionGroupUuid,\n accordionUuids,\n handleHeadClick,\n isInKeyboardNavigationGroup,\n isKeyboardFocusable,\n isOpen,\n updateActiveAccordionUuid,\n uuid,\n ],\n );\n\n const handleFocus = useCallback(\n (e: FocusEvent<HTMLDivElement>) => {\n if (\n e.currentTarget === e.target &&\n isInKeyboardNavigationGroup &&\n typeof updateActiveAccordionUuid === 'function'\n ) {\n setIsGroupFocusWithin(true);\n updateActiveAccordionUuid(uuid);\n }\n },\n [isInKeyboardNavigationGroup, updateActiveAccordionUuid, uuid],\n );\n\n const handleBlur = useCallback(\n (e: FocusEvent<HTMLDivElement>) => {\n if (\n isInKeyboardNavigationGroup &&\n typeof updateActiveAccordionUuid === 'function' &&\n typeof accordionGroupUuid === 'string'\n ) {\n const nextFocusedElement = e.relatedTarget as Node | null;\n const currentGroupElement = e.currentTarget as HTMLElement;\n\n if (!nextFocusedElement || !currentGroupElement.contains(nextFocusedElement)) {\n setIsGroupFocusWithin(false);\n updateActiveAccordionUuid(undefined);\n }\n }\n },\n [accordionGroupUuid, isInKeyboardNavigationGroup, updateActiveAccordionUuid],\n );\n\n useEffect(() => {\n if (!isInKeyboardNavigationGroup) {\n setIsGroupFocusWithin(false);\n } else if (\n activeAccordionUuid == null &&\n typeof updateActiveAccordionUuid === 'function' &&\n accordionUuids?.[0] === uuid\n ) {\n updateActiveAccordionUuid(uuid);\n }\n }, [\n accordionUuids,\n activeAccordionUuid,\n isInKeyboardNavigationGroup,\n updateActiveAccordionUuid,\n uuid,\n ]);\n\n return (\n <StyledMotionAccordion\n animate={{ height: 'auto', opacity: 1 }}\n data-uuid={`${accordionGroupUuid ?? ''}---${uuid}`}\n className=\"beta-chayns-accordion\"\n exit={{ height: 0, opacity: 0 }}\n initial={initialAnimation}\n $isOpen={isOpen}\n tabIndex={tabIndex}\n $shouldShowLines={!isLastAccordion || !isWrapped}\n $isParentWrapped={isParentWrapped}\n $isWrapped={isWrapped}\n $shouldForceBackground={shouldForceBackground}\n $shouldHideBackground={shouldHideBackground}\n $shouldHideBottomLine={shouldHideBottomLine}\n $bottomBorderColor={colors?.borderBottomColor}\n $shouldEnableKeyboardHighlighting={shouldEnableKeyboardHighlightingEffective}\n $shouldShowKeyboardHighlighting={shouldShowKeyboardHighlighting}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onMouseEnter={onHoverStart}\n onMouseLeave={onHoverEnd}\n transition={{ duration: shouldSkipAnimation ? 0 : 0.25 }}\n >\n <AccordionContext.Provider value={accordionContextProviderValue}>\n <MotionConfig transition={{ type: 'tween' }}>\n <AccordionHead\n uuid={uuid}\n icon={icon}\n isOpen={isOpen}\n shouldSkipAnimation={shouldSkipAnimation}\n isFixed={isFixed}\n isTitleGreyed={isTitleGreyed || isDisabled}\n isWrapped={isWrapped === true}\n onClick={handleHeadClick}\n onSearchChange={onSearchChange}\n rightElement={rightElement}\n searchPlaceholder={searchPlaceholder}\n searchValue={searchValue}\n shouldRotateIcon={shouldRotateIcon}\n title={title}\n titleElement={titleElement}\n onTitleInputChange={onTitleInputChange}\n titleInputProps={titleInputProps}\n titleColor={colors?.titleColor}\n shouldEnableKeyboardHighlighting={shouldEnableKeyboardHighlightingEffective}\n />\n <AnimatePresence initial={false}>\n {(isOpen || shouldRenderClosed) && (\n <AccordionBody\n shouldSkipAnimation={shouldSkipAnimation}\n maxHeight={bodyMaxHeight}\n onScroll={onBodyScroll}\n onAnimationComplete={onBodyAnimationComplete}\n shouldHideBody={shouldRenderClosed && !isOpen}\n >\n <AccordionWrappedContext.Provider\n value={accordionWrappedContextProviderValue}\n >\n <AreaContext.Provider value={areaContextProviderValue}>\n {children}\n </AreaContext.Provider>\n </AccordionWrappedContext.Provider>\n </AccordionBody>\n )}\n </AnimatePresence>\n </MotionConfig>\n </AccordionContext.Provider>\n </StyledMotionAccordion>\n );\n};\n\nAccordion.displayName = 'Accordion';\n\nexport default Accordion;\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  import { motion } from 'motion/react';
2
2
  import styled, { css } from 'styled-components';
3
+ import { keyboardFocusHighlightingRingCss } from '../../utils/keyboardFocusHighlighting.styles';
3
4
  export const StyledMotionAccordion = styled(motion.div)`
4
5
  ${({
5
6
  $isOpen,
@@ -69,12 +70,31 @@ export const StyledMotionAccordion = styled(motion.div)`
69
70
  ${({
70
71
  $isWrapped,
71
72
  $shouldHideBackground,
72
- theme
73
+ theme,
74
+ $shouldEnableKeyboardHighlighting
73
75
  }) => !$isWrapped && !$shouldHideBackground && css`
74
- &:hover,
75
- &:focus-visible {
76
+ &:hover {
76
77
  background-color: rgba(${theme['100-rgb']}, ${theme.cardBackgroundOpacity});
77
78
  }
79
+ ${!$shouldEnableKeyboardHighlighting ? css`
80
+ &:focus-visible {
81
+ background-color: rgba(
82
+ ${theme['100-rgb']},
83
+ ${theme.cardBackgroundOpacity}
84
+ );
85
+ }
86
+ ` : null}
87
+ `};
88
+
89
+ ${({
90
+ $shouldEnableKeyboardHighlighting,
91
+ $shouldShowKeyboardHighlighting,
92
+ $shouldHideBackground
93
+ }) => $shouldEnableKeyboardHighlighting && $shouldShowKeyboardHighlighting && !$shouldHideBackground && css`
94
+ &:focus-visible {
95
+ transition: none;
96
+ ${keyboardFocusHighlightingRingCss};
97
+ }
78
98
  `};
79
99
  `;
80
100
  //# sourceMappingURL=Accordion.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.styles.js","names":["motion","styled","css","StyledMotionAccordion","div","$isOpen","$isWrapped","$shouldForceBackground","$shouldHideBackground","theme","cardBackgroundOpacity","cardBorderRadius","cardShadow","accordionLines","$shouldShowLines","$shouldHideBottomLine","$bottomBorderColor","undefined","shouldShowBottomBorder","$isParentWrapped"],"sources":["../../../../src/components/accordion/Accordion.styles.ts"],"sourcesContent":["import { motion } from 'motion/react';\nimport styled, { css } from 'styled-components';\nimport type { WithTheme } from '../color-scheme-provider/ColorSchemeProvider';\n\ntype StyledMotionAccordionProps = WithTheme<{\n $isOpen: boolean;\n $isParentWrapped?: boolean;\n $isWrapped?: boolean;\n $shouldForceBackground?: boolean;\n $shouldHideBackground?: boolean;\n $shouldShowLines?: boolean;\n $shouldHideBottomLine: boolean;\n $bottomBorderColor?: string;\n}>;\n\nexport const StyledMotionAccordion = styled(motion.div)<StyledMotionAccordionProps>`\n ${({\n $isOpen,\n $isWrapped,\n $shouldForceBackground,\n $shouldHideBackground,\n theme,\n }: StyledMotionAccordionProps) =>\n ($isOpen || $shouldForceBackground) &&\n !$isWrapped &&\n !$shouldHideBackground &&\n css`\n background-color: rgba(${theme['100-rgb']}, ${theme.cardBackgroundOpacity});\n border-radius: ${theme.cardBorderRadius}px;\n box-shadow: 0 2px 6px 0 rgba(0, 0, 0, ${theme.cardShadow});\n `}\n\n ${({ theme }: StyledMotionAccordionProps) =>\n theme.accordionLines &&\n css`\n border-bottom: 1px solid transparent;\n `}\n\n margin-bottom: ${({ $isOpen, $isWrapped }: StyledMotionAccordionProps) =>\n $isOpen && !$isWrapped ? '30px' : '0px'};\n transition:\n background-color 0.3s ease,\n border-bottom-color 0.3s ease,\n border-radius 0.3s ease,\n box-shadow 0.3s ease,\n margin-bottom 0.3s ease;\n will-change: unset !important;\n\n margin-top: 10px;\n\n ${({\n $isOpen,\n $isWrapped,\n $shouldForceBackground,\n $shouldShowLines,\n $shouldHideBottomLine,\n theme,\n $bottomBorderColor,\n }: StyledMotionAccordionProps) => {\n if ($shouldForceBackground || $shouldHideBottomLine) return undefined;\n const shouldShowBottomBorder =\n theme.accordionLines && $shouldShowLines && ($isWrapped || !$isOpen);\n\n if ($bottomBorderColor && shouldShowBottomBorder)\n return css`\n border-bottom-color: ${$bottomBorderColor};\n `;\n\n if (shouldShowBottomBorder) {\n return css`\n border-bottom-color: rgba(${theme['headline-rgb']}, 1);\n `;\n }\n\n return undefined;\n }}\n ${({ $isParentWrapped }: StyledMotionAccordionProps) =>\n $isParentWrapped &&\n css`\n padding-left: 17px;\n `}\n ${({ $isWrapped }: StyledMotionAccordionProps) =>\n !$isWrapped\n ? css`\n margin-top: 5px;\n `\n : css`\n margin: 0;\n `}\n ${({ $isWrapped, $shouldHideBackground, theme }: StyledMotionAccordionProps) =>\n !$isWrapped &&\n !$shouldHideBackground &&\n css`\n &:hover,\n &:focus-visible {\n background-color: rgba(${theme['100-rgb']}, ${theme.cardBackgroundOpacity});\n }\n `};\n`;\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,cAAc;AACrC,OAAOC,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAc/C,OAAO,MAAMC,qBAAqB,GAAGF,MAAM,CAACD,MAAM,CAACI,GAAG,CAA6B;AACnF,MAAM,CAAC;EACCC,OAAO;EACPC,UAAU;EACVC,sBAAsB;EACtBC,qBAAqB;EACrBC;AACwB,CAAC,KACzB,CAACJ,OAAO,IAAIE,sBAAsB,KAClC,CAACD,UAAU,IACX,CAACE,qBAAqB,IACtBN,GAAG;AACX,qCAAqCO,KAAK,CAAC,SAAS,CAAC,KAAKA,KAAK,CAACC,qBAAqB;AACrF,6BAA6BD,KAAK,CAACE,gBAAgB;AACnD,oDAAoDF,KAAK,CAACG,UAAU;AACpE,SAAS;AACT;AACA,MAAM,CAAC;EAAEH;AAAkC,CAAC,KACpCA,KAAK,CAACI,cAAc,IACpBX,GAAG;AACX;AACA,SAAS;AACT;AACA,qBAAqB,CAAC;EAAEG,OAAO;EAAEC;AAAuC,CAAC,KACjED,OAAO,IAAI,CAACC,UAAU,GAAG,MAAM,GAAG,KAAK;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,CAAC;EACCD,OAAO;EACPC,UAAU;EACVC,sBAAsB;EACtBO,gBAAgB;EAChBC,qBAAqB;EACrBN,KAAK;EACLO;AACwB,CAAC,KAAK;EAC9B,IAAIT,sBAAsB,IAAIQ,qBAAqB,EAAE,OAAOE,SAAS;EACrE,MAAMC,sBAAsB,GACxBT,KAAK,CAACI,cAAc,IAAIC,gBAAgB,KAAKR,UAAU,IAAI,CAACD,OAAO,CAAC;EAExE,IAAIW,kBAAkB,IAAIE,sBAAsB,EAC5C,OAAOhB,GAAG;AACtB,uCAAuCc,kBAAkB;AACzD,aAAa;EAEL,IAAIE,sBAAsB,EAAE;IACxB,OAAOhB,GAAG;AACtB,4CAA4CO,KAAK,CAAC,cAAc,CAAC;AACjE,aAAa;EACL;EAEA,OAAOQ,SAAS;AACpB,CAAC;AACL,MAAM,CAAC;EAAEE;AAA6C,CAAC,KAC/CA,gBAAgB,IAChBjB,GAAG;AACX;AACA,SAAS;AACT,MAAM,CAAC;EAAEI;AAAuC,CAAC,KACzC,CAACA,UAAU,GACLJ,GAAG;AACjB;AACA,eAAe,GACDA,GAAG;AACjB;AACA,eAAe;AACf,MAAM,CAAC;EAAEI,UAAU;EAAEE,qBAAqB;EAAEC;AAAkC,CAAC,KACvE,CAACH,UAAU,IACX,CAACE,qBAAqB,IACtBN,GAAG;AACX;AACA;AACA,yCAAyCO,KAAK,CAAC,SAAS,CAAC,KAAKA,KAAK,CAACC,qBAAqB;AACzF;AACA,SAAS;AACT,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"Accordion.styles.js","names":["motion","styled","css","keyboardFocusHighlightingRingCss","StyledMotionAccordion","div","$isOpen","$isWrapped","$shouldForceBackground","$shouldHideBackground","theme","cardBackgroundOpacity","cardBorderRadius","cardShadow","accordionLines","$shouldShowLines","$shouldHideBottomLine","$bottomBorderColor","undefined","shouldShowBottomBorder","$isParentWrapped","$shouldEnableKeyboardHighlighting","$shouldShowKeyboardHighlighting"],"sources":["../../../../src/components/accordion/Accordion.styles.ts"],"sourcesContent":["import { motion } from 'motion/react';\nimport styled, { css } from 'styled-components';\nimport type { WithTheme } from '../color-scheme-provider/ColorSchemeProvider';\nimport { keyboardFocusHighlightingRingCss } from '../../utils/keyboardFocusHighlighting.styles';\n\ntype StyledMotionAccordionProps = WithTheme<{\n $isOpen: boolean;\n $isParentWrapped?: boolean;\n $isWrapped?: boolean;\n $shouldForceBackground?: boolean;\n $shouldHideBackground?: boolean;\n $shouldShowLines?: boolean;\n $shouldHideBottomLine: boolean;\n $bottomBorderColor?: string;\n $shouldEnableKeyboardHighlighting?: boolean;\n $shouldShowKeyboardHighlighting?: boolean;\n}>;\n\nexport const StyledMotionAccordion = styled(motion.div)<StyledMotionAccordionProps>`\n ${({\n $isOpen,\n $isWrapped,\n $shouldForceBackground,\n $shouldHideBackground,\n theme,\n }: StyledMotionAccordionProps) =>\n ($isOpen || $shouldForceBackground) &&\n !$isWrapped &&\n !$shouldHideBackground &&\n css`\n background-color: rgba(${theme['100-rgb']}, ${theme.cardBackgroundOpacity});\n border-radius: ${theme.cardBorderRadius}px;\n box-shadow: 0 2px 6px 0 rgba(0, 0, 0, ${theme.cardShadow});\n `}\n\n ${({ theme }: StyledMotionAccordionProps) =>\n theme.accordionLines &&\n css`\n border-bottom: 1px solid transparent;\n `}\n\n margin-bottom: ${({ $isOpen, $isWrapped }: StyledMotionAccordionProps) =>\n $isOpen && !$isWrapped ? '30px' : '0px'};\n transition:\n background-color 0.3s ease,\n border-bottom-color 0.3s ease,\n border-radius 0.3s ease,\n box-shadow 0.3s ease,\n margin-bottom 0.3s ease;\n will-change: unset !important;\n\n margin-top: 10px;\n\n ${({\n $isOpen,\n $isWrapped,\n $shouldForceBackground,\n $shouldShowLines,\n $shouldHideBottomLine,\n theme,\n $bottomBorderColor,\n }: StyledMotionAccordionProps) => {\n if ($shouldForceBackground || $shouldHideBottomLine) return undefined;\n const shouldShowBottomBorder =\n theme.accordionLines && $shouldShowLines && ($isWrapped || !$isOpen);\n\n if ($bottomBorderColor && shouldShowBottomBorder)\n return css`\n border-bottom-color: ${$bottomBorderColor};\n `;\n\n if (shouldShowBottomBorder) {\n return css`\n border-bottom-color: rgba(${theme['headline-rgb']}, 1);\n `;\n }\n\n return undefined;\n }}\n ${({ $isParentWrapped }: StyledMotionAccordionProps) =>\n $isParentWrapped &&\n css`\n padding-left: 17px;\n `}\n ${({ $isWrapped }: StyledMotionAccordionProps) =>\n !$isWrapped\n ? css`\n margin-top: 5px;\n `\n : css`\n margin: 0;\n `}\n ${({\n $isWrapped,\n $shouldHideBackground,\n theme,\n $shouldEnableKeyboardHighlighting,\n }: StyledMotionAccordionProps) =>\n !$isWrapped &&\n !$shouldHideBackground &&\n css`\n &:hover {\n background-color: rgba(${theme['100-rgb']}, ${theme.cardBackgroundOpacity});\n }\n ${!$shouldEnableKeyboardHighlighting\n ? css`\n &:focus-visible {\n background-color: rgba(\n ${theme['100-rgb']},\n ${theme.cardBackgroundOpacity}\n );\n }\n `\n : null}\n `};\n\n ${({\n $shouldEnableKeyboardHighlighting,\n $shouldShowKeyboardHighlighting,\n $shouldHideBackground,\n }: StyledMotionAccordionProps) =>\n $shouldEnableKeyboardHighlighting &&\n $shouldShowKeyboardHighlighting &&\n !$shouldHideBackground &&\n css`\n &:focus-visible {\n transition: none;\n ${keyboardFocusHighlightingRingCss};\n }\n `};\n`;\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,cAAc;AACrC,OAAOC,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAE/C,SAASC,gCAAgC,QAAQ,8CAA8C;AAe/F,OAAO,MAAMC,qBAAqB,GAAGH,MAAM,CAACD,MAAM,CAACK,GAAG,CAA6B;AACnF,MAAM,CAAC;EACCC,OAAO;EACPC,UAAU;EACVC,sBAAsB;EACtBC,qBAAqB;EACrBC;AACwB,CAAC,KACzB,CAACJ,OAAO,IAAIE,sBAAsB,KAClC,CAACD,UAAU,IACX,CAACE,qBAAqB,IACtBP,GAAG;AACX,qCAAqCQ,KAAK,CAAC,SAAS,CAAC,KAAKA,KAAK,CAACC,qBAAqB;AACrF,6BAA6BD,KAAK,CAACE,gBAAgB;AACnD,oDAAoDF,KAAK,CAACG,UAAU;AACpE,SAAS;AACT;AACA,MAAM,CAAC;EAAEH;AAAkC,CAAC,KACpCA,KAAK,CAACI,cAAc,IACpBZ,GAAG;AACX;AACA,SAAS;AACT;AACA,qBAAqB,CAAC;EAAEI,OAAO;EAAEC;AAAuC,CAAC,KACjED,OAAO,IAAI,CAACC,UAAU,GAAG,MAAM,GAAG,KAAK;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,CAAC;EACCD,OAAO;EACPC,UAAU;EACVC,sBAAsB;EACtBO,gBAAgB;EAChBC,qBAAqB;EACrBN,KAAK;EACLO;AACwB,CAAC,KAAK;EAC9B,IAAIT,sBAAsB,IAAIQ,qBAAqB,EAAE,OAAOE,SAAS;EACrE,MAAMC,sBAAsB,GACxBT,KAAK,CAACI,cAAc,IAAIC,gBAAgB,KAAKR,UAAU,IAAI,CAACD,OAAO,CAAC;EAExE,IAAIW,kBAAkB,IAAIE,sBAAsB,EAC5C,OAAOjB,GAAG;AACtB,uCAAuCe,kBAAkB;AACzD,aAAa;EAEL,IAAIE,sBAAsB,EAAE;IACxB,OAAOjB,GAAG;AACtB,4CAA4CQ,KAAK,CAAC,cAAc,CAAC;AACjE,aAAa;EACL;EAEA,OAAOQ,SAAS;AACpB,CAAC;AACL,MAAM,CAAC;EAAEE;AAA6C,CAAC,KAC/CA,gBAAgB,IAChBlB,GAAG;AACX;AACA,SAAS;AACT,MAAM,CAAC;EAAEK;AAAuC,CAAC,KACzC,CAACA,UAAU,GACLL,GAAG;AACjB;AACA,eAAe,GACDA,GAAG;AACjB;AACA,eAAe;AACf,MAAM,CAAC;EACCK,UAAU;EACVE,qBAAqB;EACrBC,KAAK;EACLW;AACwB,CAAC,KACzB,CAACd,UAAU,IACX,CAACE,qBAAqB,IACtBP,GAAG;AACX;AACA,yCAAyCQ,KAAK,CAAC,SAAS,CAAC,KAAKA,KAAK,CAACC,qBAAqB;AACzF;AACA,cAAc,CAACU,iCAAiC,GAC9BnB,GAAG;AACrB;AACA;AACA,gCAAgCQ,KAAK,CAAC,SAAS,CAAC;AAChD,gCAAgCA,KAAK,CAACC,qBAAqB;AAC3D;AACA;AACA,mBAAmB,GACD,IAAI;AACtB,SAAS;AACT;AACA,MAAM,CAAC;EACCU,iCAAiC;EACjCC,+BAA+B;EAC/Bb;AACwB,CAAC,KACzBY,iCAAiC,IACjCC,+BAA+B,IAC/B,CAACb,qBAAqB,IACtBP,GAAG;AACX;AACA;AACA,kBAAkBC,gCAAgC;AAClD;AACA,SAAS;AACT,CAAC","ignoreList":[]}
@@ -1,7 +1,9 @@
1
1
  import { motion } from 'motion/react';
2
2
  import styled, { css } from 'styled-components';
3
3
  export const StyledMotionAccordionBody = styled(motion.div)`
4
- overflow: hidden;
4
+ /* overflow: clip erlaubt overflow-clip-margin, sodass der Fokusring sichtbar bleibt */
5
+ overflow: clip;
6
+ overflow-clip-margin: 4px;
5
7
  transition: none !important;
6
8
 
7
9
  ${({
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionBody.styles.js","names":["motion","styled","css","StyledMotionAccordionBody","div","$maxHeight"],"sources":["../../../../../src/components/accordion/accordion-body/AccordionBody.styles.ts"],"sourcesContent":["import { motion } from 'motion/react';\nimport styled, { css } from 'styled-components';\nimport type { WithTheme } from '../../color-scheme-provider/ColorSchemeProvider';\n\ntype StyledMotionAccordionBodyProps = WithTheme<{\n $maxHeight?: number;\n}>;\n\nexport const StyledMotionAccordionBody = styled(motion.div)<StyledMotionAccordionBodyProps>`\n overflow: hidden;\n transition: none !important;\n\n ${({ $maxHeight }) =>\n typeof $maxHeight === 'number' &&\n css`\n max-height: ${$maxHeight}px;\n overflow-y: scroll;\n `}\n`;\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,cAAc;AACrC,OAAOC,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAO/C,OAAO,MAAMC,yBAAyB,GAAGF,MAAM,CAACD,MAAM,CAACI,GAAG,CAAiC;AAC3F;AACA;AACA;AACA,MAAM,CAAC;EAAEC;AAAW,CAAC,KACb,OAAOA,UAAU,KAAK,QAAQ,IAC9BH,GAAG;AACX,0BAA0BG,UAAU;AACpC;AACA,SAAS;AACT,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"AccordionBody.styles.js","names":["motion","styled","css","StyledMotionAccordionBody","div","$maxHeight"],"sources":["../../../../../src/components/accordion/accordion-body/AccordionBody.styles.ts"],"sourcesContent":["import { motion } from 'motion/react';\nimport styled, { css } from 'styled-components';\nimport type { WithTheme } from '../../color-scheme-provider/ColorSchemeProvider';\n\ntype StyledMotionAccordionBodyProps = WithTheme<{\n $maxHeight?: number;\n}>;\n\nexport const StyledMotionAccordionBody = styled(motion.div)<StyledMotionAccordionBodyProps>`\n /* overflow: clip erlaubt overflow-clip-margin, sodass der Fokusring sichtbar bleibt */\n overflow: clip;\n overflow-clip-margin: 4px;\n transition: none !important;\n\n ${({ $maxHeight }) =>\n typeof $maxHeight === 'number' &&\n css`\n max-height: ${$maxHeight}px;\n overflow-y: scroll;\n `}\n`;\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,cAAc;AACrC,OAAOC,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAO/C,OAAO,MAAMC,yBAAyB,GAAGF,MAAM,CAACD,MAAM,CAACI,GAAG,CAAiC;AAC3F;AACA;AACA;AACA;AACA;AACA,MAAM,CAAC;EAAEC;AAAW,CAAC,KACb,OAAOA,UAAU,KAAK,QAAQ,IAC9BH,GAAG;AACX,0BAA0BG,UAAU;AACpC;AACA,SAAS;AACT,CAAC","ignoreList":[]}
@@ -8,7 +8,10 @@ export const AccordionGroupContext = /*#__PURE__*/React.createContext({
8
8
  setOpenAccordionUuid: undefined,
9
9
  updateOpenAccordionUuid: undefined,
10
10
  accordionUuids: undefined,
11
- updateAccordionUuids: undefined,
11
+ registerAccordionUuid: undefined,
12
+ unregisterAccordionUuid: undefined,
13
+ activeAccordionUuid: undefined,
14
+ updateActiveAccordionUuid: undefined,
12
15
  accordionGroupUuid: undefined
13
16
  });
14
17
  AccordionGroupContext.displayName = 'AccordionGroupContext';
@@ -20,13 +23,10 @@ const AccordionGroup = ({
20
23
  }) => {
21
24
  const [openAccordionUuid, setOpenAccordionUuid] = useState(undefined);
22
25
  const [accordionUuids, setAccordionUuids] = useState();
26
+ const [activeAccordionUuid, setActiveAccordionUuid] = useState(undefined);
23
27
  const accordionGroupId = useUuid();
24
28
  const isInitialRenderRef = useRef(true);
25
- const updateAccordionUuids = useCallback(uuids => {
26
- setAccordionUuids(uuids);
27
- }, []);
28
29
  const areaProvider = useContext(AreaContext);
29
- const childrenCount = React.Children.count(children);
30
30
  const shouldWrap = areaProvider.shouldChangeColor ? true : isWrapped;
31
31
  const updateOpenAccordionUuid = useCallback((uuid, {
32
32
  shouldOnlyOpen
@@ -38,19 +38,30 @@ const AccordionGroup = ({
38
38
  return uuid;
39
39
  });
40
40
  }, [setOpenAccordionUuid]);
41
- useEffect(() => {
42
- if (childrenCount === 0) return;
43
- const elements = document.querySelectorAll('[data-uuid]');
44
- const elementUuids = Array.from(elements).map(el => el.getAttribute('data-uuid'));
45
- const result = [];
46
- elementUuids.forEach(elementUuid => {
47
- const [groupUuid, accordionUuid] = (elementUuid ?? '').split('---');
48
- if (groupUuid === accordionGroupId && typeof accordionUuid === 'string') {
49
- result.push(accordionUuid);
50
- }
41
+ const sortAccordionUuidsByDom = useCallback(uuids => {
42
+ if (typeof document === 'undefined') return uuids;
43
+ const domOrderedUuids = Array.from(document.querySelectorAll(`[data-uuid^="${accordionGroupId}---"]`)).map(element => element.getAttribute('data-uuid')?.split('---')[1]).filter(uuid => Boolean(uuid));
44
+ return domOrderedUuids.filter(uuid => uuids.includes(uuid));
45
+ }, [accordionGroupId]);
46
+ const registerAccordionUuid = useCallback(uuid => {
47
+ setAccordionUuids((currentAccordionUuids = []) => {
48
+ const nextAccordionUuids = currentAccordionUuids.includes(uuid) ? currentAccordionUuids : [...currentAccordionUuids, uuid];
49
+ return sortAccordionUuidsByDom(nextAccordionUuids);
51
50
  });
52
- updateAccordionUuids(result);
53
- }, [accordionGroupId, childrenCount, updateAccordionUuids]);
51
+ }, [sortAccordionUuidsByDom]);
52
+ const unregisterAccordionUuid = useCallback(uuid => {
53
+ setAccordionUuids((currentAccordionUuids = []) => currentAccordionUuids.filter(currentUuid => currentUuid !== uuid));
54
+ }, []);
55
+ const updateActiveAccordionUuid = useCallback(uuid => {
56
+ setActiveAccordionUuid(uuid);
57
+ }, []);
58
+ useEffect(() => {
59
+ if (!accordionUuids?.length) {
60
+ setActiveAccordionUuid(undefined);
61
+ return;
62
+ }
63
+ setActiveAccordionUuid(currentActiveAccordionUuid => currentActiveAccordionUuid && accordionUuids.includes(currentActiveAccordionUuid) ? currentActiveAccordionUuid : undefined);
64
+ }, [accordionUuids]);
54
65
  useEffect(() => {
55
66
  if (isInitialRenderRef.current) {
56
67
  isInitialRenderRef.current = false;
@@ -67,10 +78,13 @@ const AccordionGroup = ({
67
78
  openAccordionUuid,
68
79
  setOpenAccordionUuid,
69
80
  updateOpenAccordionUuid,
70
- updateAccordionUuids,
71
81
  accordionUuids,
82
+ registerAccordionUuid,
83
+ unregisterAccordionUuid,
84
+ activeAccordionUuid,
85
+ updateActiveAccordionUuid,
72
86
  accordionGroupUuid: accordionGroupId
73
- }), [accordionGroupId, accordionUuids, shouldWrap, openAccordionUuid, updateAccordionUuids, updateOpenAccordionUuid]);
87
+ }), [accordionGroupId, accordionUuids, shouldWrap, openAccordionUuid, registerAccordionUuid, unregisterAccordionUuid, updateOpenAccordionUuid, activeAccordionUuid, updateActiveAccordionUuid]);
74
88
  return /*#__PURE__*/React.createElement(AccordionGroupContext.Provider, {
75
89
  value: providerValue
76
90
  }, /*#__PURE__*/React.createElement(MotionConfig, {
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionGroup.js","names":["AnimatePresence","MotionConfig","React","useCallback","useContext","useEffect","useMemo","useRef","useState","useUuid","AreaContext","AccordionGroupContext","createContext","isWrapped","undefined","openAccordionUuid","setOpenAccordionUuid","updateOpenAccordionUuid","accordionUuids","updateAccordionUuids","accordionGroupUuid","displayName","AccordionGroup","children","onClose","onOpen","setAccordionUuids","accordionGroupId","isInitialRenderRef","uuids","areaProvider","childrenCount","Children","count","shouldWrap","shouldChangeColor","uuid","shouldOnlyOpen","currentOpenAccordionUuid","elements","document","querySelectorAll","elementUuids","Array","from","map","el","getAttribute","result","forEach","elementUuid","groupUuid","accordionUuid","split","push","current","providerValue","createElement","Provider","value","transition","type","initial"],"sources":["../../../../../src/components/accordion/accordion-group/AccordionGroup.tsx"],"sourcesContent":["import { AnimatePresence, MotionConfig } from 'motion/react';\nimport React, {\n Dispatch,\n FC,\n ReactNode,\n SetStateAction,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useUuid } from '../../../hooks/uuid';\nimport { AreaContext } from '../../area-provider/AreaContextProvider';\n\ntype IUpdateOpenAccordionUuid = (uuid: string, options?: { shouldOnlyOpen?: boolean }) => void;\ntype IUpdateAccordionUuids = (uuids: string[]) => void;\n\ninterface IAccordionGroupContext {\n isWrapped?: boolean;\n openAccordionUuid?: string;\n setOpenAccordionUuid?: Dispatch<SetStateAction<string | undefined>>;\n updateOpenAccordionUuid?: IUpdateOpenAccordionUuid;\n accordionUuids?: string[];\n updateAccordionUuids?: IUpdateAccordionUuids;\n accordionGroupUuid?: string;\n}\n\nexport const AccordionGroupContext = React.createContext<IAccordionGroupContext>({\n isWrapped: undefined,\n openAccordionUuid: undefined,\n setOpenAccordionUuid: undefined,\n updateOpenAccordionUuid: undefined,\n accordionUuids: undefined,\n updateAccordionUuids: undefined,\n accordionGroupUuid: undefined,\n});\n\nAccordionGroupContext.displayName = 'AccordionGroupContext';\n\ntype AccordionGroupProps = {\n /**\n * The Accordions that should be grouped. Accordions with the same group are\n * automatically closed when an `Accordion` of the group is opened.\n */\n children: ReactNode;\n /**\n * This value must be set for nested AccordionGroup components. This adjusts the style of\n * the head and the padding of the content accordions.\n */\n isWrapped?: boolean;\n /**\n * Function that is executed when all accordions in group are closed.\n */\n onClose?: VoidFunction;\n /**\n * Function that is executed when any accordion in group will be opened.\n */\n onOpen?: VoidFunction;\n};\n\nconst AccordionGroup: FC<AccordionGroupProps> = ({ children, isWrapped, onClose, onOpen }) => {\n const [openAccordionUuid, setOpenAccordionUuid] =\n useState<IAccordionGroupContext['openAccordionUuid']>(undefined);\n const [accordionUuids, setAccordionUuids] = useState<string[]>();\n\n const accordionGroupId = useUuid();\n\n const isInitialRenderRef = useRef(true);\n\n const updateAccordionUuids = useCallback((uuids: string[]) => {\n setAccordionUuids(uuids);\n }, []);\n\n const areaProvider = useContext(AreaContext);\n\n const childrenCount = React.Children.count(children);\n\n const shouldWrap = areaProvider.shouldChangeColor ? true : isWrapped;\n\n const updateOpenAccordionUuid = useCallback<IUpdateOpenAccordionUuid>(\n (uuid, { shouldOnlyOpen } = {}) => {\n setOpenAccordionUuid((currentOpenAccordionUuid) => {\n if (currentOpenAccordionUuid === uuid && shouldOnlyOpen !== true) {\n return undefined;\n }\n\n return uuid;\n });\n },\n [setOpenAccordionUuid],\n );\n\n useEffect(() => {\n if (childrenCount === 0) return;\n\n const elements = document.querySelectorAll('[data-uuid]');\n const elementUuids = Array.from(elements).map((el) => el.getAttribute('data-uuid'));\n\n const result: string[] = [];\n\n elementUuids.forEach((elementUuid) => {\n const [groupUuid, accordionUuid] = (elementUuid ?? '').split('---');\n\n if (groupUuid === accordionGroupId && typeof accordionUuid === 'string') {\n result.push(accordionUuid);\n }\n });\n\n updateAccordionUuids(result);\n }, [accordionGroupId, childrenCount, updateAccordionUuids]);\n\n useEffect(() => {\n if (isInitialRenderRef.current) {\n isInitialRenderRef.current = false;\n } else if (typeof openAccordionUuid === 'string') {\n if (typeof onOpen === 'function') {\n onOpen();\n }\n } else if (typeof onClose === 'function') {\n onClose();\n }\n }, [onClose, onOpen, openAccordionUuid]);\n\n const providerValue = useMemo<IAccordionGroupContext>(\n () => ({\n isWrapped: shouldWrap,\n openAccordionUuid,\n setOpenAccordionUuid,\n updateOpenAccordionUuid,\n updateAccordionUuids,\n accordionUuids,\n accordionGroupUuid: accordionGroupId,\n }),\n [\n accordionGroupId,\n accordionUuids,\n shouldWrap,\n openAccordionUuid,\n updateAccordionUuids,\n updateOpenAccordionUuid,\n ],\n );\n\n return (\n <AccordionGroupContext.Provider value={providerValue}>\n <MotionConfig transition={{ type: 'tween' }}>\n <AnimatePresence initial={false}>{children}</AnimatePresence>\n </MotionConfig>\n </AccordionGroupContext.Provider>\n );\n};\n\nAccordionGroup.displayName = 'AccordionGroup';\n\nexport default AccordionGroup;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"AccordionGroup.js","names":["AnimatePresence","MotionConfig","React","useCallback","useContext","useEffect","useMemo","useRef","useState","useUuid","AreaContext","AccordionGroupContext","createContext","isWrapped","undefined","openAccordionUuid","setOpenAccordionUuid","updateOpenAccordionUuid","accordionUuids","registerAccordionUuid","unregisterAccordionUuid","activeAccordionUuid","updateActiveAccordionUuid","accordionGroupUuid","displayName","AccordionGroup","children","onClose","onOpen","setAccordionUuids","setActiveAccordionUuid","accordionGroupId","isInitialRenderRef","areaProvider","shouldWrap","shouldChangeColor","uuid","shouldOnlyOpen","currentOpenAccordionUuid","sortAccordionUuidsByDom","uuids","document","domOrderedUuids","Array","from","querySelectorAll","map","element","getAttribute","split","filter","Boolean","includes","currentAccordionUuids","nextAccordionUuids","currentUuid","length","currentActiveAccordionUuid","current","providerValue","createElement","Provider","value","transition","type","initial"],"sources":["../../../../../src/components/accordion/accordion-group/AccordionGroup.tsx"],"sourcesContent":["import { AnimatePresence, MotionConfig } from 'motion/react';\nimport React, {\n Dispatch,\n FC,\n ReactNode,\n SetStateAction,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useUuid } from '../../../hooks/uuid';\nimport { AreaContext } from '../../area-provider/AreaContextProvider';\n\ntype IUpdateOpenAccordionUuid = (uuid: string, options?: { shouldOnlyOpen?: boolean }) => void;\ntype IUpdateActiveAccordionUuid = (uuid?: string) => void;\ntype IRegisterAccordionUuid = (uuid: string) => void;\ntype IUnregisterAccordionUuid = (uuid: string) => void;\n\ninterface IAccordionGroupContext {\n isWrapped?: boolean;\n openAccordionUuid?: string;\n setOpenAccordionUuid?: Dispatch<SetStateAction<string | undefined>>;\n updateOpenAccordionUuid?: IUpdateOpenAccordionUuid;\n accordionUuids?: string[];\n registerAccordionUuid?: IRegisterAccordionUuid;\n unregisterAccordionUuid?: IUnregisterAccordionUuid;\n activeAccordionUuid?: string;\n updateActiveAccordionUuid?: IUpdateActiveAccordionUuid;\n accordionGroupUuid?: string;\n}\n\nexport const AccordionGroupContext = React.createContext<IAccordionGroupContext>({\n isWrapped: undefined,\n openAccordionUuid: undefined,\n setOpenAccordionUuid: undefined,\n updateOpenAccordionUuid: undefined,\n accordionUuids: undefined,\n registerAccordionUuid: undefined,\n unregisterAccordionUuid: undefined,\n activeAccordionUuid: undefined,\n updateActiveAccordionUuid: undefined,\n accordionGroupUuid: undefined,\n});\n\nAccordionGroupContext.displayName = 'AccordionGroupContext';\n\ntype AccordionGroupProps = {\n /**\n * The Accordions that should be grouped. Accordions with the same group are\n * automatically closed when an `Accordion` of the group is opened.\n */\n children: ReactNode;\n /**\n * This value must be set for nested AccordionGroup components. This adjusts the style of\n * the head and the padding of the content accordions.\n */\n isWrapped?: boolean;\n /**\n * Function that is executed when all accordions in group are closed.\n */\n onClose?: VoidFunction;\n /**\n * Function that is executed when any accordion in group will be opened.\n */\n onOpen?: VoidFunction;\n};\n\nconst AccordionGroup: FC<AccordionGroupProps> = ({ children, isWrapped, onClose, onOpen }) => {\n const [openAccordionUuid, setOpenAccordionUuid] =\n useState<IAccordionGroupContext['openAccordionUuid']>(undefined);\n const [accordionUuids, setAccordionUuids] = useState<string[]>();\n const [activeAccordionUuid, setActiveAccordionUuid] =\n useState<IAccordionGroupContext['activeAccordionUuid']>(undefined);\n\n const accordionGroupId = useUuid();\n\n const isInitialRenderRef = useRef(true);\n\n const areaProvider = useContext(AreaContext);\n\n const shouldWrap = areaProvider.shouldChangeColor ? true : isWrapped;\n\n const updateOpenAccordionUuid = useCallback<IUpdateOpenAccordionUuid>(\n (uuid, { shouldOnlyOpen } = {}) => {\n setOpenAccordionUuid((currentOpenAccordionUuid) => {\n if (currentOpenAccordionUuid === uuid && shouldOnlyOpen !== true) {\n return undefined;\n }\n\n return uuid;\n });\n },\n [setOpenAccordionUuid],\n );\n\n const sortAccordionUuidsByDom = useCallback(\n (uuids: string[]) => {\n if (typeof document === 'undefined') return uuids;\n\n const domOrderedUuids = Array.from(\n document.querySelectorAll<HTMLElement>(`[data-uuid^=\"${accordionGroupId}---\"]`),\n )\n .map((element) => element.getAttribute('data-uuid')?.split('---')[1])\n .filter((uuid): uuid is string => Boolean(uuid));\n\n return domOrderedUuids.filter((uuid) => uuids.includes(uuid));\n },\n [accordionGroupId],\n );\n\n const registerAccordionUuid = useCallback<IRegisterAccordionUuid>(\n (uuid) => {\n setAccordionUuids((currentAccordionUuids = []) => {\n const nextAccordionUuids = currentAccordionUuids.includes(uuid)\n ? currentAccordionUuids\n : [...currentAccordionUuids, uuid];\n\n return sortAccordionUuidsByDom(nextAccordionUuids);\n });\n },\n [sortAccordionUuidsByDom],\n );\n\n const unregisterAccordionUuid = useCallback<IUnregisterAccordionUuid>((uuid) => {\n setAccordionUuids((currentAccordionUuids = []) =>\n currentAccordionUuids.filter((currentUuid) => currentUuid !== uuid),\n );\n }, []);\n\n const updateActiveAccordionUuid = useCallback<IUpdateActiveAccordionUuid>((uuid) => {\n setActiveAccordionUuid(uuid);\n }, []);\n\n useEffect(() => {\n if (!accordionUuids?.length) {\n setActiveAccordionUuid(undefined);\n return;\n }\n\n setActiveAccordionUuid((currentActiveAccordionUuid) =>\n currentActiveAccordionUuid && accordionUuids.includes(currentActiveAccordionUuid)\n ? currentActiveAccordionUuid\n : undefined,\n );\n }, [accordionUuids]);\n\n useEffect(() => {\n if (isInitialRenderRef.current) {\n isInitialRenderRef.current = false;\n } else if (typeof openAccordionUuid === 'string') {\n if (typeof onOpen === 'function') {\n onOpen();\n }\n } else if (typeof onClose === 'function') {\n onClose();\n }\n }, [onClose, onOpen, openAccordionUuid]);\n\n const providerValue = useMemo<IAccordionGroupContext>(\n () => ({\n isWrapped: shouldWrap,\n openAccordionUuid,\n setOpenAccordionUuid,\n updateOpenAccordionUuid,\n accordionUuids,\n registerAccordionUuid,\n unregisterAccordionUuid,\n activeAccordionUuid,\n updateActiveAccordionUuid,\n accordionGroupUuid: accordionGroupId,\n }),\n [\n accordionGroupId,\n accordionUuids,\n shouldWrap,\n openAccordionUuid,\n registerAccordionUuid,\n unregisterAccordionUuid,\n updateOpenAccordionUuid,\n activeAccordionUuid,\n updateActiveAccordionUuid,\n ],\n );\n\n return (\n <AccordionGroupContext.Provider value={providerValue}>\n <MotionConfig transition={{ type: 'tween' }}>\n <AnimatePresence initial={false}>{children}</AnimatePresence>\n </MotionConfig>\n </AccordionGroupContext.Provider>\n );\n};\n\nAccordionGroup.displayName = 'AccordionGroup';\n\nexport default AccordionGroup;\n"],"mappings":"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","ignoreList":[]}
@@ -29,7 +29,8 @@ const AccordionHead = ({
29
29
  uuid,
30
30
  titleInputProps,
31
31
  onTitleInputChange,
32
- titleColor
32
+ titleColor,
33
+ shouldEnableKeyboardHighlighting
33
34
  }) => {
34
35
  const [headHeight, setHeadHeight] = useState({
35
36
  closed: isWrapped ? 40 : 32,
@@ -136,7 +137,8 @@ const AccordionHead = ({
136
137
  }, /*#__PURE__*/React.createElement(StyledTitleInputWrapper, null, /*#__PURE__*/React.createElement(Input
137
138
  /* eslint-disable-next-line react/jsx-props-no-spreading */, _extends({}, titleInputProps, {
138
139
  value: title,
139
- onChange: onTitleInputChange
140
+ onChange: onTitleInputChange,
141
+ shouldEnableKeyboardHighlighting: titleInputProps?.shouldEnableKeyboardHighlighting ?? shouldEnableKeyboardHighlighting
140
142
  })))) : /*#__PURE__*/React.createElement(LayoutGroup, {
141
143
  key: `accordionHeadLayoutGroup--${uuid}`
142
144
  }, /*#__PURE__*/React.createElement(AnimatePresence, {
@@ -214,7 +216,8 @@ const AccordionHead = ({
214
216
  onActiveChange: isActive => setIsSearchActive(isActive),
215
217
  placeholder: searchPlaceholder,
216
218
  size: InputSize.Small,
217
- value: internalSearchValue
219
+ value: internalSearchValue,
220
+ shouldEnableKeyboardHighlighting: shouldEnableKeyboardHighlighting
218
221
  })), rightElement && /*#__PURE__*/React.createElement(StyledMotionRightElementWrapper, {
219
222
  animate: {
220
223
  opacity: 1
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionHead.js","names":["AnimatePresence","LayoutGroup","React","useEffect","useMemo","useRef","useState","useTheme","useElementSize","getAccordionHeadHeight","getElementClickEvent","AreaContext","Icon","Input","InputSize","SearchInput","StyledMotionAccordionHead","StyledMotionContentWrapper","StyledMotionIconWrapper","StyledMotionRightElementWrapper","StyledMotionSearchWrapper","StyledMotionTitle","StyledMotionTitleElementWrapper","StyledMotionTitleWrapper","StyledRightWrapper","StyledTitleInputWrapper","StyledUnicodeIcon","getIsExpandableIcon","AccordionHead","icon","isOpen","isFixed","isTitleGreyed","isWrapped","onClick","onSearchChange","rightElement","searchPlaceholder","searchValue","shouldRotateIcon","title","titleElement","shouldSkipAnimation","uuid","titleInputProps","onTitleInputChange","titleColor","headHeight","setHeadHeight","closed","open","isSearchActive","setIsSearchActive","theme","titleElementWrapperRef","titleWrapperRef","internalSearchValue","setInternalSearchValue","handleOnSearchChance","event","target","value","titleElementChildrenSize","shouldUseChildElement","shouldPreventRightElementClick","window","setTimeout","width","current","clientWidth","hasSearch","fontSize","iconElement","createElement","icons","color","iconColor","headline","internalIcon","accordionIcon","className","iconStyle","$icon","accordionHeadHeight","height","animate","initial","key","transition","duration","rotate","undefined","opacity","ref","$isWrapped","Provider","shouldChangeColor","_extends","onChange","mode","style","display","alignItems","gap","scale","exit","transitionEnd","$isOpen","$color","$hasSearch","$isSearchActive","onActiveChange","isActive","placeholder","size","Small","displayName"],"sources":["../../../../../src/components/accordion/accordion-head/AccordionHead.tsx"],"sourcesContent":["import { AnimatePresence, LayoutGroup } from 'motion/react';\nimport React, {\n ChangeEvent,\n ChangeEventHandler,\n type CSSProperties,\n FC,\n MouseEventHandler,\n ReactNode,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useTheme } from 'styled-components';\nimport { useElementSize } from '../../../hooks/element';\nimport { getAccordionHeadHeight, getElementClickEvent } from '../../../utils/accordion';\nimport { AreaContext } from '../../area-provider/AreaContextProvider';\nimport type { Theme } from '../../color-scheme-provider/ColorSchemeProvider';\nimport Icon from '../../icon/Icon';\nimport Input, { type InputProps, InputSize } from '../../input/Input';\nimport SearchInput from '../../search-input/SearchInput';\nimport {\n StyledMotionAccordionHead,\n StyledMotionContentWrapper,\n StyledMotionIconWrapper,\n StyledMotionRightElementWrapper,\n StyledMotionSearchWrapper,\n StyledMotionTitle,\n StyledMotionTitleElementWrapper,\n StyledMotionTitleWrapper,\n StyledRightWrapper,\n StyledTitleInputWrapper,\n} from './AccordionHead.styles';\nimport { StyledUnicodeIcon } from '../../icon/Icon.styles';\nimport { getIsExpandableIcon } from '../../../utils/icon';\n\nexport type AccordionHeadProps = {\n icon?: string;\n isOpen: boolean;\n isFixed: boolean;\n isTitleGreyed: boolean;\n isWrapped: boolean;\n onClick: MouseEventHandler<HTMLDivElement>;\n onSearchChange?: ChangeEventHandler<HTMLInputElement>;\n rightElement?: ReactNode;\n searchPlaceholder?: string;\n searchValue?: string;\n shouldRotateIcon?: boolean;\n title?: string;\n titleElement?: ReactNode;\n uuid: string;\n onTitleInputChange?: ChangeEventHandler<HTMLInputElement>;\n titleInputProps?: InputProps;\n titleColor?: CSSProperties['color'];\n shouldSkipAnimation?: boolean;\n};\n\ninterface HeadHeight {\n closed: number;\n open: number;\n}\n\nconst AccordionHead: FC<AccordionHeadProps> = ({\n icon,\n isOpen,\n isFixed,\n isTitleGreyed,\n isWrapped,\n onClick,\n onSearchChange,\n rightElement,\n searchPlaceholder,\n searchValue,\n shouldRotateIcon,\n title,\n titleElement,\n shouldSkipAnimation,\n uuid,\n titleInputProps,\n onTitleInputChange,\n titleColor,\n}) => {\n const [headHeight, setHeadHeight] = useState<HeadHeight>({\n closed: isWrapped ? 40 : 32,\n open: isWrapped ? 40 : 42,\n });\n\n const [isSearchActive, setIsSearchActive] = useState(false);\n\n const theme = useTheme() as Theme;\n\n const titleElementWrapperRef = useRef<HTMLDivElement>(null);\n const titleWrapperRef = useRef<HTMLDivElement>(null);\n\n const [internalSearchValue, setInternalSearchValue] = useState<string>();\n\n useEffect(() => {\n setInternalSearchValue(searchValue);\n }, [searchValue]);\n\n useEffect(() => {\n if (typeof onSearchChange === 'function' && !isOpen) {\n setIsSearchActive(false);\n }\n }, [isOpen, onSearchChange]);\n\n const handleOnSearchChance = (event: ChangeEvent<HTMLInputElement>) => {\n setInternalSearchValue(event.target.value);\n if (typeof onSearchChange === 'function') {\n onSearchChange(event);\n }\n };\n\n const titleElementChildrenSize = useElementSize(titleElementWrapperRef, {\n shouldUseChildElement: true,\n });\n\n const shouldPreventRightElementClick = useMemo(\n () => getElementClickEvent(rightElement),\n [rightElement],\n );\n\n useEffect(() => {\n if (typeof onTitleInputChange === 'function') {\n setHeadHeight({ closed: 50, open: 50 });\n } else {\n // The timeout is needed because the width is incorrect on the first render\n window.setTimeout(() => {\n setHeadHeight(\n getAccordionHeadHeight({\n isWrapped,\n title,\n width: titleWrapperRef.current?.clientWidth ?? 0,\n hasSearch: typeof onSearchChange === 'function',\n }),\n );\n }, 1);\n }\n // The fontSize need to be included to trigger a new calculation.\n // After the size is increased, the Title is cut at the bottom.\n }, [isWrapped, onSearchChange, onTitleInputChange, theme.fontSize, title]);\n\n const iconElement = useMemo(() => {\n if (icon || isFixed) {\n return (\n <Icon\n icons={[isFixed ? 'fa fa-horizontal-rule' : (icon ?? 'fa fa-chevron-right')]}\n color={theme.iconColor || theme.headline}\n />\n );\n }\n\n const internalIcon = getIsExpandableIcon(theme.accordionIcon);\n return (\n <StyledUnicodeIcon className={theme.iconStyle ?? 'fa-regular'} $icon={internalIcon} />\n );\n }, [icon, isFixed, theme.accordionIcon, theme.headline, theme.iconColor, theme.iconStyle]);\n\n let accordionHeadHeight = isOpen ? headHeight.open : headHeight.closed;\n\n if (titleElementChildrenSize && titleElementChildrenSize.height > accordionHeadHeight) {\n // If the titleElement is bigger than the title, the height of the accordion head should be increased.\n // The height of the titleElement is increased by 8px because of the padding of the accordion head element.\n accordionHeadHeight = titleElementChildrenSize.height + 8;\n }\n\n return (\n <StyledMotionAccordionHead\n animate={{ height: accordionHeadHeight }}\n className=\"beta-chayns-accordion-head\"\n initial={false}\n key={`accordionHead--${uuid}`}\n transition={{ duration: shouldSkipAnimation ? 0 : 0.25 }}\n >\n <StyledMotionIconWrapper\n animate={{ rotate: (isOpen || isFixed) && shouldRotateIcon ? 90 : 0 }}\n initial={false}\n onClick={!isFixed ? onClick : undefined}\n key={`accordionHeadIcon--${uuid}`}\n transition={{ duration: shouldSkipAnimation ? 0 : 0.25 }}\n >\n {iconElement}\n </StyledMotionIconWrapper>\n <StyledMotionContentWrapper\n animate={{ opacity: isTitleGreyed ? 0.5 : 1 }}\n initial={false}\n onClick={!isFixed ? onClick : undefined}\n ref={titleWrapperRef}\n $isWrapped={isWrapped}\n key={`accordionHeadContentWrapper--${uuid}`}\n >\n {typeof onTitleInputChange === 'function' ? (\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n <AreaContext.Provider value={{ shouldChangeColor: true }}>\n <StyledTitleInputWrapper>\n <Input\n /* eslint-disable-next-line react/jsx-props-no-spreading */\n {...titleInputProps}\n value={title}\n onChange={onTitleInputChange}\n />\n </StyledTitleInputWrapper>\n </AreaContext.Provider>\n ) : (\n <LayoutGroup key={`accordionHeadLayoutGroup--${uuid}`}>\n <AnimatePresence\n initial={false}\n mode=\"sync\"\n key={`accordionHeadTitleWrapper--${uuid}`}\n >\n <StyledMotionTitleWrapper\n key={`accordionHeadTitleWrapperWrapper--${uuid}`}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '12px',\n width: typeof title !== 'string' ? '100%' : undefined,\n }}\n initial={\n !shouldSkipAnimation\n ? { scale: isOpen && !isWrapped ? 1 / 1.3 : 1.3 }\n : false\n }\n exit={\n shouldSkipAnimation\n ? {\n opacity: 0,\n transition: { duration: 0 },\n transitionEnd: { display: 'none' },\n }\n : { scale: 1, opacity: 0 }\n }\n animate={{ scale: 1, opacity: 1 }}\n transition={{\n duration: shouldSkipAnimation ? 0 : 0.25,\n opacity: { duration: 0 },\n }}\n >\n {title && (\n <StyledMotionTitle\n $isOpen={isOpen}\n $isWrapped={isWrapped}\n $color={titleColor}\n $hasSearch={typeof onSearchChange === 'function'}\n animate={{\n fontSize: isOpen && !isWrapped ? '1.3rem' : '1rem',\n }}\n initial={shouldSkipAnimation ? false : { fontSize: '1rem' }}\n transition={{ duration: shouldSkipAnimation ? 0 : 0.25 }}\n >\n {title}\n </StyledMotionTitle>\n )}\n\n {titleElement && (\n <StyledMotionTitleElementWrapper\n key={`accordionTitleElement--${uuid}`}\n ref={titleElementWrapperRef}\n >\n {titleElement}\n </StyledMotionTitleElementWrapper>\n )}\n </StyledMotionTitleWrapper>\n </AnimatePresence>\n </LayoutGroup>\n )}\n </StyledMotionContentWrapper>\n {(typeof onSearchChange === 'function' || rightElement) && (\n <StyledRightWrapper $isSearchActive={isSearchActive}>\n <AnimatePresence initial={false} key={`accordionRightWrapper--${uuid}`}>\n {typeof onSearchChange === 'function' && isOpen && (\n <StyledMotionSearchWrapper\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n key={`searchWrapper--${uuid}`}\n >\n <SearchInput\n onChange={handleOnSearchChance}\n onActiveChange={(isActive) => setIsSearchActive(isActive)}\n placeholder={searchPlaceholder}\n size={InputSize.Small}\n value={internalSearchValue}\n />\n </StyledMotionSearchWrapper>\n )}\n {rightElement && (\n <StyledMotionRightElementWrapper\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n key={`rightElementWrapper--${uuid}`}\n onClick={\n !isFixed && !shouldPreventRightElementClick\n ? onClick\n : undefined\n }\n >\n {rightElement}\n </StyledMotionRightElementWrapper>\n )}\n </AnimatePresence>\n </StyledRightWrapper>\n )}\n </StyledMotionAccordionHead>\n );\n};\n\nAccordionHead.displayName = 'AccordionHead';\n\nexport default AccordionHead;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"AccordionHead.js","names":["AnimatePresence","LayoutGroup","React","useEffect","useMemo","useRef","useState","useTheme","useElementSize","getAccordionHeadHeight","getElementClickEvent","AreaContext","Icon","Input","InputSize","SearchInput","StyledMotionAccordionHead","StyledMotionContentWrapper","StyledMotionIconWrapper","StyledMotionRightElementWrapper","StyledMotionSearchWrapper","StyledMotionTitle","StyledMotionTitleElementWrapper","StyledMotionTitleWrapper","StyledRightWrapper","StyledTitleInputWrapper","StyledUnicodeIcon","getIsExpandableIcon","AccordionHead","icon","isOpen","isFixed","isTitleGreyed","isWrapped","onClick","onSearchChange","rightElement","searchPlaceholder","searchValue","shouldRotateIcon","title","titleElement","shouldSkipAnimation","uuid","titleInputProps","onTitleInputChange","titleColor","shouldEnableKeyboardHighlighting","headHeight","setHeadHeight","closed","open","isSearchActive","setIsSearchActive","theme","titleElementWrapperRef","titleWrapperRef","internalSearchValue","setInternalSearchValue","handleOnSearchChance","event","target","value","titleElementChildrenSize","shouldUseChildElement","shouldPreventRightElementClick","window","setTimeout","width","current","clientWidth","hasSearch","fontSize","iconElement","createElement","icons","color","iconColor","headline","internalIcon","accordionIcon","className","iconStyle","$icon","accordionHeadHeight","height","animate","initial","key","transition","duration","rotate","undefined","opacity","ref","$isWrapped","Provider","shouldChangeColor","_extends","onChange","mode","style","display","alignItems","gap","scale","exit","transitionEnd","$isOpen","$color","$hasSearch","$isSearchActive","onActiveChange","isActive","placeholder","size","Small","displayName"],"sources":["../../../../../src/components/accordion/accordion-head/AccordionHead.tsx"],"sourcesContent":["import { AnimatePresence, LayoutGroup } from 'motion/react';\nimport React, {\n ChangeEvent,\n ChangeEventHandler,\n type CSSProperties,\n FC,\n MouseEventHandler,\n ReactNode,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useTheme } from 'styled-components';\nimport { useElementSize } from '../../../hooks/element';\nimport { getAccordionHeadHeight, getElementClickEvent } from '../../../utils/accordion';\nimport { AreaContext } from '../../area-provider/AreaContextProvider';\nimport type { Theme } from '../../color-scheme-provider/ColorSchemeProvider';\nimport Icon from '../../icon/Icon';\nimport Input, { type InputProps, InputSize } from '../../input/Input';\nimport SearchInput from '../../search-input/SearchInput';\nimport {\n StyledMotionAccordionHead,\n StyledMotionContentWrapper,\n StyledMotionIconWrapper,\n StyledMotionRightElementWrapper,\n StyledMotionSearchWrapper,\n StyledMotionTitle,\n StyledMotionTitleElementWrapper,\n StyledMotionTitleWrapper,\n StyledRightWrapper,\n StyledTitleInputWrapper,\n} from './AccordionHead.styles';\nimport { StyledUnicodeIcon } from '../../icon/Icon.styles';\nimport { getIsExpandableIcon } from '../../../utils/icon';\n\nexport type AccordionHeadProps = {\n icon?: string;\n isOpen: boolean;\n isFixed: boolean;\n isTitleGreyed: boolean;\n isWrapped: boolean;\n onClick: MouseEventHandler<HTMLDivElement>;\n onSearchChange?: ChangeEventHandler<HTMLInputElement>;\n rightElement?: ReactNode;\n searchPlaceholder?: string;\n searchValue?: string;\n shouldRotateIcon?: boolean;\n title?: string;\n titleElement?: ReactNode;\n uuid: string;\n onTitleInputChange?: ChangeEventHandler<HTMLInputElement>;\n titleInputProps?: InputProps;\n titleColor?: CSSProperties['color'];\n shouldSkipAnimation?: boolean;\n shouldEnableKeyboardHighlighting?: boolean;\n};\n\ninterface HeadHeight {\n closed: number;\n open: number;\n}\n\nconst AccordionHead: FC<AccordionHeadProps> = ({\n icon,\n isOpen,\n isFixed,\n isTitleGreyed,\n isWrapped,\n onClick,\n onSearchChange,\n rightElement,\n searchPlaceholder,\n searchValue,\n shouldRotateIcon,\n title,\n titleElement,\n shouldSkipAnimation,\n uuid,\n titleInputProps,\n onTitleInputChange,\n titleColor,\n shouldEnableKeyboardHighlighting,\n}) => {\n const [headHeight, setHeadHeight] = useState<HeadHeight>({\n closed: isWrapped ? 40 : 32,\n open: isWrapped ? 40 : 42,\n });\n\n const [isSearchActive, setIsSearchActive] = useState(false);\n\n const theme = useTheme() as Theme;\n\n const titleElementWrapperRef = useRef<HTMLDivElement>(null);\n const titleWrapperRef = useRef<HTMLDivElement>(null);\n\n const [internalSearchValue, setInternalSearchValue] = useState<string>();\n\n useEffect(() => {\n setInternalSearchValue(searchValue);\n }, [searchValue]);\n\n useEffect(() => {\n if (typeof onSearchChange === 'function' && !isOpen) {\n setIsSearchActive(false);\n }\n }, [isOpen, onSearchChange]);\n\n const handleOnSearchChance = (event: ChangeEvent<HTMLInputElement>) => {\n setInternalSearchValue(event.target.value);\n if (typeof onSearchChange === 'function') {\n onSearchChange(event);\n }\n };\n\n const titleElementChildrenSize = useElementSize(titleElementWrapperRef, {\n shouldUseChildElement: true,\n });\n\n const shouldPreventRightElementClick = useMemo(\n () => getElementClickEvent(rightElement),\n [rightElement],\n );\n\n useEffect(() => {\n if (typeof onTitleInputChange === 'function') {\n setHeadHeight({ closed: 50, open: 50 });\n } else {\n // The timeout is needed because the width is incorrect on the first render\n window.setTimeout(() => {\n setHeadHeight(\n getAccordionHeadHeight({\n isWrapped,\n title,\n width: titleWrapperRef.current?.clientWidth ?? 0,\n hasSearch: typeof onSearchChange === 'function',\n }),\n );\n }, 1);\n }\n // The fontSize need to be included to trigger a new calculation.\n // After the size is increased, the Title is cut at the bottom.\n }, [isWrapped, onSearchChange, onTitleInputChange, theme.fontSize, title]);\n\n const iconElement = useMemo(() => {\n if (icon || isFixed) {\n return (\n <Icon\n icons={[isFixed ? 'fa fa-horizontal-rule' : (icon ?? 'fa fa-chevron-right')]}\n color={theme.iconColor || theme.headline}\n />\n );\n }\n\n const internalIcon = getIsExpandableIcon(theme.accordionIcon);\n return (\n <StyledUnicodeIcon className={theme.iconStyle ?? 'fa-regular'} $icon={internalIcon} />\n );\n }, [icon, isFixed, theme.accordionIcon, theme.headline, theme.iconColor, theme.iconStyle]);\n\n let accordionHeadHeight = isOpen ? headHeight.open : headHeight.closed;\n\n if (titleElementChildrenSize && titleElementChildrenSize.height > accordionHeadHeight) {\n // If the titleElement is bigger than the title, the height of the accordion head should be increased.\n // The height of the titleElement is increased by 8px because of the padding of the accordion head element.\n accordionHeadHeight = titleElementChildrenSize.height + 8;\n }\n\n return (\n <StyledMotionAccordionHead\n animate={{ height: accordionHeadHeight }}\n className=\"beta-chayns-accordion-head\"\n initial={false}\n key={`accordionHead--${uuid}`}\n transition={{ duration: shouldSkipAnimation ? 0 : 0.25 }}\n >\n <StyledMotionIconWrapper\n animate={{ rotate: (isOpen || isFixed) && shouldRotateIcon ? 90 : 0 }}\n initial={false}\n onClick={!isFixed ? onClick : undefined}\n key={`accordionHeadIcon--${uuid}`}\n transition={{ duration: shouldSkipAnimation ? 0 : 0.25 }}\n >\n {iconElement}\n </StyledMotionIconWrapper>\n <StyledMotionContentWrapper\n animate={{ opacity: isTitleGreyed ? 0.5 : 1 }}\n initial={false}\n onClick={!isFixed ? onClick : undefined}\n ref={titleWrapperRef}\n $isWrapped={isWrapped}\n key={`accordionHeadContentWrapper--${uuid}`}\n >\n {typeof onTitleInputChange === 'function' ? (\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n <AreaContext.Provider value={{ shouldChangeColor: true }}>\n <StyledTitleInputWrapper>\n <Input\n /* eslint-disable-next-line react/jsx-props-no-spreading */\n {...titleInputProps}\n value={title}\n onChange={onTitleInputChange}\n shouldEnableKeyboardHighlighting={\n titleInputProps?.shouldEnableKeyboardHighlighting ??\n shouldEnableKeyboardHighlighting\n }\n />\n </StyledTitleInputWrapper>\n </AreaContext.Provider>\n ) : (\n <LayoutGroup key={`accordionHeadLayoutGroup--${uuid}`}>\n <AnimatePresence\n initial={false}\n mode=\"sync\"\n key={`accordionHeadTitleWrapper--${uuid}`}\n >\n <StyledMotionTitleWrapper\n key={`accordionHeadTitleWrapperWrapper--${uuid}`}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '12px',\n width: typeof title !== 'string' ? '100%' : undefined,\n }}\n initial={\n !shouldSkipAnimation\n ? { scale: isOpen && !isWrapped ? 1 / 1.3 : 1.3 }\n : false\n }\n exit={\n shouldSkipAnimation\n ? {\n opacity: 0,\n transition: { duration: 0 },\n transitionEnd: { display: 'none' },\n }\n : { scale: 1, opacity: 0 }\n }\n animate={{ scale: 1, opacity: 1 }}\n transition={{\n duration: shouldSkipAnimation ? 0 : 0.25,\n opacity: { duration: 0 },\n }}\n >\n {title && (\n <StyledMotionTitle\n $isOpen={isOpen}\n $isWrapped={isWrapped}\n $color={titleColor}\n $hasSearch={typeof onSearchChange === 'function'}\n animate={{\n fontSize: isOpen && !isWrapped ? '1.3rem' : '1rem',\n }}\n initial={shouldSkipAnimation ? false : { fontSize: '1rem' }}\n transition={{ duration: shouldSkipAnimation ? 0 : 0.25 }}\n >\n {title}\n </StyledMotionTitle>\n )}\n\n {titleElement && (\n <StyledMotionTitleElementWrapper\n key={`accordionTitleElement--${uuid}`}\n ref={titleElementWrapperRef}\n >\n {titleElement}\n </StyledMotionTitleElementWrapper>\n )}\n </StyledMotionTitleWrapper>\n </AnimatePresence>\n </LayoutGroup>\n )}\n </StyledMotionContentWrapper>\n {(typeof onSearchChange === 'function' || rightElement) && (\n <StyledRightWrapper $isSearchActive={isSearchActive}>\n <AnimatePresence initial={false} key={`accordionRightWrapper--${uuid}`}>\n {typeof onSearchChange === 'function' && isOpen && (\n <StyledMotionSearchWrapper\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n key={`searchWrapper--${uuid}`}\n >\n <SearchInput\n onChange={handleOnSearchChance}\n onActiveChange={(isActive) => setIsSearchActive(isActive)}\n placeholder={searchPlaceholder}\n size={InputSize.Small}\n value={internalSearchValue}\n shouldEnableKeyboardHighlighting={\n shouldEnableKeyboardHighlighting\n }\n />\n </StyledMotionSearchWrapper>\n )}\n {rightElement && (\n <StyledMotionRightElementWrapper\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n key={`rightElementWrapper--${uuid}`}\n onClick={\n !isFixed && !shouldPreventRightElementClick\n ? onClick\n : undefined\n }\n >\n {rightElement}\n </StyledMotionRightElementWrapper>\n )}\n </AnimatePresence>\n </StyledRightWrapper>\n )}\n </StyledMotionAccordionHead>\n );\n};\n\nAccordionHead.displayName = 'AccordionHead';\n\nexport default AccordionHead;\n"],"mappings":"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","ignoreList":[]}
@@ -8,6 +8,12 @@ export const StyledMotionAccordionHead = styled(motion.div)`
8
8
  display: flex;
9
9
  overflow: hidden;
10
10
  padding: 4px 0;
11
+
12
+ &:focus-within {
13
+ overflow: visible;
14
+ position: relative;
15
+ z-index: 1;
16
+ }
11
17
  `;
12
18
  export const StyledMotionIconWrapper = styled(motion.div)`
13
19
  align-items: center;
@@ -31,6 +37,10 @@ export const StyledMotionContentWrapper = styled(motion.div)`
31
37
  overflow: hidden;
32
38
  margin-right: 10px;
33
39
 
40
+ &:focus-within {
41
+ overflow: visible;
42
+ }
43
+
34
44
  ${({
35
45
  $isWrapped
36
46
  }) => $isWrapped && css`
@@ -94,6 +104,10 @@ export const StyledRightWrapper = styled.div`
94
104
  margin-right: 5px;
95
105
  overflow: hidden;
96
106
  position: relative;
107
+
108
+ &:focus-within {
109
+ overflow: visible;
110
+ }
97
111
  `;
98
112
  export const StyledMotionSearchWrapper = styled(motion.div)`
99
113
  align-items: center;
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionHead.styles.js","names":["motion","styled","css","StyledMotionAccordionHead","div","theme","text","StyledMotionIconWrapper","onClick","StyledMotionContentWrapper","$isWrapped","StyledMotionTitleWrapper","StyledTitleInputWrapper","StyledMotionTitle","$isOpen","undefined","$hasSearch","$color","StyledMotionTitleElementWrapper","StyledRightWrapper","StyledMotionSearchWrapper","StyledMotionRightElementWrapper","StyledMotionRightInput","input","$hasIcon","StyledMotionRightInputIconWrapper"],"sources":["../../../../../src/components/accordion/accordion-head/AccordionHead.styles.ts"],"sourcesContent":["import { motion } from 'motion/react';\nimport type { CSSProperties } from 'react';\nimport styled, { css } from 'styled-components';\nimport type { WithTheme } from '../../color-scheme-provider/ColorSchemeProvider';\n\ntype StyledMotionAccordionHeadProps = WithTheme<unknown>;\n\nexport const StyledMotionAccordionHead = styled(motion.div)<StyledMotionAccordionHeadProps>`\n align-items: center;\n color: ${({ theme }: StyledMotionAccordionHeadProps) => theme.text};\n display: flex;\n overflow: hidden;\n padding: 4px 0;\n`;\n\nexport const StyledMotionIconWrapper = styled(motion.div)`\n align-items: center;\n cursor: ${({ onClick }) => (typeof onClick === 'function' ? 'pointer' : 'inherit')};\n display: flex;\n flex: 0 0 auto;\n height: 25px;\n justify-content: center;\n width: 25px;\n`;\n\ntype StyledMotionContentWrapperProps = WithTheme<{ $isWrapped: boolean }>;\n\nexport const StyledMotionContentWrapper = styled(motion.div)<StyledMotionContentWrapperProps>`\n align-self: flex-start;\n cursor: ${({ onClick }) => (typeof onClick === 'function' ? 'pointer' : 'inherit')};\n display: flex;\n flex: 1 1 auto;\n height: 100%;\n overflow: hidden;\n margin-right: 10px;\n\n ${({ $isWrapped }) =>\n $isWrapped &&\n css`\n align-items: center;\n `}\n`;\n\nexport const StyledMotionTitleWrapper = styled(motion.div)`\n display: grid;\n flex: 0 1 auto;\n grid-template-areas: 'header';\n`;\n\nexport const StyledTitleInputWrapper = styled.div`\n width: 100%;\n`;\n\ntype StyledMotionTitleProps = WithTheme<{\n $isOpen: boolean;\n $isWrapped: boolean;\n $color?: CSSProperties['color'];\n $hasSearch: boolean;\n}>;\n\nexport const StyledMotionTitle = styled(motion.div)<StyledMotionTitleProps>`\n font-size: ${({ $isOpen, $isWrapped }) => ($isOpen && !$isWrapped ? '1.3rem' : undefined)};\n font-weight: ${({ $isOpen, $isWrapped }) => ($isOpen && $isWrapped ? 700 : 'normal')};\n grid-area: header;\n height: ${({ $isWrapped, $hasSearch }) => ($isWrapped || $hasSearch ? '100%' : undefined)};\n overflow: hidden;\n text-overflow: ellipsis;\n transform-origin: top left;\n user-select: none;\n color: ${({ $color, theme }: StyledMotionTitleProps) => $color ?? theme.text};\n white-space: ${({ $isOpen, $isWrapped, $hasSearch }) =>\n $isOpen && !$isWrapped && !$hasSearch ? 'normal' : 'nowrap'};\n\n will-change: unset !important;\n\n ${({ $isWrapped }) =>\n $isWrapped &&\n css`\n align-content: center;\n `}\n`;\n\nexport const StyledMotionTitleElementWrapper = styled(motion.div)`\n align-items: center;\n display: flex;\n flex: 1 1 auto;\n min-width: 0;\n`;\n\ntype StyledRightWrapperProps = {\n $isSearchActive: boolean;\n};\n\nexport const StyledRightWrapper = styled.div<StyledRightWrapperProps>`\n display: flex;\n flex: 0 0 auto;\n gap: 8px;\n margin-right: 5px;\n overflow: hidden;\n position: relative;\n`;\n\nexport const StyledMotionSearchWrapper = styled(motion.div)`\n align-items: center;\n justify-content: end;\n position: relative;\n display: flex;\n width: 100%;\n`;\n\nexport const StyledMotionRightElementWrapper = styled(motion.div)`\n align-items: center;\n display: flex;\n\n cursor: ${({ onClick }) => (typeof onClick === 'function' ? 'pointer' : 'inherit')};\n\n will-change: unset !important;\n`;\n\ntype StyledMotionRightInputProps = WithTheme<{\n $hasIcon: boolean;\n}>;\n\nexport const StyledMotionRightInput = styled(motion.input)<StyledMotionRightInputProps>`\n background-color: transparent;\n border: 1px solid transparent;\n border-bottom-color: rgba(\n ${({ theme }: StyledMotionRightInputProps) => theme['headline-rgb']},\n 0.45\n );\n color: ${({ theme }: StyledMotionRightInputProps) => theme.text};\n grid-area: header;\n padding: ${({ $hasIcon }) => ($hasIcon ? '5px 23px 5px 1px' : '5px 1px')};\n`;\n\nexport const StyledMotionRightInputIconWrapper = styled(motion.div)`\n align-items: center;\n display: flex;\n height: 100%;\n justify-content: center;\n position: absolute;\n right: 4px;\n top: 0;\n`;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"AccordionHead.styles.js","names":["motion","styled","css","StyledMotionAccordionHead","div","theme","text","StyledMotionIconWrapper","onClick","StyledMotionContentWrapper","$isWrapped","StyledMotionTitleWrapper","StyledTitleInputWrapper","StyledMotionTitle","$isOpen","undefined","$hasSearch","$color","StyledMotionTitleElementWrapper","StyledRightWrapper","StyledMotionSearchWrapper","StyledMotionRightElementWrapper","StyledMotionRightInput","input","$hasIcon","StyledMotionRightInputIconWrapper"],"sources":["../../../../../src/components/accordion/accordion-head/AccordionHead.styles.ts"],"sourcesContent":["import { motion } from 'motion/react';\nimport type { CSSProperties } from 'react';\nimport styled, { css } from 'styled-components';\nimport type { WithTheme } from '../../color-scheme-provider/ColorSchemeProvider';\n\ntype StyledMotionAccordionHeadProps = WithTheme<unknown>;\n\nexport const StyledMotionAccordionHead = styled(motion.div)<StyledMotionAccordionHeadProps>`\n align-items: center;\n color: ${({ theme }: StyledMotionAccordionHeadProps) => theme.text};\n display: flex;\n overflow: hidden;\n padding: 4px 0;\n\n &:focus-within {\n overflow: visible;\n position: relative;\n z-index: 1;\n }\n`;\n\nexport const StyledMotionIconWrapper = styled(motion.div)`\n align-items: center;\n cursor: ${({ onClick }) => (typeof onClick === 'function' ? 'pointer' : 'inherit')};\n display: flex;\n flex: 0 0 auto;\n height: 25px;\n justify-content: center;\n width: 25px;\n`;\n\ntype StyledMotionContentWrapperProps = WithTheme<{ $isWrapped: boolean }>;\n\nexport const StyledMotionContentWrapper = styled(motion.div)<StyledMotionContentWrapperProps>`\n align-self: flex-start;\n cursor: ${({ onClick }) => (typeof onClick === 'function' ? 'pointer' : 'inherit')};\n display: flex;\n flex: 1 1 auto;\n height: 100%;\n overflow: hidden;\n margin-right: 10px;\n\n &:focus-within {\n overflow: visible;\n }\n\n ${({ $isWrapped }) =>\n $isWrapped &&\n css`\n align-items: center;\n `}\n`;\n\nexport const StyledMotionTitleWrapper = styled(motion.div)`\n display: grid;\n flex: 0 1 auto;\n grid-template-areas: 'header';\n`;\n\nexport const StyledTitleInputWrapper = styled.div`\n width: 100%;\n`;\n\ntype StyledMotionTitleProps = WithTheme<{\n $isOpen: boolean;\n $isWrapped: boolean;\n $color?: CSSProperties['color'];\n $hasSearch: boolean;\n}>;\n\nexport const StyledMotionTitle = styled(motion.div)<StyledMotionTitleProps>`\n font-size: ${({ $isOpen, $isWrapped }) => ($isOpen && !$isWrapped ? '1.3rem' : undefined)};\n font-weight: ${({ $isOpen, $isWrapped }) => ($isOpen && $isWrapped ? 700 : 'normal')};\n grid-area: header;\n height: ${({ $isWrapped, $hasSearch }) => ($isWrapped || $hasSearch ? '100%' : undefined)};\n overflow: hidden;\n text-overflow: ellipsis;\n transform-origin: top left;\n user-select: none;\n color: ${({ $color, theme }: StyledMotionTitleProps) => $color ?? theme.text};\n white-space: ${({ $isOpen, $isWrapped, $hasSearch }) =>\n $isOpen && !$isWrapped && !$hasSearch ? 'normal' : 'nowrap'};\n\n will-change: unset !important;\n\n ${({ $isWrapped }) =>\n $isWrapped &&\n css`\n align-content: center;\n `}\n`;\n\nexport const StyledMotionTitleElementWrapper = styled(motion.div)`\n align-items: center;\n display: flex;\n flex: 1 1 auto;\n min-width: 0;\n`;\n\ntype StyledRightWrapperProps = {\n $isSearchActive: boolean;\n};\n\nexport const StyledRightWrapper = styled.div<StyledRightWrapperProps>`\n display: flex;\n flex: 0 0 auto;\n gap: 8px;\n margin-right: 5px;\n overflow: hidden;\n position: relative;\n\n &:focus-within {\n overflow: visible;\n }\n`;\n\nexport const StyledMotionSearchWrapper = styled(motion.div)`\n align-items: center;\n justify-content: end;\n position: relative;\n display: flex;\n width: 100%;\n`;\n\nexport const StyledMotionRightElementWrapper = styled(motion.div)`\n align-items: center;\n display: flex;\n\n cursor: ${({ onClick }) => (typeof onClick === 'function' ? 'pointer' : 'inherit')};\n\n will-change: unset !important;\n`;\n\ntype StyledMotionRightInputProps = WithTheme<{\n $hasIcon: boolean;\n}>;\n\nexport const StyledMotionRightInput = styled(motion.input)<StyledMotionRightInputProps>`\n background-color: transparent;\n border: 1px solid transparent;\n border-bottom-color: rgba(\n ${({ theme }: StyledMotionRightInputProps) => theme['headline-rgb']},\n 0.45\n );\n color: ${({ theme }: StyledMotionRightInputProps) => theme.text};\n grid-area: header;\n padding: ${({ $hasIcon }) => ($hasIcon ? '5px 23px 5px 1px' : '5px 1px')};\n`;\n\nexport const StyledMotionRightInputIconWrapper = styled(motion.div)`\n align-items: center;\n display: flex;\n height: 100%;\n justify-content: center;\n position: absolute;\n right: 4px;\n top: 0;\n`;\n"],"mappings":"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","ignoreList":[]}