@chayns-components/core 5.5.29 → 5.5.31-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 (259) hide show
  1. package/AGENTS.md +10 -0
  2. package/lib/cjs/components/accordion/Accordion.js +10 -0
  3. package/lib/cjs/components/accordion/Accordion.js.map +1 -1
  4. package/lib/cjs/components/accordion/Accordion.styles.js +0 -2
  5. package/lib/cjs/components/accordion/Accordion.styles.js.map +1 -1
  6. package/lib/cjs/components/amount-control/AmountControl.js +14 -3
  7. package/lib/cjs/components/amount-control/AmountControl.js.map +1 -1
  8. package/lib/cjs/components/amount-control/AmountControl.styles.js +0 -17
  9. package/lib/cjs/components/amount-control/AmountControl.styles.js.map +1 -1
  10. package/lib/cjs/components/button/Button.js +6 -1
  11. package/lib/cjs/components/button/Button.js.map +1 -1
  12. package/lib/cjs/components/button/Button.styles.js +0 -10
  13. package/lib/cjs/components/button/Button.styles.js.map +1 -1
  14. package/lib/cjs/components/checkbox/Checkbox.js +8 -1
  15. package/lib/cjs/components/checkbox/Checkbox.js.map +1 -1
  16. package/lib/cjs/components/checkbox/Checkbox.styles.js +0 -10
  17. package/lib/cjs/components/checkbox/Checkbox.styles.js.map +1 -1
  18. package/lib/cjs/components/combobox/ComboBox.js +7 -1
  19. package/lib/cjs/components/combobox/ComboBox.js.map +1 -1
  20. package/lib/cjs/components/combobox/ComboBox.styles.js +3 -10
  21. package/lib/cjs/components/combobox/ComboBox.styles.js.map +1 -1
  22. package/lib/cjs/components/context-menu/ContextMenu.js +12 -0
  23. package/lib/cjs/components/context-menu/ContextMenu.js.map +1 -1
  24. package/lib/cjs/components/context-menu/ContextMenu.styles.js +7 -35
  25. package/lib/cjs/components/context-menu/ContextMenu.styles.js.map +1 -1
  26. package/lib/cjs/components/copyable-content/CopyableContent.js +8 -1
  27. package/lib/cjs/components/copyable-content/CopyableContent.js.map +1 -1
  28. package/lib/cjs/components/copyable-content/CopyableContent.styles.js +7 -2
  29. package/lib/cjs/components/copyable-content/CopyableContent.styles.js.map +1 -1
  30. package/lib/cjs/components/file-list/file-item/FileItem.js +7 -0
  31. package/lib/cjs/components/file-list/file-item/FileItem.js.map +1 -1
  32. package/lib/cjs/components/file-list/file-item/FileItem.styles.js +1 -11
  33. package/lib/cjs/components/file-list/file-item/FileItem.styles.js.map +1 -1
  34. package/lib/cjs/components/file-select/FileSelect.js +12 -3
  35. package/lib/cjs/components/file-select/FileSelect.js.map +1 -1
  36. package/lib/cjs/components/file-select/FileSelect.styles.js +3 -9
  37. package/lib/cjs/components/file-select/FileSelect.styles.js.map +1 -1
  38. package/lib/cjs/components/filter/Filter.js +44 -16
  39. package/lib/cjs/components/filter/Filter.js.map +1 -1
  40. package/lib/cjs/components/filter/Filter.styles.js +2 -2
  41. package/lib/cjs/components/filter/Filter.styles.js.map +1 -1
  42. package/lib/cjs/components/filter-buttons/filter-button/FilterButton.js +9 -1
  43. package/lib/cjs/components/filter-buttons/filter-button/FilterButton.js.map +1 -1
  44. package/lib/cjs/components/filter-buttons/filter-button/FilterButton.styles.js +0 -2
  45. package/lib/cjs/components/filter-buttons/filter-button/FilterButton.styles.js.map +1 -1
  46. package/lib/cjs/components/grid-image/GridImage.js +7 -1
  47. package/lib/cjs/components/grid-image/GridImage.js.map +1 -1
  48. package/lib/cjs/components/grid-image/GridImage.styles.js +5 -10
  49. package/lib/cjs/components/grid-image/GridImage.styles.js.map +1 -1
  50. package/lib/cjs/components/grouped-image/GroupedImage.js +8 -2
  51. package/lib/cjs/components/grouped-image/GroupedImage.js.map +1 -1
  52. package/lib/cjs/components/grouped-image/GroupedImage.styles.js +3 -8
  53. package/lib/cjs/components/grouped-image/GroupedImage.styles.js.map +1 -1
  54. package/lib/cjs/components/highlight-slider/highlight-slider-item/HighlightSliderItem.js +7 -2
  55. package/lib/cjs/components/highlight-slider/highlight-slider-item/HighlightSliderItem.js.map +1 -1
  56. package/lib/cjs/components/highlight-slider/highlight-slider-item/HighlightSliderItem.styles.js +5 -10
  57. package/lib/cjs/components/highlight-slider/highlight-slider-item/HighlightSliderItem.styles.js.map +1 -1
  58. package/lib/cjs/components/icon/Icon.js +10 -2
  59. package/lib/cjs/components/icon/Icon.js.map +1 -1
  60. package/lib/cjs/components/icon/Icon.styles.js +4 -22
  61. package/lib/cjs/components/icon/Icon.styles.js.map +1 -1
  62. package/lib/cjs/components/input/Input.js +14 -2
  63. package/lib/cjs/components/input/Input.js.map +1 -1
  64. package/lib/cjs/components/input/Input.styles.js +0 -3
  65. package/lib/cjs/components/input/Input.styles.js.map +1 -1
  66. package/lib/cjs/components/list/List.utils.js +3 -9
  67. package/lib/cjs/components/list/List.utils.js.map +1 -1
  68. package/lib/cjs/components/list/list-item/ListItem.js +13 -2
  69. package/lib/cjs/components/list/list-item/ListItem.js.map +1 -1
  70. package/lib/cjs/components/list/list-item/ListItem.styles.js +9 -2
  71. package/lib/cjs/components/list/list-item/ListItem.styles.js.map +1 -1
  72. package/lib/cjs/components/list/list-item/list-item-head/ListItemHead.js +5 -4
  73. package/lib/cjs/components/list/list-item/list-item-head/ListItemHead.js.map +1 -1
  74. package/lib/cjs/components/list/list-item/list-item-head/list-item-image/ListItemImage.js +2 -5
  75. package/lib/cjs/components/list/list-item/list-item-head/list-item-image/ListItemImage.js.map +1 -1
  76. package/lib/cjs/components/multi-action-button/action-button/ActionButton.js +8 -2
  77. package/lib/cjs/components/multi-action-button/action-button/ActionButton.js.map +1 -1
  78. package/lib/cjs/components/multi-action-button/action-button/ActionButton.styles.js +3 -12
  79. package/lib/cjs/components/multi-action-button/action-button/ActionButton.styles.js.map +1 -1
  80. package/lib/cjs/components/radio-button/RadioButton.js +7 -1
  81. package/lib/cjs/components/radio-button/RadioButton.js.map +1 -1
  82. package/lib/cjs/components/radio-button/RadioButton.styles.js +0 -10
  83. package/lib/cjs/components/radio-button/RadioButton.styles.js.map +1 -1
  84. package/lib/cjs/components/search-input/SearchInput.js +9 -10
  85. package/lib/cjs/components/search-input/SearchInput.js.map +1 -1
  86. package/lib/cjs/components/search-input/SearchInput.styles.js +5 -15
  87. package/lib/cjs/components/search-input/SearchInput.styles.js.map +1 -1
  88. package/lib/cjs/components/sharing-bar/SharingBar.js +13 -0
  89. package/lib/cjs/components/sharing-bar/SharingBar.js.map +1 -1
  90. package/lib/cjs/components/sharing-bar/SharingBar.styles.js +1 -5
  91. package/lib/cjs/components/sharing-bar/SharingBar.styles.js.map +1 -1
  92. package/lib/cjs/components/slider/Slider.js +13 -6
  93. package/lib/cjs/components/slider/Slider.js.map +1 -1
  94. package/lib/cjs/components/slider/Slider.styles.js +2 -9
  95. package/lib/cjs/components/slider/Slider.styles.js.map +1 -1
  96. package/lib/cjs/components/slider-button/SliderButton.js +6 -2
  97. package/lib/cjs/components/slider-button/SliderButton.js.map +1 -1
  98. package/lib/cjs/components/slider-button/SliderButton.styles.js +2 -15
  99. package/lib/cjs/components/slider-button/SliderButton.styles.js.map +1 -1
  100. package/lib/cjs/components/tag-input/TagInput.js +8 -1
  101. package/lib/cjs/components/tag-input/TagInput.js.map +1 -1
  102. package/lib/cjs/components/tag-input/TagInput.styles.js +1 -3
  103. package/lib/cjs/components/tag-input/TagInput.styles.js.map +1 -1
  104. package/lib/cjs/components/text-area/TextArea.js +68 -56
  105. package/lib/cjs/components/text-area/TextArea.js.map +1 -1
  106. package/lib/cjs/components/text-area/TextArea.styles.js +0 -2
  107. package/lib/cjs/components/text-area/TextArea.styles.js.map +1 -1
  108. package/lib/cjs/components/truncation/Truncation.js +9 -5
  109. package/lib/cjs/components/truncation/Truncation.js.map +1 -1
  110. package/lib/cjs/components/truncation/Truncation.styles.js +0 -11
  111. package/lib/cjs/components/truncation/Truncation.styles.js.map +1 -1
  112. package/lib/cjs/hooks/useFocusRingPortal.js +197 -0
  113. package/lib/cjs/hooks/useFocusRingPortal.js.map +1 -0
  114. package/lib/cjs/hooks/useKeyboardFocusHighlighting.js +9 -3
  115. package/lib/cjs/hooks/useKeyboardFocusHighlighting.js.map +1 -1
  116. package/lib/cjs/index.js +14 -0
  117. package/lib/cjs/index.js.map +1 -1
  118. package/lib/esm/components/accordion/Accordion.js +10 -0
  119. package/lib/esm/components/accordion/Accordion.js.map +1 -1
  120. package/lib/esm/components/accordion/Accordion.styles.js +0 -2
  121. package/lib/esm/components/accordion/Accordion.styles.js.map +1 -1
  122. package/lib/esm/components/amount-control/AmountControl.js +14 -3
  123. package/lib/esm/components/amount-control/AmountControl.js.map +1 -1
  124. package/lib/esm/components/amount-control/AmountControl.styles.js +0 -17
  125. package/lib/esm/components/amount-control/AmountControl.styles.js.map +1 -1
  126. package/lib/esm/components/button/Button.js +7 -2
  127. package/lib/esm/components/button/Button.js.map +1 -1
  128. package/lib/esm/components/button/Button.styles.js +0 -10
  129. package/lib/esm/components/button/Button.styles.js.map +1 -1
  130. package/lib/esm/components/checkbox/Checkbox.js +8 -1
  131. package/lib/esm/components/checkbox/Checkbox.js.map +1 -1
  132. package/lib/esm/components/checkbox/Checkbox.styles.js +0 -10
  133. package/lib/esm/components/checkbox/Checkbox.styles.js.map +1 -1
  134. package/lib/esm/components/combobox/ComboBox.js +7 -1
  135. package/lib/esm/components/combobox/ComboBox.js.map +1 -1
  136. package/lib/esm/components/combobox/ComboBox.styles.js +3 -10
  137. package/lib/esm/components/combobox/ComboBox.styles.js.map +1 -1
  138. package/lib/esm/components/context-menu/ContextMenu.js +11 -0
  139. package/lib/esm/components/context-menu/ContextMenu.js.map +1 -1
  140. package/lib/esm/components/context-menu/ContextMenu.styles.js +7 -35
  141. package/lib/esm/components/context-menu/ContextMenu.styles.js.map +1 -1
  142. package/lib/esm/components/copyable-content/CopyableContent.js +8 -1
  143. package/lib/esm/components/copyable-content/CopyableContent.js.map +1 -1
  144. package/lib/esm/components/copyable-content/CopyableContent.styles.js +7 -2
  145. package/lib/esm/components/copyable-content/CopyableContent.styles.js.map +1 -1
  146. package/lib/esm/components/file-list/file-item/FileItem.js +8 -1
  147. package/lib/esm/components/file-list/file-item/FileItem.js.map +1 -1
  148. package/lib/esm/components/file-list/file-item/FileItem.styles.js +1 -11
  149. package/lib/esm/components/file-list/file-item/FileItem.styles.js.map +1 -1
  150. package/lib/esm/components/file-select/FileSelect.js +13 -4
  151. package/lib/esm/components/file-select/FileSelect.js.map +1 -1
  152. package/lib/esm/components/file-select/FileSelect.styles.js +3 -9
  153. package/lib/esm/components/file-select/FileSelect.styles.js.map +1 -1
  154. package/lib/esm/components/filter/Filter.js +43 -16
  155. package/lib/esm/components/filter/Filter.js.map +1 -1
  156. package/lib/esm/components/filter/Filter.styles.js +2 -2
  157. package/lib/esm/components/filter/Filter.styles.js.map +1 -1
  158. package/lib/esm/components/filter-buttons/filter-button/FilterButton.js +10 -2
  159. package/lib/esm/components/filter-buttons/filter-button/FilterButton.js.map +1 -1
  160. package/lib/esm/components/filter-buttons/filter-button/FilterButton.styles.js +0 -2
  161. package/lib/esm/components/filter-buttons/filter-button/FilterButton.styles.js.map +1 -1
  162. package/lib/esm/components/grid-image/GridImage.js +8 -2
  163. package/lib/esm/components/grid-image/GridImage.js.map +1 -1
  164. package/lib/esm/components/grid-image/GridImage.styles.js +4 -9
  165. package/lib/esm/components/grid-image/GridImage.styles.js.map +1 -1
  166. package/lib/esm/components/grouped-image/GroupedImage.js +9 -3
  167. package/lib/esm/components/grouped-image/GroupedImage.js.map +1 -1
  168. package/lib/esm/components/grouped-image/GroupedImage.styles.js +3 -8
  169. package/lib/esm/components/grouped-image/GroupedImage.styles.js.map +1 -1
  170. package/lib/esm/components/highlight-slider/highlight-slider-item/HighlightSliderItem.js +8 -3
  171. package/lib/esm/components/highlight-slider/highlight-slider-item/HighlightSliderItem.js.map +1 -1
  172. package/lib/esm/components/highlight-slider/highlight-slider-item/HighlightSliderItem.styles.js +4 -9
  173. package/lib/esm/components/highlight-slider/highlight-slider-item/HighlightSliderItem.styles.js.map +1 -1
  174. package/lib/esm/components/icon/Icon.js +9 -2
  175. package/lib/esm/components/icon/Icon.js.map +1 -1
  176. package/lib/esm/components/icon/Icon.styles.js +4 -22
  177. package/lib/esm/components/icon/Icon.styles.js.map +1 -1
  178. package/lib/esm/components/input/Input.js +14 -2
  179. package/lib/esm/components/input/Input.js.map +1 -1
  180. package/lib/esm/components/input/Input.styles.js +0 -3
  181. package/lib/esm/components/input/Input.styles.js.map +1 -1
  182. package/lib/esm/components/list/List.utils.js +1 -6
  183. package/lib/esm/components/list/List.utils.js.map +1 -1
  184. package/lib/esm/components/list/list-item/ListItem.js +13 -2
  185. package/lib/esm/components/list/list-item/ListItem.js.map +1 -1
  186. package/lib/esm/components/list/list-item/ListItem.styles.js +9 -2
  187. package/lib/esm/components/list/list-item/ListItem.styles.js.map +1 -1
  188. package/lib/esm/components/list/list-item/list-item-head/ListItemHead.js +5 -4
  189. package/lib/esm/components/list/list-item/list-item-head/ListItemHead.js.map +1 -1
  190. package/lib/esm/components/list/list-item/list-item-head/list-item-image/ListItemImage.js +2 -5
  191. package/lib/esm/components/list/list-item/list-item-head/list-item-image/ListItemImage.js.map +1 -1
  192. package/lib/esm/components/multi-action-button/action-button/ActionButton.js +7 -2
  193. package/lib/esm/components/multi-action-button/action-button/ActionButton.js.map +1 -1
  194. package/lib/esm/components/multi-action-button/action-button/ActionButton.styles.js +3 -12
  195. package/lib/esm/components/multi-action-button/action-button/ActionButton.styles.js.map +1 -1
  196. package/lib/esm/components/radio-button/RadioButton.js +7 -1
  197. package/lib/esm/components/radio-button/RadioButton.js.map +1 -1
  198. package/lib/esm/components/radio-button/RadioButton.styles.js +0 -10
  199. package/lib/esm/components/radio-button/RadioButton.styles.js.map +1 -1
  200. package/lib/esm/components/search-input/SearchInput.js +9 -10
  201. package/lib/esm/components/search-input/SearchInput.js.map +1 -1
  202. package/lib/esm/components/search-input/SearchInput.styles.js +5 -15
  203. package/lib/esm/components/search-input/SearchInput.styles.js.map +1 -1
  204. package/lib/esm/components/sharing-bar/SharingBar.js +12 -0
  205. package/lib/esm/components/sharing-bar/SharingBar.js.map +1 -1
  206. package/lib/esm/components/sharing-bar/SharingBar.styles.js +1 -5
  207. package/lib/esm/components/sharing-bar/SharingBar.styles.js.map +1 -1
  208. package/lib/esm/components/slider/Slider.js +13 -6
  209. package/lib/esm/components/slider/Slider.js.map +1 -1
  210. package/lib/esm/components/slider/Slider.styles.js +1 -8
  211. package/lib/esm/components/slider/Slider.styles.js.map +1 -1
  212. package/lib/esm/components/slider-button/SliderButton.js +6 -2
  213. package/lib/esm/components/slider-button/SliderButton.js.map +1 -1
  214. package/lib/esm/components/slider-button/SliderButton.styles.js +1 -14
  215. package/lib/esm/components/slider-button/SliderButton.styles.js.map +1 -1
  216. package/lib/esm/components/tag-input/TagInput.js +8 -1
  217. package/lib/esm/components/tag-input/TagInput.js.map +1 -1
  218. package/lib/esm/components/tag-input/TagInput.styles.js +1 -3
  219. package/lib/esm/components/tag-input/TagInput.styles.js.map +1 -1
  220. package/lib/esm/components/text-area/TextArea.js +68 -56
  221. package/lib/esm/components/text-area/TextArea.js.map +1 -1
  222. package/lib/esm/components/text-area/TextArea.styles.js +0 -2
  223. package/lib/esm/components/text-area/TextArea.styles.js.map +1 -1
  224. package/lib/esm/components/truncation/Truncation.js +9 -5
  225. package/lib/esm/components/truncation/Truncation.js.map +1 -1
  226. package/lib/esm/components/truncation/Truncation.styles.js +0 -11
  227. package/lib/esm/components/truncation/Truncation.styles.js.map +1 -1
  228. package/lib/esm/hooks/useFocusRingPortal.js +188 -0
  229. package/lib/esm/hooks/useFocusRingPortal.js.map +1 -0
  230. package/lib/esm/hooks/useKeyboardFocusHighlighting.js +7 -2
  231. package/lib/esm/hooks/useKeyboardFocusHighlighting.js.map +1 -1
  232. package/lib/esm/index.js +2 -0
  233. package/lib/esm/index.js.map +1 -1
  234. package/lib/types/components/amount-control/AmountControl.styles.d.ts +4 -8
  235. package/lib/types/components/button/Button.styles.d.ts +2 -4
  236. package/lib/types/components/checkbox/Checkbox.styles.d.ts +1 -5
  237. package/lib/types/components/combobox/ComboBox.styles.d.ts +2 -4
  238. package/lib/types/components/copyable-content/CopyableContent.d.ts +4 -0
  239. package/lib/types/components/file-select/FileSelect.styles.d.ts +2 -4
  240. package/lib/types/components/grid-image/GridImage.styles.d.ts +2 -4
  241. package/lib/types/components/grouped-image/GroupedImage.styles.d.ts +2 -4
  242. package/lib/types/components/highlight-slider/highlight-slider-item/HighlightSliderItem.styles.d.ts +1 -5
  243. package/lib/types/components/icon/Icon.styles.d.ts +0 -1
  244. package/lib/types/components/input/Input.styles.d.ts +4 -4
  245. package/lib/types/components/multi-action-button/action-button/ActionButton.styles.d.ts +2 -4
  246. package/lib/types/components/radio-button/RadioButton.styles.d.ts +2 -4
  247. package/lib/types/components/search-input/SearchInput.styles.d.ts +6 -13
  248. package/lib/types/components/slider/Slider.styles.d.ts +8 -12
  249. package/lib/types/components/slider-button/SliderButton.styles.d.ts +2 -4
  250. package/lib/types/components/truncation/Truncation.styles.d.ts +1 -5
  251. package/lib/types/hooks/useFocusRingPortal.d.ts +18 -0
  252. package/lib/types/hooks/useKeyboardFocusHighlighting.d.ts +1 -0
  253. package/lib/types/index.d.ts +2 -0
  254. package/package.json +4 -4
  255. package/lib/cjs/utils/keyboardFocusHighlighting.styles.js +0 -29
  256. package/lib/cjs/utils/keyboardFocusHighlighting.styles.js.map +0 -1
  257. package/lib/esm/utils/keyboardFocusHighlighting.styles.js +0 -24
  258. package/lib/esm/utils/keyboardFocusHighlighting.styles.js.map +0 -1
  259. package/lib/types/utils/keyboardFocusHighlighting.styles.d.ts +0 -9
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBox.js","names":["_chaynsApi","require","_react","_interopRequireWildcard","_environment","_AreaContextProvider","_Icon","_interopRequireDefault","_ComboBoxItem","_ComboBox","_DropdownBodyWrapper","_dropdown","_element","_ComboBox2","_ComboBox3","_useKeyboardFocusHighlighting","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ComboBox","forwardRef","bodyWidth","direction","DropdownDirection","RIGHT","isDisabled","lists","maxHeight","onSelect","placeholder","prefix","container","shouldCaptureEvents","selectedItem","onHide","onShow","shouldShowBigImage","shouldShowClearIcon","shouldShowRoundImage","onInputFocus","prefixMinWidth","size","ComboBoxSize","NORMAL","shouldUseFullWidth","onInputChange","shouldUseCurrentItemWidth","onInputBlur","shouldShowTransparentBackground","inputValue","shouldDropDownUseMaxItemWidth","shouldEnableKeyboardHighlighting","ref","internalSelectedItem","setInternalSelectedItem","useState","isAnimating","setIsAnimating","minWidth","setMinWidth","undefined","bodyMinWidth","setBodyMinWidth","focusedIndex","setFocusedIndex","availableMaxHeight","setAvailableMaxHeight","isInputFocused","useRef","styledComboBoxElementRef","comboBoxHeaderRef","comboBoxInputRef","contentRef","parentSize","useElementSize","shouldUseParentElement","functions","useFunctions","values","useValues","isTouch","useIsTouch","areaProvider","useContext","AreaContext","useEffect","calculatedMinWidth","calculatedBodyMinWidth","getComboBoxWidthResult","parentWidth","width","shouldChangeColor","useMemo","shouldShowKeyboardHighlighting","useKeyboardFocusHighlighting","shouldDisableActions","combinedLists","flatMap","list","length","some","item","value","effectiveMaxHeight","Math","min","contentHeight","flatItems","height","reduce","isBigItem","subtext","trim","handleInputFocus","useCallback","event","current","handleInputBlur","handleOpen","handleClose","handleContainerBlur","_contentRef$current","nextFocusedElement","relatedTarget","currentContainer","currentTarget","contains","restoreTriggerFocus","requestAnimationFrame","_comboBoxHeaderRef$cu","_comboBoxInputRef$cur","focus","handleSetSelectedItem","itemToSelect","onSelectResult","Promise","then","shouldPreventSelection","handleClear","preventDefault","stopPropagation","handleKeyDown","key","_contentRef$current2","children","stepDirection","newIndex","attempts","newElement","shouldSkip","id","startsWith","endsWith","prevElement","tabIndex","focusedElement","_contentRef$current3","element","newSelectedItem","find","String","replace","document","addEventListener","removeEventListener","placeholderImageUrl","imageUrl","placeholderIcon","icons","placeholderText","text","shouldShowRoundPlaceholderImage","selectedItemList","handleHeaderClick","handleHeaderKeyDown","useImperativeHandle","hide","show","comboBoxGroups","map","createElement","Fragment","groupName","StyledComboBoxTopic","isSelected","StyledComboBox","$minWidth","$shouldUseFullWidth","onBlur","StyledComboBoxHeader","$direction","onClick","$isOpen","$isTouch","$size","$shouldShowTransparentBackground","$isDisabled","$shouldChangeColor","$shouldShowBigImage","$shouldShowKeyboardHighlighting","onKeyDown","role","StyledComboBoxPrefixAndPlaceholderWrapper","StyledComboBoxPrefix","$prefixMinWidth","StyledComboBoxPlaceholder","$shouldReduceOpacity","StyledComboBoxPlaceholderImage","src","$shouldShowRoundImage","StyledComboBoxInput","disabled","onChange","onFocus","StyledComboBoxPlaceholderText","suffixElement","StyledComboBoxClearIconWrapper","StyledComboBoxIconWrapper","$shouldShowBorderLeft","anchorElement","onAvailableMaxHeightChange","onClose","shouldShowDropdown","minBodyWidth","StyledComboBoxBody","$maxHeight","className","displayName","_default","exports"],"sources":["../../../../src/components/combobox/ComboBox.tsx"],"sourcesContent":["import { useFunctions, useValues } from 'chayns-api';\nimport React, {\n FocusEventHandler,\n KeyboardEventHandler,\n forwardRef,\n Fragment,\n useCallback,\n useContext,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useIsTouch } from '../../utils/environment';\nimport { AreaContext } from '../area-provider/AreaContextProvider';\nimport Icon from '../icon/Icon';\nimport ComboBoxItem from './combobox-item/ComboBoxItem';\nimport {\n StyledComboBox,\n StyledComboBoxBody,\n StyledComboBoxClearIconWrapper,\n StyledComboBoxHeader,\n StyledComboBoxIconWrapper,\n StyledComboBoxInput,\n StyledComboBoxPlaceholder,\n StyledComboBoxPlaceholderImage,\n StyledComboBoxPlaceholderText,\n StyledComboBoxPrefix,\n StyledComboBoxPrefixAndPlaceholderWrapper,\n StyledComboBoxTopic,\n} from './ComboBox.styles';\nimport DropdownBodyWrapper from '../dropdown-body-wrapper/DropdownBodyWrapper';\nimport { DropdownDirection } from '../../types/dropdown';\nimport { useElementSize } from '../../hooks/element';\nimport { ComboBoxProps, ComboBoxRef, ComboBoxSize, IComboBoxItem } from './ComboBox.types';\nimport { getComboBoxWidthResult } from './ComboBox.utils';\nimport { useKeyboardFocusHighlighting } from '../../hooks/useKeyboardFocusHighlighting';\n\nconst ComboBox = forwardRef<ComboBoxRef, ComboBoxProps>(\n (\n {\n bodyWidth,\n direction = DropdownDirection.RIGHT,\n isDisabled = false,\n lists,\n maxHeight = 280,\n onSelect,\n placeholder,\n prefix,\n container,\n shouldCaptureEvents,\n selectedItem,\n onHide,\n onShow,\n shouldShowBigImage,\n shouldShowClearIcon,\n shouldShowRoundImage,\n onInputFocus,\n prefixMinWidth,\n size = ComboBoxSize.NORMAL,\n shouldUseFullWidth = false,\n onInputChange,\n shouldUseCurrentItemWidth = false,\n onInputBlur,\n shouldShowTransparentBackground = false,\n inputValue,\n shouldDropDownUseMaxItemWidth = false,\n shouldEnableKeyboardHighlighting,\n },\n ref,\n ) => {\n const [internalSelectedItem, setInternalSelectedItem] = useState<IComboBoxItem>();\n const [isAnimating, setIsAnimating] = useState(false);\n const [minWidth, setMinWidth] = useState<number | undefined>(undefined);\n const [bodyMinWidth, setBodyMinWidth] = useState(0);\n const [focusedIndex, setFocusedIndex] = useState<number | null>(null);\n const [availableMaxHeight, setAvailableMaxHeight] = useState<number | undefined>(undefined);\n\n const isInputFocused = useRef(false);\n const styledComboBoxElementRef = useRef<HTMLDivElement>(null);\n const comboBoxHeaderRef = useRef<HTMLDivElement>(null);\n const comboBoxInputRef = useRef<HTMLInputElement>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n\n const parentSize = useElementSize(styledComboBoxElementRef, {\n shouldUseParentElement: true,\n });\n\n const functions = useFunctions();\n const values = useValues();\n const isTouch = useIsTouch();\n const areaProvider = useContext(AreaContext);\n\n useEffect(() => {\n if (!parentSize) {\n return;\n }\n\n const { minWidth: calculatedMinWidth, bodyMinWidth: calculatedBodyMinWidth } =\n getComboBoxWidthResult({\n functions,\n internalSelectedItem,\n lists,\n parentWidth: parentSize.width,\n placeholder,\n prefix,\n prefixMinWidth,\n selectedItem,\n shouldDropDownUseMaxItemWidth,\n shouldShowBigImage,\n shouldShowClearIcon,\n shouldUseCurrentItemWidth,\n shouldUseFullWidth,\n values,\n });\n\n setMinWidth(calculatedMinWidth);\n setBodyMinWidth(calculatedBodyMinWidth);\n }, [\n functions,\n internalSelectedItem,\n lists,\n parentSize,\n placeholder,\n prefix,\n prefixMinWidth,\n selectedItem,\n shouldDropDownUseMaxItemWidth,\n shouldShowBigImage,\n shouldShowClearIcon,\n shouldUseCurrentItemWidth,\n shouldUseFullWidth,\n values,\n ]);\n\n const shouldChangeColor = useMemo(\n () => areaProvider.shouldChangeColor ?? false,\n [areaProvider.shouldChangeColor],\n );\n\n const shouldShowKeyboardHighlighting = useKeyboardFocusHighlighting(\n shouldEnableKeyboardHighlighting && !isDisabled,\n );\n\n const shouldDisableActions = useMemo(() => {\n if (!selectedItem) {\n return false;\n }\n\n const combinedLists = lists.flatMap((list) => list.list);\n\n return (\n combinedLists.length === 1 &&\n combinedLists.some((item) => item.value === selectedItem.value)\n );\n }, [lists, selectedItem]);\n\n // Limits the configured maxHeight by the height that is actually available inside the\n // container (reported by the DropdownBodyWrapper). This prevents the dropdown from being cut\n // off when it is opened to the top or bottom and there is not enough space.\n const effectiveMaxHeight = useMemo(() => {\n if (typeof availableMaxHeight === 'number' && availableMaxHeight > 0) {\n return Math.min(maxHeight, availableMaxHeight);\n }\n\n return maxHeight;\n }, [availableMaxHeight, maxHeight]);\n\n const contentHeight = useMemo(() => {\n const flatItems = lists.flatMap((list) => list.list);\n\n let height = flatItems.reduce((value, item) => {\n const isBigItem =\n shouldShowBigImage ||\n (typeof item.subtext === 'string' && item.subtext.trim() !== '');\n\n return value + (isBigItem ? 56 : 38);\n }, 0);\n\n if (lists.length > 1) {\n height += lists.length * 38;\n }\n\n if (effectiveMaxHeight < height) {\n height = effectiveMaxHeight;\n }\n\n return height;\n }, [effectiveMaxHeight, lists, shouldShowBigImage]);\n\n const handleInputFocus: FocusEventHandler<HTMLInputElement> = useCallback(\n (event) => {\n isInputFocused.current = true;\n onInputFocus?.(event);\n },\n [onInputFocus],\n );\n\n const handleInputBlur: FocusEventHandler<HTMLInputElement> = useCallback(\n (event) => {\n isInputFocused.current = false;\n onInputBlur?.(event);\n },\n [onInputBlur],\n );\n\n const handleOpen = useCallback(() => {\n if (typeof onShow === 'function') {\n onShow();\n }\n\n setIsAnimating(true);\n }, [onShow]);\n\n const handleClose = useCallback(() => {\n if (typeof onHide === 'function') {\n onHide();\n }\n\n setIsAnimating(false);\n }, [onHide]);\n\n const handleContainerBlur = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n const nextFocusedElement = event.relatedTarget as Node | null;\n const currentContainer = event.currentTarget as HTMLElement;\n\n if (\n !nextFocusedElement ||\n (!currentContainer.contains(nextFocusedElement) &&\n !contentRef.current?.contains(nextFocusedElement))\n ) {\n handleClose();\n }\n },\n [handleClose],\n );\n\n const restoreTriggerFocus = useCallback(() => {\n // Delay is needed so focus happens after dropdown close/render cycle.\n requestAnimationFrame(() => {\n if (typeof inputValue === 'string') {\n comboBoxInputRef.current?.focus();\n return;\n }\n\n comboBoxHeaderRef.current?.focus();\n });\n }, [inputValue]);\n\n /**\n * This function sets the selected item\n */\n const handleSetSelectedItem = useCallback(\n (itemToSelect?: IComboBoxItem) => {\n if (typeof onSelect === 'function') {\n const onSelectResult = onSelect(itemToSelect);\n\n if (onSelectResult === false) {\n return;\n }\n\n if (onSelectResult instanceof Promise) {\n void onSelectResult.then((shouldPreventSelection) => {\n if (shouldPreventSelection) return;\n\n setInternalSelectedItem(itemToSelect);\n handleClose();\n restoreTriggerFocus();\n });\n\n return;\n }\n }\n\n setInternalSelectedItem(itemToSelect);\n handleClose();\n restoreTriggerFocus();\n },\n [handleClose, onSelect, restoreTriggerFocus],\n );\n\n const handleClear = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n event.preventDefault();\n event.stopPropagation();\n\n handleSetSelectedItem(undefined);\n },\n [handleSetSelectedItem],\n );\n\n useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (!isAnimating) return;\n\n if (e.key === 'Escape') {\n e.preventDefault();\n handleClose();\n restoreTriggerFocus();\n return;\n }\n\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n e.preventDefault();\n\n const children = contentRef.current?.children;\n\n if (!children || children.length === 0) return;\n\n const stepDirection = e.key === 'ArrowUp' ? -1 : 1;\n\n let newIndex = focusedIndex ?? -1;\n\n let attempts = 0;\n\n do {\n newIndex = (newIndex + stepDirection + children.length) % children.length;\n\n const newElement = children[newIndex] as HTMLDivElement;\n\n let shouldSkip = false;\n\n if (\n newElement.id.startsWith('combobox-group--') ||\n newElement.id.endsWith('--disabled-item')\n ) {\n shouldSkip = true;\n }\n\n if (!shouldSkip) break;\n\n attempts++;\n } while (attempts < children.length);\n\n if (focusedIndex !== null) {\n const prevElement = children[focusedIndex] as HTMLDivElement;\n\n prevElement.tabIndex = -1;\n }\n\n setFocusedIndex(newIndex);\n\n const focusedElement = children[newIndex] as HTMLDivElement;\n\n focusedElement.tabIndex = 0;\n focusedElement.focus();\n } else if ((e.key === 'Enter' || e.key === ' ') && focusedIndex !== null) {\n e.preventDefault();\n const element = contentRef.current?.children[focusedIndex];\n\n if (!element) return;\n\n const { id } = element;\n\n let newSelectedItem: IComboBoxItem | undefined;\n\n lists.some((list) => {\n newSelectedItem = list.list.find(\n ({ value }) => String(value) === id.replace('combobox-item__', ''),\n );\n\n return !!newSelectedItem;\n });\n\n if (newSelectedItem) {\n handleSetSelectedItem(newSelectedItem);\n }\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n\n return () => document.removeEventListener('keydown', handleKeyDown);\n }, [\n focusedIndex,\n handleClose,\n handleSetSelectedItem,\n isAnimating,\n lists,\n restoreTriggerFocus,\n ]);\n\n /**\n * This function sets the external selected item\n */\n useEffect(() => {\n setIsAnimating(false);\n setInternalSelectedItem(selectedItem);\n }, [selectedItem]);\n\n const placeholderImageUrl = useMemo(() => {\n if (selectedItem) {\n return selectedItem.imageUrl;\n }\n\n if (internalSelectedItem) {\n return internalSelectedItem.imageUrl;\n }\n\n return undefined;\n }, [internalSelectedItem, selectedItem]);\n\n const placeholderIcon = useMemo(() => {\n if (selectedItem) {\n return selectedItem.icons;\n }\n\n if (internalSelectedItem) {\n return internalSelectedItem.icons;\n }\n\n return undefined;\n }, [internalSelectedItem, selectedItem]);\n\n /**\n * This function resets the placeholder\n */\n const placeholderText = useMemo(() => {\n let text = placeholder;\n\n if (selectedItem) {\n text = selectedItem.text;\n } else if (internalSelectedItem) {\n text = internalSelectedItem.text;\n }\n\n return text;\n }, [internalSelectedItem, placeholder, selectedItem]);\n\n const shouldShowRoundPlaceholderImage = useMemo(() => {\n const selectedItemList = lists.find((list) =>\n list.list.some(\n ({ value }) => value === (selectedItem?.value ?? internalSelectedItem?.value),\n ),\n );\n\n return selectedItemList?.shouldShowRoundImage ?? shouldShowRoundImage;\n }, [internalSelectedItem?.value, lists, selectedItem?.value, shouldShowRoundImage]);\n\n /**\n * This function opens the content of the combobox\n */\n const handleHeaderClick = useCallback(() => {\n if (!isDisabled && !isInputFocused.current) {\n if (isAnimating) {\n handleClose();\n } else {\n handleOpen();\n }\n }\n }, [handleClose, handleOpen, isAnimating, isDisabled]);\n\n const handleHeaderKeyDown: KeyboardEventHandler<HTMLDivElement> = useCallback(\n (event) => {\n if (isDisabled || typeof inputValue === 'string') {\n return;\n }\n\n if (event.key === 'Escape' && isAnimating) {\n event.preventDefault();\n handleClose();\n restoreTriggerFocus();\n return;\n }\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n handleHeaderClick();\n }\n },\n [\n handleClose,\n handleHeaderClick,\n inputValue,\n isAnimating,\n isDisabled,\n restoreTriggerFocus,\n ],\n );\n\n useImperativeHandle(\n ref,\n () => ({\n hide: handleClose,\n show: handleOpen,\n }),\n [handleClose, handleOpen],\n );\n\n const comboBoxGroups = useMemo(\n () =>\n lists.map((list) => (\n <Fragment key={list.groupName ?? 'default-group'}>\n {list.groupName && lists.length > 1 && (\n <StyledComboBoxTopic id={`combobox-group--${list.groupName}`}>\n {list.groupName}\n </StyledComboBoxTopic>\n )}\n {list.list.map((item) => (\n <ComboBoxItem\n key={`item-${item.text}`}\n item={item}\n isSelected={\n selectedItem ? item.value === selectedItem.value : false\n }\n onSelect={handleSetSelectedItem}\n shouldShowBigImage={shouldShowBigImage}\n shouldShowRoundImage={\n list.shouldShowRoundImage ?? shouldShowRoundImage\n }\n />\n ))}\n </Fragment>\n )),\n [handleSetSelectedItem, lists, selectedItem, shouldShowBigImage, shouldShowRoundImage],\n );\n\n return useMemo(\n () => (\n <StyledComboBox\n ref={styledComboBoxElementRef}\n $minWidth={minWidth}\n $shouldUseFullWidth={shouldUseFullWidth}\n onBlur={handleContainerBlur}\n >\n <StyledComboBoxHeader\n ref={comboBoxHeaderRef}\n $direction={direction}\n onClick={handleHeaderClick}\n $isOpen={isAnimating}\n $isTouch={isTouch}\n $size={size}\n $shouldShowTransparentBackground={shouldShowTransparentBackground}\n $isDisabled={isDisabled}\n $shouldChangeColor={shouldChangeColor}\n $shouldShowBigImage={shouldShowBigImage}\n $shouldShowKeyboardHighlighting={shouldShowKeyboardHighlighting}\n onKeyDown={handleHeaderKeyDown}\n tabIndex={!isDisabled && typeof inputValue !== 'string' ? 0 : undefined}\n role={!isDisabled && typeof inputValue !== 'string' ? 'button' : undefined}\n aria-expanded={\n !isDisabled && typeof inputValue !== 'string' ? isAnimating : undefined\n }\n >\n <StyledComboBoxPrefixAndPlaceholderWrapper>\n {prefix && (\n <StyledComboBoxPrefix $prefixMinWidth={prefixMinWidth}>\n {prefix}\n </StyledComboBoxPrefix>\n )}\n <StyledComboBoxPlaceholder\n $shouldReduceOpacity={!selectedItem && !internalSelectedItem}\n >\n {placeholderImageUrl && (\n <StyledComboBoxPlaceholderImage\n src={placeholderImageUrl}\n $shouldShowBigImage={shouldShowBigImage}\n $shouldShowRoundImage={shouldShowRoundPlaceholderImage}\n />\n )}\n {placeholderIcon && <Icon icons={placeholderIcon} />}\n {typeof inputValue === 'string' ? (\n <StyledComboBoxInput\n ref={comboBoxInputRef}\n disabled={isDisabled}\n value={inputValue}\n onChange={onInputChange}\n onBlur={handleInputBlur}\n onFocus={handleInputFocus}\n placeholder={placeholderText}\n />\n ) : (\n <StyledComboBoxPlaceholderText>\n {placeholderText}\n </StyledComboBoxPlaceholderText>\n )}\n {internalSelectedItem &&\n internalSelectedItem.suffixElement &&\n internalSelectedItem.suffixElement}\n </StyledComboBoxPlaceholder>\n </StyledComboBoxPrefixAndPlaceholderWrapper>\n {shouldShowClearIcon && internalSelectedItem && (\n <StyledComboBoxClearIconWrapper\n $isDisabled={isDisabled}\n onClick={handleClear}\n >\n <Icon icons={['fa fa-times']} />\n </StyledComboBoxClearIconWrapper>\n )}\n {!shouldDisableActions && (\n <StyledComboBoxIconWrapper\n $isDisabled={isDisabled}\n $size={size}\n $shouldShowBorderLeft={\n shouldShowClearIcon === true &&\n internalSelectedItem !== undefined\n }\n >\n <Icon icons={['fa fa-chevron-down']} isDisabled={isDisabled} />\n </StyledComboBoxIconWrapper>\n )}\n </StyledComboBoxHeader>\n {styledComboBoxElementRef.current && (\n <DropdownBodyWrapper\n anchorElement={styledComboBoxElementRef.current}\n bodyWidth={bodyWidth}\n contentHeight={contentHeight}\n shouldCaptureEvents={shouldCaptureEvents}\n onAvailableMaxHeightChange={setAvailableMaxHeight}\n onClose={handleClose}\n direction={direction}\n container={container}\n shouldShowDropdown={isAnimating}\n minBodyWidth={bodyWidth ?? bodyMinWidth}\n >\n <StyledComboBoxBody\n $maxHeight={effectiveMaxHeight}\n $minWidth={bodyWidth ?? bodyMinWidth}\n className=\"chayns-scrollbar\"\n ref={contentRef}\n tabIndex={0}\n >\n {comboBoxGroups}\n </StyledComboBoxBody>\n </DropdownBodyWrapper>\n )}\n </StyledComboBox>\n ),\n [\n bodyMinWidth,\n bodyWidth,\n comboBoxGroups,\n container,\n contentHeight,\n direction,\n handleClear,\n handleClose,\n handleHeaderClick,\n handleHeaderKeyDown,\n handleInputBlur,\n handleInputFocus,\n inputValue,\n internalSelectedItem,\n isAnimating,\n isDisabled,\n isTouch,\n effectiveMaxHeight,\n minWidth,\n onInputChange,\n placeholderIcon,\n placeholderImageUrl,\n placeholderText,\n prefix,\n prefixMinWidth,\n selectedItem,\n shouldChangeColor,\n shouldDisableActions,\n shouldCaptureEvents,\n shouldShowKeyboardHighlighting,\n shouldShowBigImage,\n shouldShowClearIcon,\n shouldShowRoundPlaceholderImage,\n shouldShowTransparentBackground,\n shouldUseFullWidth,\n size,\n ],\n );\n },\n);\n\nComboBox.displayName = 'ComboBox';\n\nexport default ComboBox;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ComboBox.js","names":["_chaynsApi","require","_react","_interopRequireWildcard","_environment","_AreaContextProvider","_Icon","_interopRequireDefault","_ComboBoxItem","_ComboBox","_DropdownBodyWrapper","_dropdown","_element","_ComboBox2","_ComboBox3","_useFocusRingPortal","_useKeyboardFocusHighlighting","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ComboBox","forwardRef","bodyWidth","direction","DropdownDirection","RIGHT","isDisabled","lists","maxHeight","onSelect","placeholder","prefix","container","shouldCaptureEvents","selectedItem","onHide","onShow","shouldShowBigImage","shouldShowClearIcon","shouldShowRoundImage","onInputFocus","prefixMinWidth","size","ComboBoxSize","NORMAL","shouldUseFullWidth","onInputChange","shouldUseCurrentItemWidth","onInputBlur","shouldShowTransparentBackground","inputValue","shouldDropDownUseMaxItemWidth","shouldEnableKeyboardHighlighting","ref","internalSelectedItem","setInternalSelectedItem","useState","isAnimating","setIsAnimating","minWidth","setMinWidth","undefined","bodyMinWidth","setBodyMinWidth","focusedIndex","setFocusedIndex","availableMaxHeight","setAvailableMaxHeight","isInputFocused","useRef","styledComboBoxElementRef","comboBoxHeaderRef","comboBoxInputRef","contentRef","parentSize","useElementSize","shouldUseParentElement","functions","useFunctions","values","useValues","isTouch","useIsTouch","areaProvider","useContext","AreaContext","useEffect","calculatedMinWidth","calculatedBodyMinWidth","getComboBoxWidthResult","parentWidth","width","shouldChangeColor","useMemo","shouldShowKeyboardHighlighting","useKeyboardFocusHighlighting","useFocusRingPortal","isEnabled","shouldDisableActions","combinedLists","flatMap","list","length","some","item","value","effectiveMaxHeight","Math","min","contentHeight","flatItems","height","reduce","isBigItem","subtext","trim","handleInputFocus","useCallback","event","current","handleInputBlur","handleOpen","handleClose","handleContainerBlur","_contentRef$current","nextFocusedElement","relatedTarget","currentContainer","currentTarget","contains","restoreTriggerFocus","requestAnimationFrame","_comboBoxHeaderRef$cu","_comboBoxInputRef$cur","focus","handleSetSelectedItem","itemToSelect","onSelectResult","Promise","then","shouldPreventSelection","handleClear","preventDefault","stopPropagation","handleKeyDown","key","_contentRef$current2","children","stepDirection","newIndex","attempts","newElement","shouldSkip","id","startsWith","endsWith","prevElement","tabIndex","focusedElement","_contentRef$current3","element","newSelectedItem","find","String","replace","document","addEventListener","removeEventListener","placeholderImageUrl","imageUrl","placeholderIcon","icons","placeholderText","text","shouldShowRoundPlaceholderImage","selectedItemList","handleHeaderClick","handleHeaderKeyDown","useImperativeHandle","hide","show","comboBoxGroups","map","createElement","Fragment","groupName","StyledComboBoxTopic","isSelected","StyledComboBox","$minWidth","$shouldUseFullWidth","onBlur","StyledComboBoxHeader","$direction","onClick","$isOpen","$isTouch","$size","$shouldShowTransparentBackground","$isDisabled","$shouldChangeColor","$shouldShowBigImage","onKeyDown","role","StyledComboBoxPrefixAndPlaceholderWrapper","StyledComboBoxPrefix","$prefixMinWidth","StyledComboBoxPlaceholder","$shouldReduceOpacity","StyledComboBoxPlaceholderImage","src","$shouldShowRoundImage","StyledComboBoxInput","disabled","onChange","onFocus","StyledComboBoxPlaceholderText","suffixElement","StyledComboBoxClearIconWrapper","StyledComboBoxIconWrapper","$shouldShowBorderLeft","anchorElement","onAvailableMaxHeightChange","onClose","shouldShowDropdown","minBodyWidth","StyledComboBoxBody","$maxHeight","className","displayName","_default","exports"],"sources":["../../../../src/components/combobox/ComboBox.tsx"],"sourcesContent":["import { useFunctions, useValues } from 'chayns-api';\nimport React, {\n FocusEventHandler,\n KeyboardEventHandler,\n forwardRef,\n Fragment,\n useCallback,\n useContext,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useIsTouch } from '../../utils/environment';\nimport { AreaContext } from '../area-provider/AreaContextProvider';\nimport Icon from '../icon/Icon';\nimport ComboBoxItem from './combobox-item/ComboBoxItem';\nimport {\n StyledComboBox,\n StyledComboBoxBody,\n StyledComboBoxClearIconWrapper,\n StyledComboBoxHeader,\n StyledComboBoxIconWrapper,\n StyledComboBoxInput,\n StyledComboBoxPlaceholder,\n StyledComboBoxPlaceholderImage,\n StyledComboBoxPlaceholderText,\n StyledComboBoxPrefix,\n StyledComboBoxPrefixAndPlaceholderWrapper,\n StyledComboBoxTopic,\n} from './ComboBox.styles';\nimport DropdownBodyWrapper from '../dropdown-body-wrapper/DropdownBodyWrapper';\nimport { DropdownDirection } from '../../types/dropdown';\nimport { useElementSize } from '../../hooks/element';\nimport { ComboBoxProps, ComboBoxRef, ComboBoxSize, IComboBoxItem } from './ComboBox.types';\nimport { getComboBoxWidthResult } from './ComboBox.utils';\nimport { useFocusRingPortal } from '../../hooks/useFocusRingPortal';\nimport { useKeyboardFocusHighlighting } from '../../hooks/useKeyboardFocusHighlighting';\n\nconst ComboBox = forwardRef<ComboBoxRef, ComboBoxProps>(\n (\n {\n bodyWidth,\n direction = DropdownDirection.RIGHT,\n isDisabled = false,\n lists,\n maxHeight = 280,\n onSelect,\n placeholder,\n prefix,\n container,\n shouldCaptureEvents,\n selectedItem,\n onHide,\n onShow,\n shouldShowBigImage,\n shouldShowClearIcon,\n shouldShowRoundImage,\n onInputFocus,\n prefixMinWidth,\n size = ComboBoxSize.NORMAL,\n shouldUseFullWidth = false,\n onInputChange,\n shouldUseCurrentItemWidth = false,\n onInputBlur,\n shouldShowTransparentBackground = false,\n inputValue,\n shouldDropDownUseMaxItemWidth = false,\n shouldEnableKeyboardHighlighting,\n },\n ref,\n ) => {\n const [internalSelectedItem, setInternalSelectedItem] = useState<IComboBoxItem>();\n const [isAnimating, setIsAnimating] = useState(false);\n const [minWidth, setMinWidth] = useState<number | undefined>(undefined);\n const [bodyMinWidth, setBodyMinWidth] = useState(0);\n const [focusedIndex, setFocusedIndex] = useState<number | null>(null);\n const [availableMaxHeight, setAvailableMaxHeight] = useState<number | undefined>(undefined);\n\n const isInputFocused = useRef(false);\n const styledComboBoxElementRef = useRef<HTMLDivElement>(null);\n const comboBoxHeaderRef = useRef<HTMLDivElement>(null);\n const comboBoxInputRef = useRef<HTMLInputElement>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n\n const parentSize = useElementSize(styledComboBoxElementRef, {\n shouldUseParentElement: true,\n });\n\n const functions = useFunctions();\n const values = useValues();\n const isTouch = useIsTouch();\n const areaProvider = useContext(AreaContext);\n\n useEffect(() => {\n if (!parentSize) {\n return;\n }\n\n const { minWidth: calculatedMinWidth, bodyMinWidth: calculatedBodyMinWidth } =\n getComboBoxWidthResult({\n functions,\n internalSelectedItem,\n lists,\n parentWidth: parentSize.width,\n placeholder,\n prefix,\n prefixMinWidth,\n selectedItem,\n shouldDropDownUseMaxItemWidth,\n shouldShowBigImage,\n shouldShowClearIcon,\n shouldUseCurrentItemWidth,\n shouldUseFullWidth,\n values,\n });\n\n setMinWidth(calculatedMinWidth);\n setBodyMinWidth(calculatedBodyMinWidth);\n }, [\n functions,\n internalSelectedItem,\n lists,\n parentSize,\n placeholder,\n prefix,\n prefixMinWidth,\n selectedItem,\n shouldDropDownUseMaxItemWidth,\n shouldShowBigImage,\n shouldShowClearIcon,\n shouldUseCurrentItemWidth,\n shouldUseFullWidth,\n values,\n ]);\n\n const shouldChangeColor = useMemo(\n () => areaProvider.shouldChangeColor ?? false,\n [areaProvider.shouldChangeColor],\n );\n\n const shouldShowKeyboardHighlighting = useKeyboardFocusHighlighting(\n shouldEnableKeyboardHighlighting && !isDisabled,\n );\n useFocusRingPortal(comboBoxHeaderRef, {\n isEnabled: shouldShowKeyboardHighlighting && typeof inputValue !== 'string',\n });\n useFocusRingPortal(comboBoxInputRef, {\n isEnabled: shouldShowKeyboardHighlighting && typeof inputValue === 'string',\n });\n\n const shouldDisableActions = useMemo(() => {\n if (!selectedItem) {\n return false;\n }\n\n const combinedLists = lists.flatMap((list) => list.list);\n\n return (\n combinedLists.length === 1 &&\n combinedLists.some((item) => item.value === selectedItem.value)\n );\n }, [lists, selectedItem]);\n\n // Limits the configured maxHeight by the height that is actually available inside the\n // container (reported by the DropdownBodyWrapper). This prevents the dropdown from being cut\n // off when it is opened to the top or bottom and there is not enough space.\n const effectiveMaxHeight = useMemo(() => {\n if (typeof availableMaxHeight === 'number' && availableMaxHeight > 0) {\n return Math.min(maxHeight, availableMaxHeight);\n }\n\n return maxHeight;\n }, [availableMaxHeight, maxHeight]);\n\n const contentHeight = useMemo(() => {\n const flatItems = lists.flatMap((list) => list.list);\n\n let height = flatItems.reduce((value, item) => {\n const isBigItem =\n shouldShowBigImage ||\n (typeof item.subtext === 'string' && item.subtext.trim() !== '');\n\n return value + (isBigItem ? 56 : 38);\n }, 0);\n\n if (lists.length > 1) {\n height += lists.length * 38;\n }\n\n if (effectiveMaxHeight < height) {\n height = effectiveMaxHeight;\n }\n\n return height;\n }, [effectiveMaxHeight, lists, shouldShowBigImage]);\n\n const handleInputFocus: FocusEventHandler<HTMLInputElement> = useCallback(\n (event) => {\n isInputFocused.current = true;\n onInputFocus?.(event);\n },\n [onInputFocus],\n );\n\n const handleInputBlur: FocusEventHandler<HTMLInputElement> = useCallback(\n (event) => {\n isInputFocused.current = false;\n onInputBlur?.(event);\n },\n [onInputBlur],\n );\n\n const handleOpen = useCallback(() => {\n if (typeof onShow === 'function') {\n onShow();\n }\n\n setIsAnimating(true);\n }, [onShow]);\n\n const handleClose = useCallback(() => {\n if (typeof onHide === 'function') {\n onHide();\n }\n\n setIsAnimating(false);\n }, [onHide]);\n\n const handleContainerBlur = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n const nextFocusedElement = event.relatedTarget as Node | null;\n const currentContainer = event.currentTarget as HTMLElement;\n\n if (\n !nextFocusedElement ||\n (!currentContainer.contains(nextFocusedElement) &&\n !contentRef.current?.contains(nextFocusedElement))\n ) {\n handleClose();\n }\n },\n [handleClose],\n );\n\n const restoreTriggerFocus = useCallback(() => {\n // Delay is needed so focus happens after dropdown close/render cycle.\n requestAnimationFrame(() => {\n if (typeof inputValue === 'string') {\n comboBoxInputRef.current?.focus();\n return;\n }\n\n comboBoxHeaderRef.current?.focus();\n });\n }, [inputValue]);\n\n /**\n * This function sets the selected item\n */\n const handleSetSelectedItem = useCallback(\n (itemToSelect?: IComboBoxItem) => {\n if (typeof onSelect === 'function') {\n const onSelectResult = onSelect(itemToSelect);\n\n if (onSelectResult === false) {\n return;\n }\n\n if (onSelectResult instanceof Promise) {\n void onSelectResult.then((shouldPreventSelection) => {\n if (shouldPreventSelection) return;\n\n setInternalSelectedItem(itemToSelect);\n handleClose();\n restoreTriggerFocus();\n });\n\n return;\n }\n }\n\n setInternalSelectedItem(itemToSelect);\n handleClose();\n restoreTriggerFocus();\n },\n [handleClose, onSelect, restoreTriggerFocus],\n );\n\n const handleClear = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n event.preventDefault();\n event.stopPropagation();\n\n handleSetSelectedItem(undefined);\n },\n [handleSetSelectedItem],\n );\n\n useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (!isAnimating) return;\n\n if (e.key === 'Escape') {\n e.preventDefault();\n handleClose();\n restoreTriggerFocus();\n return;\n }\n\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n e.preventDefault();\n\n const children = contentRef.current?.children;\n\n if (!children || children.length === 0) return;\n\n const stepDirection = e.key === 'ArrowUp' ? -1 : 1;\n\n let newIndex = focusedIndex ?? -1;\n\n let attempts = 0;\n\n do {\n newIndex = (newIndex + stepDirection + children.length) % children.length;\n\n const newElement = children[newIndex] as HTMLDivElement;\n\n let shouldSkip = false;\n\n if (\n newElement.id.startsWith('combobox-group--') ||\n newElement.id.endsWith('--disabled-item')\n ) {\n shouldSkip = true;\n }\n\n if (!shouldSkip) break;\n\n attempts++;\n } while (attempts < children.length);\n\n if (focusedIndex !== null) {\n const prevElement = children[focusedIndex] as HTMLDivElement;\n\n prevElement.tabIndex = -1;\n }\n\n setFocusedIndex(newIndex);\n\n const focusedElement = children[newIndex] as HTMLDivElement;\n\n focusedElement.tabIndex = 0;\n focusedElement.focus();\n } else if ((e.key === 'Enter' || e.key === ' ') && focusedIndex !== null) {\n e.preventDefault();\n const element = contentRef.current?.children[focusedIndex];\n\n if (!element) return;\n\n const { id } = element;\n\n let newSelectedItem: IComboBoxItem | undefined;\n\n lists.some((list) => {\n newSelectedItem = list.list.find(\n ({ value }) => String(value) === id.replace('combobox-item__', ''),\n );\n\n return !!newSelectedItem;\n });\n\n if (newSelectedItem) {\n handleSetSelectedItem(newSelectedItem);\n }\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n\n return () => document.removeEventListener('keydown', handleKeyDown);\n }, [\n focusedIndex,\n handleClose,\n handleSetSelectedItem,\n isAnimating,\n lists,\n restoreTriggerFocus,\n ]);\n\n /**\n * This function sets the external selected item\n */\n useEffect(() => {\n setIsAnimating(false);\n setInternalSelectedItem(selectedItem);\n }, [selectedItem]);\n\n const placeholderImageUrl = useMemo(() => {\n if (selectedItem) {\n return selectedItem.imageUrl;\n }\n\n if (internalSelectedItem) {\n return internalSelectedItem.imageUrl;\n }\n\n return undefined;\n }, [internalSelectedItem, selectedItem]);\n\n const placeholderIcon = useMemo(() => {\n if (selectedItem) {\n return selectedItem.icons;\n }\n\n if (internalSelectedItem) {\n return internalSelectedItem.icons;\n }\n\n return undefined;\n }, [internalSelectedItem, selectedItem]);\n\n /**\n * This function resets the placeholder\n */\n const placeholderText = useMemo(() => {\n let text = placeholder;\n\n if (selectedItem) {\n text = selectedItem.text;\n } else if (internalSelectedItem) {\n text = internalSelectedItem.text;\n }\n\n return text;\n }, [internalSelectedItem, placeholder, selectedItem]);\n\n const shouldShowRoundPlaceholderImage = useMemo(() => {\n const selectedItemList = lists.find((list) =>\n list.list.some(\n ({ value }) => value === (selectedItem?.value ?? internalSelectedItem?.value),\n ),\n );\n\n return selectedItemList?.shouldShowRoundImage ?? shouldShowRoundImage;\n }, [internalSelectedItem?.value, lists, selectedItem?.value, shouldShowRoundImage]);\n\n /**\n * This function opens the content of the combobox\n */\n const handleHeaderClick = useCallback(() => {\n if (!isDisabled && !isInputFocused.current) {\n if (isAnimating) {\n handleClose();\n } else {\n handleOpen();\n }\n }\n }, [handleClose, handleOpen, isAnimating, isDisabled]);\n\n const handleHeaderKeyDown: KeyboardEventHandler<HTMLDivElement> = useCallback(\n (event) => {\n if (isDisabled || typeof inputValue === 'string') {\n return;\n }\n\n if (event.key === 'Escape' && isAnimating) {\n event.preventDefault();\n handleClose();\n restoreTriggerFocus();\n return;\n }\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n handleHeaderClick();\n }\n },\n [\n handleClose,\n handleHeaderClick,\n inputValue,\n isAnimating,\n isDisabled,\n restoreTriggerFocus,\n ],\n );\n\n useImperativeHandle(\n ref,\n () => ({\n hide: handleClose,\n show: handleOpen,\n }),\n [handleClose, handleOpen],\n );\n\n const comboBoxGroups = useMemo(\n () =>\n lists.map((list) => (\n <Fragment key={list.groupName ?? 'default-group'}>\n {list.groupName && lists.length > 1 && (\n <StyledComboBoxTopic id={`combobox-group--${list.groupName}`}>\n {list.groupName}\n </StyledComboBoxTopic>\n )}\n {list.list.map((item) => (\n <ComboBoxItem\n key={`item-${item.text}`}\n item={item}\n isSelected={\n selectedItem ? item.value === selectedItem.value : false\n }\n onSelect={handleSetSelectedItem}\n shouldShowBigImage={shouldShowBigImage}\n shouldShowRoundImage={\n list.shouldShowRoundImage ?? shouldShowRoundImage\n }\n />\n ))}\n </Fragment>\n )),\n [handleSetSelectedItem, lists, selectedItem, shouldShowBigImage, shouldShowRoundImage],\n );\n\n return useMemo(\n () => (\n <StyledComboBox\n ref={styledComboBoxElementRef}\n $minWidth={minWidth}\n $shouldUseFullWidth={shouldUseFullWidth}\n onBlur={handleContainerBlur}\n >\n <StyledComboBoxHeader\n ref={comboBoxHeaderRef}\n $direction={direction}\n onClick={handleHeaderClick}\n $isOpen={isAnimating}\n $isTouch={isTouch}\n $size={size}\n $shouldShowTransparentBackground={shouldShowTransparentBackground}\n $isDisabled={isDisabled}\n $shouldChangeColor={shouldChangeColor}\n $shouldShowBigImage={shouldShowBigImage}\n onKeyDown={handleHeaderKeyDown}\n tabIndex={!isDisabled && typeof inputValue !== 'string' ? 0 : undefined}\n role={!isDisabled && typeof inputValue !== 'string' ? 'button' : undefined}\n aria-expanded={\n !isDisabled && typeof inputValue !== 'string' ? isAnimating : undefined\n }\n >\n <StyledComboBoxPrefixAndPlaceholderWrapper>\n {prefix && (\n <StyledComboBoxPrefix $prefixMinWidth={prefixMinWidth}>\n {prefix}\n </StyledComboBoxPrefix>\n )}\n <StyledComboBoxPlaceholder\n $shouldReduceOpacity={!selectedItem && !internalSelectedItem}\n >\n {placeholderImageUrl && (\n <StyledComboBoxPlaceholderImage\n src={placeholderImageUrl}\n $shouldShowBigImage={shouldShowBigImage}\n $shouldShowRoundImage={shouldShowRoundPlaceholderImage}\n />\n )}\n {placeholderIcon && <Icon icons={placeholderIcon} />}\n {typeof inputValue === 'string' ? (\n <StyledComboBoxInput\n ref={comboBoxInputRef}\n disabled={isDisabled}\n value={inputValue}\n onChange={onInputChange}\n onBlur={handleInputBlur}\n onFocus={handleInputFocus}\n placeholder={placeholderText}\n />\n ) : (\n <StyledComboBoxPlaceholderText>\n {placeholderText}\n </StyledComboBoxPlaceholderText>\n )}\n {internalSelectedItem &&\n internalSelectedItem.suffixElement &&\n internalSelectedItem.suffixElement}\n </StyledComboBoxPlaceholder>\n </StyledComboBoxPrefixAndPlaceholderWrapper>\n {shouldShowClearIcon && internalSelectedItem && (\n <StyledComboBoxClearIconWrapper\n $isDisabled={isDisabled}\n onClick={handleClear}\n >\n <Icon icons={['fa fa-times']} />\n </StyledComboBoxClearIconWrapper>\n )}\n {!shouldDisableActions && (\n <StyledComboBoxIconWrapper\n $isDisabled={isDisabled}\n $size={size}\n $shouldShowBorderLeft={\n shouldShowClearIcon === true &&\n internalSelectedItem !== undefined\n }\n >\n <Icon icons={['fa fa-chevron-down']} isDisabled={isDisabled} />\n </StyledComboBoxIconWrapper>\n )}\n </StyledComboBoxHeader>\n {styledComboBoxElementRef.current && (\n <DropdownBodyWrapper\n anchorElement={styledComboBoxElementRef.current}\n bodyWidth={bodyWidth}\n contentHeight={contentHeight}\n shouldCaptureEvents={shouldCaptureEvents}\n onAvailableMaxHeightChange={setAvailableMaxHeight}\n onClose={handleClose}\n direction={direction}\n container={container}\n shouldShowDropdown={isAnimating}\n minBodyWidth={bodyWidth ?? bodyMinWidth}\n >\n <StyledComboBoxBody\n $maxHeight={effectiveMaxHeight}\n $minWidth={bodyWidth ?? bodyMinWidth}\n className=\"chayns-scrollbar\"\n ref={contentRef}\n tabIndex={0}\n >\n {comboBoxGroups}\n </StyledComboBoxBody>\n </DropdownBodyWrapper>\n )}\n </StyledComboBox>\n ),\n [\n bodyMinWidth,\n bodyWidth,\n comboBoxGroups,\n container,\n contentHeight,\n direction,\n handleClear,\n handleClose,\n handleHeaderClick,\n handleHeaderKeyDown,\n handleInputBlur,\n handleInputFocus,\n inputValue,\n internalSelectedItem,\n isAnimating,\n isDisabled,\n isTouch,\n effectiveMaxHeight,\n minWidth,\n onInputChange,\n placeholderIcon,\n placeholderImageUrl,\n placeholderText,\n prefix,\n prefixMinWidth,\n selectedItem,\n shouldChangeColor,\n shouldDisableActions,\n shouldCaptureEvents,\n shouldShowKeyboardHighlighting,\n shouldShowBigImage,\n shouldShowClearIcon,\n shouldShowRoundPlaceholderImage,\n shouldShowTransparentBackground,\n shouldUseFullWidth,\n size,\n ],\n );\n },\n);\n\nComboBox.displayName = 'ComboBox';\n\nexport default ComboBox;\n"],"mappings":"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","ignoreList":[]}
@@ -7,7 +7,6 @@ exports.StyledComboBoxTopic = exports.StyledComboBoxPrefixAndPlaceholderWrapper
7
7
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
8
8
  var _dropdown = require("../../types/dropdown");
9
9
  var _ComboBox = require("./ComboBox.types");
10
- var _keyboardFocusHighlighting = require("../../utils/keyboardFocusHighlighting.styles");
11
10
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
11
  const StyledComboBox = exports.StyledComboBox = _styledComponents.default.div`
13
12
  min-width: 0;
@@ -124,15 +123,9 @@ const StyledComboBoxHeader = exports.StyledComboBoxHeader = _styledComponents.de
124
123
  }
125
124
  `}
126
125
 
127
- ${({
128
- $shouldShowKeyboardHighlighting
129
- }) => $shouldShowKeyboardHighlighting && (0, _styledComponents.css)`
130
- &:focus-visible,
131
- &:focus-within {
132
- transition: none;
133
- ${_keyboardFocusHighlighting.keyboardFocusHighlightingRingCss}
134
- }
135
- `}
126
+ &:focus-visible {
127
+ outline: none;
128
+ }
136
129
  `;
137
130
  const StyledComboBoxPlaceholder = exports.StyledComboBoxPlaceholder = _styledComponents.default.div`
138
131
  align-items: center;
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBox.styles.js","names":["_styledComponents","_interopRequireWildcard","require","_dropdown","_ComboBox","_keyboardFocusHighlighting","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","StyledComboBox","exports","styled","div","$shouldUseFullWidth","$minWidth","css","StyledComboBoxHeader","$isDisabled","$size","ComboBoxSize","SMALL","NORMAL","theme","$shouldShowTransparentBackground","$shouldChangeColor","colorMode","$shouldShowBigImage","$isOpen","$direction","DropdownDirection","BOTTOM","BOTTOM_LEFT","BOTTOM_RIGHT","includes","$isTouch","$shouldShowKeyboardHighlighting","keyboardFocusHighlightingRingCss","StyledComboBoxPlaceholder","text","$shouldReduceOpacity","StyledComboBoxPlaceholderText","StyledComboBoxPrefixAndPlaceholderWrapper","StyledComboBoxPrefix","$prefixMinWidth","StyledComboBoxInput","input","StyledComboBoxPlaceholderImage","img","$shouldShowRoundImage","StyledComboBoxClearIconWrapper","StyledComboBoxIconWrapper","$shouldShowBorderLeft","StyledComboBoxBody","$maxHeight","StyledComboBoxTopic"],"sources":["../../../../src/components/combobox/ComboBox.styles.ts"],"sourcesContent":["import styled, { css } from 'styled-components';\nimport type { Theme, WithTheme } from '../color-scheme-provider/ColorSchemeProvider';\nimport { DropdownDirection } from '../../types/dropdown';\nimport { ComboBoxProps, ComboBoxSize } from './ComboBox.types';\nimport { keyboardFocusHighlightingRingCss } from '../../utils/keyboardFocusHighlighting.styles';\n\ntype StyledComboBoxProps = WithTheme<{\n $minWidth?: number;\n $shouldUseFullWidth: ComboBoxProps['shouldUseFullWidth'];\n}>;\n\nexport const StyledComboBox = styled.div<StyledComboBoxProps>`\n min-width: 0;\n user-select: none;\n position: relative;\n\n ${({ $shouldUseFullWidth, $minWidth }) => {\n if ($shouldUseFullWidth) {\n return css`\n width: 100%;\n max-width: 100%;\n min-width: ${typeof $minWidth === 'number' ? `${$minWidth}px` : '0'};\n `;\n }\n\n if (typeof $minWidth === 'number') {\n return css`\n width: fit-content;\n max-width: 100%;\n min-width: ${$minWidth}px;\n `;\n }\n\n return css`\n width: fit-content;\n max-width: 100%;\n `;\n }}\n`;\n\ntype StyledComboBoxHeaderProps = WithTheme<{\n $isTouch: boolean;\n $isOpen: boolean;\n $direction: DropdownDirection;\n $isDisabled?: boolean;\n $shouldChangeColor: boolean;\n $shouldShowBigImage: ComboBoxProps['shouldShowBigImage'];\n $shouldShowTransparentBackground: boolean;\n $size: ComboBoxSize;\n $shouldShowKeyboardHighlighting: boolean;\n}>;\n\nexport const StyledComboBoxHeader = styled.div<StyledComboBoxHeaderProps>`\n display: flex;\n min-width: 0;\n border: 1px solid transparent;\n cursor: ${({ $isDisabled }) => (!$isDisabled ? 'pointer' : 'default')};\n justify-content: space-between;\n opacity: ${({ $isDisabled }) => ($isDisabled ? 0.5 : 1)};\n transition: background-color 0.2s ease-in-out;\n\n ${({ $size }) => {\n switch ($size) {\n case ComboBoxSize.SMALL:\n return css`\n height: 34px;\n `;\n case ComboBoxSize.NORMAL:\n default:\n return css`\n min-height: 42px;\n `;\n }\n }}\n\n ${({ theme, $shouldShowTransparentBackground, $shouldChangeColor }) => {\n if ($shouldShowTransparentBackground) {\n if (theme.colorMode === 'dark') {\n return css`\n border-color: rgba(255, 255, 255, 0.5);\n background-color: transparent;\n `;\n }\n\n return css`\n border-color: rgba(0, 0, 0, 0.5);\n background-color: transparent;\n `;\n }\n\n return css`\n border-color: rgba(160, 160, 160, 0.3);\n background-color: ${theme.colorMode === 'classic' || $shouldChangeColor\n ? theme['000']\n : theme['100']};\n `;\n }}\n\n ${({ $shouldShowBigImage }) =>\n $shouldShowBigImage &&\n css`\n height: 42px;\n `}\n\n ${({ $isOpen, $direction }) => {\n if ($isOpen) {\n return [\n DropdownDirection.BOTTOM,\n DropdownDirection.BOTTOM_LEFT,\n DropdownDirection.BOTTOM_RIGHT,\n ].includes($direction)\n ? css`\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n `\n : css`\n border-bottom-left-radius: 3px;\n border-bottom-right-radius: 3px;\n `;\n }\n\n return css`\n border-radius: 3px;\n `;\n }}\n\n ${({ $isTouch, $isDisabled, theme }: StyledComboBoxHeaderProps) =>\n !$isTouch &&\n !$isDisabled &&\n css`\n &:hover {\n background-color: ${theme['secondary-102']};\n }\n `}\n\n ${({ $shouldShowKeyboardHighlighting }) =>\n $shouldShowKeyboardHighlighting &&\n css`\n &:focus-visible,\n &:focus-within {\n transition: none;\n ${keyboardFocusHighlightingRingCss}\n }\n `}\n`;\n\ntype StyledComboBoxPlaceholderProps = WithTheme<{ $shouldReduceOpacity: boolean }>;\n\nexport const StyledComboBoxPlaceholder = styled.div<StyledComboBoxPlaceholderProps>`\n align-items: center;\n color: ${({ theme }: StyledComboBoxPlaceholderProps) => theme.text};\n display: flex;\n flex: 1 1 auto;\n gap: 10px;\n min-width: 0;\n opacity: ${({ $shouldReduceOpacity }) => ($shouldReduceOpacity ? 0.5 : 1)};\n`;\n\nexport const StyledComboBoxPlaceholderText = styled.div`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nexport const StyledComboBoxPrefixAndPlaceholderWrapper = styled.div`\n align-items: center;\n display: flex;\n flex: 1 1 auto;\n min-width: 0;\n padding: 4px 10px;\n`;\n\ntype StyledComboBoxPrefixProps = {\n $prefixMinWidth?: number;\n};\n\nexport const StyledComboBoxPrefix = styled.div<StyledComboBoxPrefixProps>`\n flex: 0 0 auto;\n min-width: ${({ $prefixMinWidth }) => $prefixMinWidth ?? 0}px;\n padding-right: 5px;\n`;\n\nexport const StyledComboBoxInput = styled.input`\n color: ${({ theme }: { theme: Theme }) => theme.text};\n border: none;\n background-color: transparent;\n width: 100%;\n min-width: 0;\n`;\n\ntype StyledComboBoxPlaceholderImageProps = WithTheme<{\n $shouldShowBigImage: ComboBoxProps['shouldShowBigImage'];\n $shouldShowRoundImage: ComboBoxProps['shouldShowRoundImage'];\n}>;\n\nexport const StyledComboBoxPlaceholderImage = styled.img<StyledComboBoxPlaceholderImageProps>`\n box-shadow: 0 0 0 1px\n rgba(${({ theme }: StyledComboBoxPlaceholderImageProps) => theme['009-rgb']}, 0.15);\n height: ${({ $shouldShowBigImage }) => ($shouldShowBigImage ? '32px' : '22px')};\n width: ${({ $shouldShowBigImage }) => ($shouldShowBigImage ? '32px' : '22px')};\n\n ${({ $shouldShowRoundImage }) =>\n $shouldShowRoundImage &&\n css`\n border-radius: 50%;\n `}\n`;\n\ntype StyledComboBoxClearIconWrapperProps = { $isDisabled: boolean };\n\nexport const StyledComboBoxClearIconWrapper = styled.div<StyledComboBoxClearIconWrapperProps>`\n align-items: center;\n cursor: ${({ $isDisabled }) => (!$isDisabled ? 'pointer' : 'default')};\n display: flex;\n flex: 0 0 auto;\n height: 40px;\n justify-content: center;\n width: 40px;\n`;\n\ntype StyledComboBoxIconWrapperProps = {\n $shouldShowBorderLeft: boolean;\n $isDisabled: boolean;\n $size: ComboBoxSize;\n};\n\nexport const StyledComboBoxIconWrapper = styled.div<StyledComboBoxIconWrapperProps>`\n align-items: center;\n border-left: ${({ $shouldShowBorderLeft }) =>\n $shouldShowBorderLeft ? '1px solid rgba(160, 160, 160, 0.3)' : 'none'};\n cursor: ${({ $isDisabled }) => (!$isDisabled ? 'pointer' : 'default')};\n display: flex;\n flex: 0 0 auto;\n justify-content: center;\n width: 40px;\n\n ${({ $size }) => {\n switch ($size) {\n case ComboBoxSize.SMALL:\n return css`\n height: 30px;\n `;\n case ComboBoxSize.NORMAL:\n default:\n return css`\n height: 40px;\n `;\n }\n }}\n`;\n\ntype StyledComboBoxBodyProps = WithTheme<{\n $maxHeight: number;\n $minWidth: number;\n}>;\n\nexport const StyledComboBoxBody = styled.div<StyledComboBoxBodyProps>`\n display: flex;\n flex-direction: column;\n cursor: pointer;\n min-width: ${({ $minWidth }) => $minWidth}px;\n\n overflow-x: hidden;\n overflow-y: auto;\n\n max-height: ${({ $maxHeight }) => $maxHeight}px;\n`;\n\ntype StyledComboBoxTopicProps = WithTheme<unknown>;\n\nexport const StyledComboBoxTopic = styled.div`\n align-items: center;\n background-color: ${({ theme }: StyledComboBoxTopicProps) => theme['secondary-102']};\n color: rgba(${({ theme }: StyledComboBoxTopicProps) => theme['text-rgb']}, 0.65);\n cursor: default;\n display: flex;\n flex: 0 0 auto;\n font-weight: bold;\n min-height: 38px;\n line-height: normal;\n padding: 8px 10px;\n position: sticky;\n top: 0;\n z-index: 10;\n`;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ComboBox.styles.js","names":["_styledComponents","_interopRequireWildcard","require","_dropdown","_ComboBox","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","StyledComboBox","exports","styled","div","$shouldUseFullWidth","$minWidth","css","StyledComboBoxHeader","$isDisabled","$size","ComboBoxSize","SMALL","NORMAL","theme","$shouldShowTransparentBackground","$shouldChangeColor","colorMode","$shouldShowBigImage","$isOpen","$direction","DropdownDirection","BOTTOM","BOTTOM_LEFT","BOTTOM_RIGHT","includes","$isTouch","StyledComboBoxPlaceholder","text","$shouldReduceOpacity","StyledComboBoxPlaceholderText","StyledComboBoxPrefixAndPlaceholderWrapper","StyledComboBoxPrefix","$prefixMinWidth","StyledComboBoxInput","input","StyledComboBoxPlaceholderImage","img","$shouldShowRoundImage","StyledComboBoxClearIconWrapper","StyledComboBoxIconWrapper","$shouldShowBorderLeft","StyledComboBoxBody","$maxHeight","StyledComboBoxTopic"],"sources":["../../../../src/components/combobox/ComboBox.styles.ts"],"sourcesContent":["import styled, { css } from 'styled-components';\nimport type { Theme, WithTheme } from '../color-scheme-provider/ColorSchemeProvider';\nimport { DropdownDirection } from '../../types/dropdown';\nimport { ComboBoxProps, ComboBoxSize } from './ComboBox.types';\n\ntype StyledComboBoxProps = WithTheme<{\n $minWidth?: number;\n $shouldUseFullWidth: ComboBoxProps['shouldUseFullWidth'];\n}>;\n\nexport const StyledComboBox = styled.div<StyledComboBoxProps>`\n min-width: 0;\n user-select: none;\n position: relative;\n\n ${({ $shouldUseFullWidth, $minWidth }) => {\n if ($shouldUseFullWidth) {\n return css`\n width: 100%;\n max-width: 100%;\n min-width: ${typeof $minWidth === 'number' ? `${$minWidth}px` : '0'};\n `;\n }\n\n if (typeof $minWidth === 'number') {\n return css`\n width: fit-content;\n max-width: 100%;\n min-width: ${$minWidth}px;\n `;\n }\n\n return css`\n width: fit-content;\n max-width: 100%;\n `;\n }}\n`;\n\ntype StyledComboBoxHeaderProps = WithTheme<{\n $isTouch: boolean;\n $isOpen: boolean;\n $direction: DropdownDirection;\n $isDisabled?: boolean;\n $shouldChangeColor: boolean;\n $shouldShowBigImage: ComboBoxProps['shouldShowBigImage'];\n $shouldShowTransparentBackground: boolean;\n $size: ComboBoxSize;\n}>;\n\nexport const StyledComboBoxHeader = styled.div<StyledComboBoxHeaderProps>`\n display: flex;\n min-width: 0;\n border: 1px solid transparent;\n cursor: ${({ $isDisabled }) => (!$isDisabled ? 'pointer' : 'default')};\n justify-content: space-between;\n opacity: ${({ $isDisabled }) => ($isDisabled ? 0.5 : 1)};\n transition: background-color 0.2s ease-in-out;\n\n ${({ $size }) => {\n switch ($size) {\n case ComboBoxSize.SMALL:\n return css`\n height: 34px;\n `;\n case ComboBoxSize.NORMAL:\n default:\n return css`\n min-height: 42px;\n `;\n }\n }}\n\n ${({ theme, $shouldShowTransparentBackground, $shouldChangeColor }) => {\n if ($shouldShowTransparentBackground) {\n if (theme.colorMode === 'dark') {\n return css`\n border-color: rgba(255, 255, 255, 0.5);\n background-color: transparent;\n `;\n }\n\n return css`\n border-color: rgba(0, 0, 0, 0.5);\n background-color: transparent;\n `;\n }\n\n return css`\n border-color: rgba(160, 160, 160, 0.3);\n background-color: ${theme.colorMode === 'classic' || $shouldChangeColor\n ? theme['000']\n : theme['100']};\n `;\n }}\n\n ${({ $shouldShowBigImage }) =>\n $shouldShowBigImage &&\n css`\n height: 42px;\n `}\n\n ${({ $isOpen, $direction }) => {\n if ($isOpen) {\n return [\n DropdownDirection.BOTTOM,\n DropdownDirection.BOTTOM_LEFT,\n DropdownDirection.BOTTOM_RIGHT,\n ].includes($direction)\n ? css`\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n `\n : css`\n border-bottom-left-radius: 3px;\n border-bottom-right-radius: 3px;\n `;\n }\n\n return css`\n border-radius: 3px;\n `;\n }}\n\n ${({ $isTouch, $isDisabled, theme }: StyledComboBoxHeaderProps) =>\n !$isTouch &&\n !$isDisabled &&\n css`\n &:hover {\n background-color: ${theme['secondary-102']};\n }\n `}\n\n &:focus-visible {\n outline: none;\n }\n`;\n\ntype StyledComboBoxPlaceholderProps = WithTheme<{ $shouldReduceOpacity: boolean }>;\n\nexport const StyledComboBoxPlaceholder = styled.div<StyledComboBoxPlaceholderProps>`\n align-items: center;\n color: ${({ theme }: StyledComboBoxPlaceholderProps) => theme.text};\n display: flex;\n flex: 1 1 auto;\n gap: 10px;\n min-width: 0;\n opacity: ${({ $shouldReduceOpacity }) => ($shouldReduceOpacity ? 0.5 : 1)};\n`;\n\nexport const StyledComboBoxPlaceholderText = styled.div`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nexport const StyledComboBoxPrefixAndPlaceholderWrapper = styled.div`\n align-items: center;\n display: flex;\n flex: 1 1 auto;\n min-width: 0;\n padding: 4px 10px;\n`;\n\ntype StyledComboBoxPrefixProps = {\n $prefixMinWidth?: number;\n};\n\nexport const StyledComboBoxPrefix = styled.div<StyledComboBoxPrefixProps>`\n flex: 0 0 auto;\n min-width: ${({ $prefixMinWidth }) => $prefixMinWidth ?? 0}px;\n padding-right: 5px;\n`;\n\nexport const StyledComboBoxInput = styled.input`\n color: ${({ theme }: { theme: Theme }) => theme.text};\n border: none;\n background-color: transparent;\n width: 100%;\n min-width: 0;\n`;\n\ntype StyledComboBoxPlaceholderImageProps = WithTheme<{\n $shouldShowBigImage: ComboBoxProps['shouldShowBigImage'];\n $shouldShowRoundImage: ComboBoxProps['shouldShowRoundImage'];\n}>;\n\nexport const StyledComboBoxPlaceholderImage = styled.img<StyledComboBoxPlaceholderImageProps>`\n box-shadow: 0 0 0 1px\n rgba(${({ theme }: StyledComboBoxPlaceholderImageProps) => theme['009-rgb']}, 0.15);\n height: ${({ $shouldShowBigImage }) => ($shouldShowBigImage ? '32px' : '22px')};\n width: ${({ $shouldShowBigImage }) => ($shouldShowBigImage ? '32px' : '22px')};\n\n ${({ $shouldShowRoundImage }) =>\n $shouldShowRoundImage &&\n css`\n border-radius: 50%;\n `}\n`;\n\ntype StyledComboBoxClearIconWrapperProps = { $isDisabled: boolean };\n\nexport const StyledComboBoxClearIconWrapper = styled.div<StyledComboBoxClearIconWrapperProps>`\n align-items: center;\n cursor: ${({ $isDisabled }) => (!$isDisabled ? 'pointer' : 'default')};\n display: flex;\n flex: 0 0 auto;\n height: 40px;\n justify-content: center;\n width: 40px;\n`;\n\ntype StyledComboBoxIconWrapperProps = {\n $shouldShowBorderLeft: boolean;\n $isDisabled: boolean;\n $size: ComboBoxSize;\n};\n\nexport const StyledComboBoxIconWrapper = styled.div<StyledComboBoxIconWrapperProps>`\n align-items: center;\n border-left: ${({ $shouldShowBorderLeft }) =>\n $shouldShowBorderLeft ? '1px solid rgba(160, 160, 160, 0.3)' : 'none'};\n cursor: ${({ $isDisabled }) => (!$isDisabled ? 'pointer' : 'default')};\n display: flex;\n flex: 0 0 auto;\n justify-content: center;\n width: 40px;\n\n ${({ $size }) => {\n switch ($size) {\n case ComboBoxSize.SMALL:\n return css`\n height: 30px;\n `;\n case ComboBoxSize.NORMAL:\n default:\n return css`\n height: 40px;\n `;\n }\n }}\n`;\n\ntype StyledComboBoxBodyProps = WithTheme<{\n $maxHeight: number;\n $minWidth: number;\n}>;\n\nexport const StyledComboBoxBody = styled.div<StyledComboBoxBodyProps>`\n display: flex;\n flex-direction: column;\n cursor: pointer;\n min-width: ${({ $minWidth }) => $minWidth}px;\n\n overflow-x: hidden;\n overflow-y: auto;\n\n max-height: ${({ $maxHeight }) => $maxHeight}px;\n`;\n\ntype StyledComboBoxTopicProps = WithTheme<unknown>;\n\nexport const StyledComboBoxTopic = styled.div`\n align-items: center;\n background-color: ${({ theme }: StyledComboBoxTopicProps) => theme['secondary-102']};\n color: rgba(${({ theme }: StyledComboBoxTopicProps) => theme['text-rgb']}, 0.65);\n cursor: default;\n display: flex;\n flex: 0 0 auto;\n font-weight: bold;\n min-height: 38px;\n line-height: normal;\n padding: 8px 10px;\n position: sticky;\n top: 0;\n z-index: 10;\n`;\n"],"mappings":"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","ignoreList":[]}
@@ -16,6 +16,7 @@ var _ContextMenu = require("./ContextMenu.styles");
16
16
  var _ContextMenu2 = require("./ContextMenu.types");
17
17
  var _ContextMenu3 = require("./ContextMenu.utils");
18
18
  var _useKeyboardFocusHighlighting = require("../../hooks/useKeyboardFocusHighlighting");
19
+ var _useFocusRingPortal = require("../../hooks/useFocusRingPortal");
19
20
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
20
21
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
21
22
  const ContextMenu = /*#__PURE__*/(0, _react2.forwardRef)(({
@@ -56,12 +57,23 @@ const ContextMenu = /*#__PURE__*/(0, _react2.forwardRef)(({
56
57
  const uuid = (0, _uuid.useUuid)();
57
58
  const contextMenuContentRef = (0, _react2.useRef)(null);
58
59
  const contextMenuRef = (0, _react2.useRef)(null);
60
+ const contextMenuFocusRingRef = (0, _react2.useRef)(null);
59
61
  const shouldSkipNextContextMenuOpenRef = (0, _react2.useRef)(false);
60
62
  const shouldPreventNextNativeContextMenuRef = (0, _react2.useRef)(false);
61
63
  const isTouch = (0, _environment.useIsTouch)();
62
64
  const shouldShowKeyboardHighlighting = (0, _useKeyboardFocusHighlighting.useKeyboardFocusHighlighting)(shouldEnableKeyboardHighlighting && !shouldDisableClick);
63
65
  const shouldShowWrapperKeyboardHighlighting = shouldShowKeyboardHighlighting && shouldUseFocusableWrapper;
64
66
  const shouldUseKeyboardFocusableWrapper = shouldUseFocusableWrapper && !shouldDisableClick;
67
+ (0, _useFocusRingPortal.useFocusRingPortal)(contextMenuRef, {
68
+ isEnabled: shouldShowWrapperKeyboardHighlighting,
69
+ overlayRef: contextMenuFocusRingRef,
70
+ shape: shouldUseDefaultTriggerStyles ? 'circle' : 'rectangle',
71
+ padding: shouldUseDefaultTriggerStyles ? 4 : 0
72
+ });
73
+ (0, _react2.useEffect)(() => {
74
+ var _contextMenuRef$curre;
75
+ contextMenuFocusRingRef.current = ((_contextMenuRef$curre = contextMenuRef.current) === null || _contextMenuRef$curre === void 0 ? void 0 : _contextMenuRef$curre.firstElementChild) instanceof HTMLElement ? contextMenuRef.current.firstElementChild : contextMenuRef.current;
76
+ }, [children]);
65
77
  (0, _react2.useEffect)(() => {
66
78
  if (isContentShown) {
67
79
  setFocusedIndex((0, _ContextMenu3.getDefaultFocusedIndex)(items));
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenu.js","names":["_chaynsApi","require","_react","_react2","_interopRequireWildcard","_reactDom","_uuid","_environment","_Icon","_interopRequireDefault","_ContextMenuContent","_ContextMenu","_ContextMenu2","_ContextMenu3","_useKeyboardFocusHighlighting","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ContextMenu","forwardRef","alignment","className","children","createElement","icons","size","container","coordinates","headline","items","onHide","onShow","shouldCloseOnPopupClick","shouldDisableClick","shouldHidePopupArrow","shouldShowHoverEffect","shouldEnableKeyboardHighlighting","shouldUseDefaultTriggerStyles","style","yOffset","zIndex","dialogText","ref","internalCoordinates","setInternalCoordinates","useState","x","y","internalAlignment","setInternalAlignment","ContextMenuAlignment","TopLeft","newContainer","setNewContainer","focusedIndex","setFocusedIndex","getDefaultFocusedIndex","isContentShown","setIsContentShown","portal","setPortal","isHovered","setIsHovered","shouldUseFocusableWrapper","setShouldUseFocusableWrapper","uuid","useUuid","contextMenuContentRef","useRef","contextMenuRef","shouldSkipNextContextMenuOpenRef","shouldPreventNextNativeContextMenuRef","isTouch","useIsTouch","shouldShowKeyboardHighlighting","useKeyboardFocusHighlighting","shouldShowWrapperKeyboardHighlighting","shouldUseKeyboardFocusableWrapper","useEffect","current","el","element","closest","Element","handleHide","useCallback","handleContainerBlur","event","_contextMenuContentRe","nextFocusedElement","relatedTarget","currentContainer","currentTarget","contains","handleShow","result","createDialog","type","DialogType","SELECT","text","buttons","list","map","isSelected","index","name","id","icon","isValidElement","undefined","open","_items$result$","onClick","height","childrenHeight","left","childrenLeft","top","childrenTop","width","childrenWidth","getBoundingClientRect","zoomX","offsetWidth","zoomY","offsetHeight","scrollLeft","scrollTop","BottomRight","TopRight","BottomLeft","handleClick","preventDefault","stopPropagation","handleKeyDown","isActivationKey","key","prev","length","selectItem","getActiveItemIndex","contextMenuContentElement","onClose","target","isContextMenuShortcut","shiftKey","handleContextMenu","handleGlobalKeyDown","activeElement","document","HTMLElement","body","documentElement","shouldOpenFromFocusedParent","handleNativeContextMenuCapture","addEventListener","removeEventListener","useImperativeHandle","hide","show","handleDocumentClick","_contextMenuContentRe2","window","createPortal","AnimatePresence","initial","onItemFocus","onMouseEnter","onMouseLeave","focusableChildSelector","hasFocusableChild","Boolean","querySelector","Fragment","StyledContextMenu","$isActive","$shouldAddHoverEffect","$shouldShowWrapperKeyboardHighlighting","$shouldUseDefaultTriggerStyles","onContextMenuCapture","onContextMenu","onKeyDown","onBlur","tabIndex","role","displayName","_default","exports"],"sources":["../../../../src/components/context-menu/ContextMenu.tsx"],"sourcesContent":["import { createDialog, DialogType } from 'chayns-api';\nimport { AnimatePresence } from 'motion/react';\nimport React, {\n forwardRef,\n isValidElement,\n KeyboardEventHandler,\n MouseEvent,\n MouseEventHandler,\n ReactPortal,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { useUuid } from '../../hooks/uuid';\nimport { useIsTouch } from '../../utils/environment';\nimport Icon from '../icon/Icon';\nimport ContextMenuContent from './context-menu-content/ContextMenuContent';\nimport { StyledContextMenu } from './ContextMenu.styles';\nimport {\n ContextMenuAlignment,\n type ContextMenuCoordinates,\n type ContextMenuProps,\n type ContextMenuRef,\n} from './ContextMenu.types';\nimport { SelectDialogResult } from '../../types/general';\nimport { getActiveItemIndex, getDefaultFocusedIndex, selectItem } from './ContextMenu.utils';\nimport { useKeyboardFocusHighlighting } from '../../hooks/useKeyboardFocusHighlighting';\n\nconst ContextMenu = forwardRef<ContextMenuRef, ContextMenuProps>(\n (\n {\n alignment,\n className,\n children = <Icon icons={['ts-ellipsis_v']} size={18} />,\n container,\n coordinates,\n headline,\n items,\n onHide,\n onShow,\n shouldCloseOnPopupClick = true,\n shouldDisableClick = false,\n shouldHidePopupArrow = false,\n shouldShowHoverEffect = false,\n shouldEnableKeyboardHighlighting,\n shouldUseDefaultTriggerStyles = true,\n style,\n yOffset = 0,\n zIndex = 20,\n dialogText,\n },\n ref,\n ) => {\n const [internalCoordinates, setInternalCoordinates] = useState<ContextMenuCoordinates>({\n x: 0,\n y: 0,\n });\n\n const [internalAlignment, setInternalAlignment] = useState<ContextMenuAlignment>(\n ContextMenuAlignment.TopLeft,\n );\n\n const [newContainer, setNewContainer] = useState(container ?? null);\n const [focusedIndex, setFocusedIndex] = useState(getDefaultFocusedIndex(items));\n const [isContentShown, setIsContentShown] = useState(false);\n const [portal, setPortal] = useState<ReactPortal>();\n const [isHovered, setIsHovered] = useState(false);\n const [shouldUseFocusableWrapper, setShouldUseFocusableWrapper] = useState(false);\n\n const uuid = useUuid();\n\n const contextMenuContentRef = useRef<HTMLDivElement>(null);\n const contextMenuRef = useRef<HTMLSpanElement>(null);\n const shouldSkipNextContextMenuOpenRef = useRef(false);\n const shouldPreventNextNativeContextMenuRef = useRef(false);\n\n const isTouch = useIsTouch();\n const shouldShowKeyboardHighlighting = useKeyboardFocusHighlighting(\n shouldEnableKeyboardHighlighting && !shouldDisableClick,\n );\n const shouldShowWrapperKeyboardHighlighting =\n shouldShowKeyboardHighlighting && shouldUseFocusableWrapper;\n const shouldUseKeyboardFocusableWrapper = shouldUseFocusableWrapper && !shouldDisableClick;\n\n useEffect(() => {\n if (isContentShown) {\n setFocusedIndex(getDefaultFocusedIndex(items));\n }\n }, [isContentShown, items]);\n\n useEffect(() => {\n if (contextMenuRef.current && !container) {\n const el = contextMenuRef.current as HTMLElement;\n\n const element = el.closest('.dialog-inner, .page-provider, .tapp, body');\n\n setNewContainer(element);\n }\n }, [container]);\n\n useEffect(() => {\n if (container instanceof Element) {\n setNewContainer(container);\n }\n }, [container]);\n\n const handleHide = useCallback(() => {\n setIsContentShown(false);\n }, []);\n\n const handleContainerBlur = useCallback(\n (event: React.FocusEvent<HTMLSpanElement>) => {\n const nextFocusedElement = event.relatedTarget as Node | null;\n const currentContainer = event.currentTarget as HTMLElement;\n\n if (\n !nextFocusedElement ||\n (!currentContainer.contains(nextFocusedElement) &&\n !contextMenuContentRef.current?.contains(nextFocusedElement))\n ) {\n handleHide();\n }\n },\n [handleHide],\n );\n\n const handleShow = useCallback(async () => {\n if (isTouch) {\n const { result } = (await createDialog({\n type: DialogType.SELECT,\n text: dialogText,\n buttons: [],\n list: items.map(({ icons, text, isSelected }, index) => ({\n name: text,\n id: index,\n isSelected,\n icon: isValidElement(icons)\n ? undefined\n : (icons as string[] | undefined)?.[0],\n })),\n }).open()) as SelectDialogResult;\n\n if (result && typeof result[0] === 'number') {\n void items[result[0]]?.onClick();\n }\n } else if (contextMenuRef.current) {\n if (!newContainer) {\n return;\n }\n\n const {\n height: childrenHeight,\n left: childrenLeft,\n top: childrenTop,\n width: childrenWidth,\n } = contextMenuRef.current.getBoundingClientRect();\n\n const { height, width, top, left } = newContainer.getBoundingClientRect();\n\n const zoomX = width / (newContainer as HTMLElement).offsetWidth;\n const zoomY = height / (newContainer as HTMLElement).offsetHeight;\n\n const x =\n (childrenLeft + childrenWidth / 2 - left) / zoomX + newContainer.scrollLeft;\n const y =\n (childrenTop + childrenHeight / 2 - top) / zoomY +\n newContainer.scrollTop -\n yOffset;\n\n setInternalCoordinates({ x, y });\n\n if (x < width / 2) {\n if (y < height / 2) {\n setInternalAlignment(ContextMenuAlignment.BottomRight);\n } else {\n setInternalAlignment(ContextMenuAlignment.TopRight);\n }\n } else if (y < height / 2) {\n setInternalAlignment(ContextMenuAlignment.BottomLeft);\n } else {\n setInternalAlignment(ContextMenuAlignment.TopLeft);\n }\n\n setIsContentShown(true);\n }\n }, [isTouch, items, newContainer, yOffset, dialogText]);\n\n const handleClick = useCallback<MouseEventHandler<HTMLSpanElement>>(\n (event) => {\n if (shouldDisableClick) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n void handleShow();\n },\n [handleShow, shouldDisableClick],\n );\n\n const handleKeyDown = useCallback<KeyboardEventHandler<HTMLSpanElement>>(\n (event) => {\n if (shouldDisableClick) {\n return;\n }\n\n const isActivationKey =\n event.key === 'Enter' || event.key === ' ' || event.key === 'Spacebar';\n\n if (isContentShown && event.key === 'Escape') {\n event.preventDefault();\n event.stopPropagation();\n handleHide();\n return;\n }\n\n if (isContentShown && !isHovered && event.key === 'ArrowDown') {\n event.preventDefault();\n event.stopPropagation();\n setFocusedIndex((prev) => (prev >= items.length - 1 ? 0 : prev + 1));\n return;\n }\n\n if (isContentShown && !isHovered && event.key === 'ArrowUp') {\n event.preventDefault();\n event.stopPropagation();\n setFocusedIndex((prev) => (prev <= 0 ? items.length - 1 : prev - 1));\n return;\n }\n\n if (isContentShown && isActivationKey) {\n if (\n selectItem({\n index: getActiveItemIndex({\n contextMenuContentElement: contextMenuContentRef.current,\n focusedIndex,\n }),\n items,\n onClose: handleHide,\n shouldCloseOnPopupClick,\n })\n ) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n return;\n }\n\n if (event.currentTarget !== event.target) {\n return;\n }\n\n const isContextMenuShortcut =\n event.key === 'ContextMenu' || (event.key === 'F10' && event.shiftKey);\n\n if (isContextMenuShortcut) {\n event.preventDefault();\n event.stopPropagation();\n shouldSkipNextContextMenuOpenRef.current = true;\n void handleShow();\n return;\n }\n\n if (shouldUseFocusableWrapper && isActivationKey) {\n event.preventDefault();\n event.stopPropagation();\n void handleShow();\n }\n },\n [\n focusedIndex,\n handleHide,\n handleShow,\n isHovered,\n isContentShown,\n items,\n items.length,\n shouldCloseOnPopupClick,\n shouldDisableClick,\n shouldUseFocusableWrapper,\n ],\n );\n\n const handleContextMenu = useCallback(\n (event: MouseEvent<HTMLSpanElement>) => {\n event.preventDefault();\n event.stopPropagation();\n\n if (shouldDisableClick) {\n return;\n }\n\n if (shouldSkipNextContextMenuOpenRef.current) {\n shouldSkipNextContextMenuOpenRef.current = false;\n return;\n }\n\n void handleShow();\n },\n [handleShow, shouldDisableClick],\n );\n\n useEffect(() => {\n const handleGlobalKeyDown = (event: KeyboardEvent) => {\n if (shouldDisableClick || !contextMenuRef.current) {\n return;\n }\n\n const isContextMenuShortcut =\n event.key === 'ContextMenu' || (event.key === 'F10' && event.shiftKey);\n\n if (!isContextMenuShortcut) {\n return;\n }\n\n const { activeElement } = document;\n\n if (\n !(activeElement instanceof HTMLElement) ||\n activeElement === document.body ||\n activeElement === document.documentElement\n ) {\n return;\n }\n\n const shouldOpenFromFocusedParent =\n activeElement.contains(contextMenuRef.current) &&\n !contextMenuRef.current.contains(activeElement);\n\n if (!shouldOpenFromFocusedParent) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n shouldPreventNextNativeContextMenuRef.current = true;\n void handleShow();\n };\n\n const handleNativeContextMenuCapture = (event: Event) => {\n if (!shouldPreventNextNativeContextMenuRef.current) {\n return;\n }\n\n shouldPreventNextNativeContextMenuRef.current = false;\n event.preventDefault();\n event.stopPropagation();\n };\n\n document.addEventListener('keydown', handleGlobalKeyDown, true);\n document.addEventListener('contextmenu', handleNativeContextMenuCapture, true);\n\n return () => {\n document.removeEventListener('keydown', handleGlobalKeyDown, true);\n document.removeEventListener('contextmenu', handleNativeContextMenuCapture, true);\n };\n }, [handleShow, shouldDisableClick]);\n\n useImperativeHandle(\n ref,\n () => ({\n hide: handleHide,\n show: handleShow,\n }),\n [handleHide, handleShow],\n );\n\n useEffect(() => {\n const handleDocumentClick = (event: PointerEvent) => {\n if (\n !shouldCloseOnPopupClick &&\n contextMenuContentRef.current?.contains(event.target as Node)\n ) {\n return;\n }\n\n handleHide();\n };\n\n if (isContentShown) {\n document.addEventListener('click', handleDocumentClick, true);\n window.addEventListener('blur', handleHide);\n\n if (typeof onShow === 'function') {\n onShow();\n }\n } else if (typeof onHide === 'function') {\n onHide();\n }\n\n return () => {\n document.removeEventListener('click', handleDocumentClick, true);\n window.removeEventListener('blur', handleHide);\n };\n }, [handleHide, isContentShown, onHide, onShow, shouldCloseOnPopupClick]);\n\n useEffect(() => {\n if (!newContainer) {\n return;\n }\n\n setPortal(() =>\n createPortal(\n <AnimatePresence initial={false}>\n {isContentShown && (\n <ContextMenuContent\n coordinates={coordinates ?? internalCoordinates}\n items={items}\n zIndex={zIndex}\n headline={headline}\n shouldHidePopupArrow={shouldHidePopupArrow}\n key={`contextMenu_${uuid}`}\n alignment={alignment ?? internalAlignment}\n ref={contextMenuContentRef}\n focusedIndex={focusedIndex}\n onItemFocus={setFocusedIndex}\n onMouseEnter={() => {\n setIsHovered(true);\n setFocusedIndex(-1);\n }}\n onMouseLeave={() => {\n setIsHovered(false);\n }}\n />\n )}\n </AnimatePresence>,\n newContainer,\n ),\n );\n }, [\n alignment,\n newContainer,\n coordinates,\n internalAlignment,\n internalCoordinates,\n isContentShown,\n items,\n uuid,\n zIndex,\n shouldHidePopupArrow,\n headline,\n focusedIndex,\n handleHide,\n ]);\n\n useEffect(() => {\n if (!contextMenuRef.current) {\n return;\n }\n\n const focusableChildSelector =\n 'button:not([disabled]), a[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"]), [contenteditable=\"true\"]';\n\n const hasFocusableChild = Boolean(\n contextMenuRef.current.querySelector(focusableChildSelector),\n );\n\n setShouldUseFocusableWrapper(!hasFocusableChild);\n }, [children]);\n\n return (\n <>\n <StyledContextMenu\n className={\n className\n ? `beta-chayns-context-menu ${className}`\n : 'beta-chayns-context-menu'\n }\n $isActive={isContentShown && shouldShowHoverEffect}\n $shouldAddHoverEffect={!isTouch && shouldShowHoverEffect}\n $shouldShowWrapperKeyboardHighlighting={shouldShowWrapperKeyboardHighlighting}\n $shouldUseDefaultTriggerStyles={shouldUseDefaultTriggerStyles}\n onClick={handleClick}\n onContextMenuCapture={handleContextMenu}\n onContextMenu={handleContextMenu}\n onKeyDown={handleKeyDown}\n onBlur={handleContainerBlur}\n ref={contextMenuRef}\n tabIndex={shouldUseKeyboardFocusableWrapper ? 0 : undefined}\n role={shouldUseKeyboardFocusableWrapper ? 'button' : undefined}\n aria-haspopup={shouldUseKeyboardFocusableWrapper ? 'menu' : undefined}\n aria-expanded={shouldUseKeyboardFocusableWrapper ? isContentShown : undefined}\n style={style}\n >\n {children}\n </StyledContextMenu>\n {portal}\n </>\n );\n },\n);\n\nContextMenu.displayName = 'ContextMenu';\n\nexport default ContextMenu;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ContextMenu.js","names":["_chaynsApi","require","_react","_react2","_interopRequireWildcard","_reactDom","_uuid","_environment","_Icon","_interopRequireDefault","_ContextMenuContent","_ContextMenu","_ContextMenu2","_ContextMenu3","_useKeyboardFocusHighlighting","_useFocusRingPortal","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ContextMenu","forwardRef","alignment","className","children","createElement","icons","size","container","coordinates","headline","items","onHide","onShow","shouldCloseOnPopupClick","shouldDisableClick","shouldHidePopupArrow","shouldShowHoverEffect","shouldEnableKeyboardHighlighting","shouldUseDefaultTriggerStyles","style","yOffset","zIndex","dialogText","ref","internalCoordinates","setInternalCoordinates","useState","x","y","internalAlignment","setInternalAlignment","ContextMenuAlignment","TopLeft","newContainer","setNewContainer","focusedIndex","setFocusedIndex","getDefaultFocusedIndex","isContentShown","setIsContentShown","portal","setPortal","isHovered","setIsHovered","shouldUseFocusableWrapper","setShouldUseFocusableWrapper","uuid","useUuid","contextMenuContentRef","useRef","contextMenuRef","contextMenuFocusRingRef","shouldSkipNextContextMenuOpenRef","shouldPreventNextNativeContextMenuRef","isTouch","useIsTouch","shouldShowKeyboardHighlighting","useKeyboardFocusHighlighting","shouldShowWrapperKeyboardHighlighting","shouldUseKeyboardFocusableWrapper","useFocusRingPortal","isEnabled","overlayRef","shape","padding","useEffect","_contextMenuRef$curre","current","firstElementChild","HTMLElement","el","element","closest","Element","handleHide","useCallback","handleContainerBlur","event","_contextMenuContentRe","nextFocusedElement","relatedTarget","currentContainer","currentTarget","contains","handleShow","result","createDialog","type","DialogType","SELECT","text","buttons","list","map","isSelected","index","name","id","icon","isValidElement","undefined","open","_items$result$","onClick","height","childrenHeight","left","childrenLeft","top","childrenTop","width","childrenWidth","getBoundingClientRect","zoomX","offsetWidth","zoomY","offsetHeight","scrollLeft","scrollTop","BottomRight","TopRight","BottomLeft","handleClick","preventDefault","stopPropagation","handleKeyDown","isActivationKey","key","prev","length","selectItem","getActiveItemIndex","contextMenuContentElement","onClose","target","isContextMenuShortcut","shiftKey","handleContextMenu","handleGlobalKeyDown","activeElement","document","body","documentElement","shouldOpenFromFocusedParent","handleNativeContextMenuCapture","addEventListener","removeEventListener","useImperativeHandle","hide","show","handleDocumentClick","_contextMenuContentRe2","window","createPortal","AnimatePresence","initial","onItemFocus","onMouseEnter","onMouseLeave","focusableChildSelector","hasFocusableChild","Boolean","querySelector","Fragment","StyledContextMenu","$isActive","$shouldAddHoverEffect","$shouldShowWrapperKeyboardHighlighting","$shouldUseDefaultTriggerStyles","onContextMenuCapture","onContextMenu","onKeyDown","onBlur","tabIndex","role","displayName","_default","exports"],"sources":["../../../../src/components/context-menu/ContextMenu.tsx"],"sourcesContent":["import { createDialog, DialogType } from 'chayns-api';\nimport { AnimatePresence } from 'motion/react';\nimport React, {\n forwardRef,\n isValidElement,\n KeyboardEventHandler,\n MouseEvent,\n MouseEventHandler,\n ReactPortal,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { useUuid } from '../../hooks/uuid';\nimport { useIsTouch } from '../../utils/environment';\nimport Icon from '../icon/Icon';\nimport ContextMenuContent from './context-menu-content/ContextMenuContent';\nimport { StyledContextMenu } from './ContextMenu.styles';\nimport {\n ContextMenuAlignment,\n type ContextMenuCoordinates,\n type ContextMenuProps,\n type ContextMenuRef,\n} from './ContextMenu.types';\nimport { SelectDialogResult } from '../../types/general';\nimport { getActiveItemIndex, getDefaultFocusedIndex, selectItem } from './ContextMenu.utils';\nimport { useKeyboardFocusHighlighting } from '../../hooks/useKeyboardFocusHighlighting';\nimport { useFocusRingPortal } from '../../hooks/useFocusRingPortal';\n\nconst ContextMenu = forwardRef<ContextMenuRef, ContextMenuProps>(\n (\n {\n alignment,\n className,\n children = <Icon icons={['ts-ellipsis_v']} size={18} />,\n container,\n coordinates,\n headline,\n items,\n onHide,\n onShow,\n shouldCloseOnPopupClick = true,\n shouldDisableClick = false,\n shouldHidePopupArrow = false,\n shouldShowHoverEffect = false,\n shouldEnableKeyboardHighlighting,\n shouldUseDefaultTriggerStyles = true,\n style,\n yOffset = 0,\n zIndex = 20,\n dialogText,\n },\n ref,\n ) => {\n const [internalCoordinates, setInternalCoordinates] = useState<ContextMenuCoordinates>({\n x: 0,\n y: 0,\n });\n\n const [internalAlignment, setInternalAlignment] = useState<ContextMenuAlignment>(\n ContextMenuAlignment.TopLeft,\n );\n\n const [newContainer, setNewContainer] = useState(container ?? null);\n const [focusedIndex, setFocusedIndex] = useState(getDefaultFocusedIndex(items));\n const [isContentShown, setIsContentShown] = useState(false);\n const [portal, setPortal] = useState<ReactPortal>();\n const [isHovered, setIsHovered] = useState(false);\n const [shouldUseFocusableWrapper, setShouldUseFocusableWrapper] = useState(false);\n\n const uuid = useUuid();\n\n const contextMenuContentRef = useRef<HTMLDivElement>(null);\n const contextMenuRef = useRef<HTMLSpanElement>(null);\n const contextMenuFocusRingRef = useRef<HTMLElement | null>(null);\n const shouldSkipNextContextMenuOpenRef = useRef(false);\n const shouldPreventNextNativeContextMenuRef = useRef(false);\n\n const isTouch = useIsTouch();\n const shouldShowKeyboardHighlighting = useKeyboardFocusHighlighting(\n shouldEnableKeyboardHighlighting && !shouldDisableClick,\n );\n const shouldShowWrapperKeyboardHighlighting =\n shouldShowKeyboardHighlighting && shouldUseFocusableWrapper;\n const shouldUseKeyboardFocusableWrapper = shouldUseFocusableWrapper && !shouldDisableClick;\n useFocusRingPortal(contextMenuRef, {\n isEnabled: shouldShowWrapperKeyboardHighlighting,\n overlayRef: contextMenuFocusRingRef,\n shape: shouldUseDefaultTriggerStyles ? 'circle' : 'rectangle',\n padding: shouldUseDefaultTriggerStyles ? 4 : 0,\n });\n\n useEffect(() => {\n contextMenuFocusRingRef.current =\n contextMenuRef.current?.firstElementChild instanceof HTMLElement\n ? contextMenuRef.current.firstElementChild\n : contextMenuRef.current;\n }, [children]);\n\n useEffect(() => {\n if (isContentShown) {\n setFocusedIndex(getDefaultFocusedIndex(items));\n }\n }, [isContentShown, items]);\n\n useEffect(() => {\n if (contextMenuRef.current && !container) {\n const el = contextMenuRef.current as HTMLElement;\n\n const element = el.closest('.dialog-inner, .page-provider, .tapp, body');\n\n setNewContainer(element);\n }\n }, [container]);\n\n useEffect(() => {\n if (container instanceof Element) {\n setNewContainer(container);\n }\n }, [container]);\n\n const handleHide = useCallback(() => {\n setIsContentShown(false);\n }, []);\n\n const handleContainerBlur = useCallback(\n (event: React.FocusEvent<HTMLSpanElement>) => {\n const nextFocusedElement = event.relatedTarget as Node | null;\n const currentContainer = event.currentTarget as HTMLElement;\n\n if (\n !nextFocusedElement ||\n (!currentContainer.contains(nextFocusedElement) &&\n !contextMenuContentRef.current?.contains(nextFocusedElement))\n ) {\n handleHide();\n }\n },\n [handleHide],\n );\n\n const handleShow = useCallback(async () => {\n if (isTouch) {\n const { result } = (await createDialog({\n type: DialogType.SELECT,\n text: dialogText,\n buttons: [],\n list: items.map(({ icons, text, isSelected }, index) => ({\n name: text,\n id: index,\n isSelected,\n icon: isValidElement(icons)\n ? undefined\n : (icons as string[] | undefined)?.[0],\n })),\n }).open()) as SelectDialogResult;\n\n if (result && typeof result[0] === 'number') {\n void items[result[0]]?.onClick();\n }\n } else if (contextMenuRef.current) {\n if (!newContainer) {\n return;\n }\n\n const {\n height: childrenHeight,\n left: childrenLeft,\n top: childrenTop,\n width: childrenWidth,\n } = contextMenuRef.current.getBoundingClientRect();\n\n const { height, width, top, left } = newContainer.getBoundingClientRect();\n\n const zoomX = width / (newContainer as HTMLElement).offsetWidth;\n const zoomY = height / (newContainer as HTMLElement).offsetHeight;\n\n const x =\n (childrenLeft + childrenWidth / 2 - left) / zoomX + newContainer.scrollLeft;\n const y =\n (childrenTop + childrenHeight / 2 - top) / zoomY +\n newContainer.scrollTop -\n yOffset;\n\n setInternalCoordinates({ x, y });\n\n if (x < width / 2) {\n if (y < height / 2) {\n setInternalAlignment(ContextMenuAlignment.BottomRight);\n } else {\n setInternalAlignment(ContextMenuAlignment.TopRight);\n }\n } else if (y < height / 2) {\n setInternalAlignment(ContextMenuAlignment.BottomLeft);\n } else {\n setInternalAlignment(ContextMenuAlignment.TopLeft);\n }\n\n setIsContentShown(true);\n }\n }, [isTouch, items, newContainer, yOffset, dialogText]);\n\n const handleClick = useCallback<MouseEventHandler<HTMLSpanElement>>(\n (event) => {\n if (shouldDisableClick) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n void handleShow();\n },\n [handleShow, shouldDisableClick],\n );\n\n const handleKeyDown = useCallback<KeyboardEventHandler<HTMLSpanElement>>(\n (event) => {\n if (shouldDisableClick) {\n return;\n }\n\n const isActivationKey =\n event.key === 'Enter' || event.key === ' ' || event.key === 'Spacebar';\n\n if (isContentShown && event.key === 'Escape') {\n event.preventDefault();\n event.stopPropagation();\n handleHide();\n return;\n }\n\n if (isContentShown && !isHovered && event.key === 'ArrowDown') {\n event.preventDefault();\n event.stopPropagation();\n setFocusedIndex((prev) => (prev >= items.length - 1 ? 0 : prev + 1));\n return;\n }\n\n if (isContentShown && !isHovered && event.key === 'ArrowUp') {\n event.preventDefault();\n event.stopPropagation();\n setFocusedIndex((prev) => (prev <= 0 ? items.length - 1 : prev - 1));\n return;\n }\n\n if (isContentShown && isActivationKey) {\n if (\n selectItem({\n index: getActiveItemIndex({\n contextMenuContentElement: contextMenuContentRef.current,\n focusedIndex,\n }),\n items,\n onClose: handleHide,\n shouldCloseOnPopupClick,\n })\n ) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n return;\n }\n\n if (event.currentTarget !== event.target) {\n return;\n }\n\n const isContextMenuShortcut =\n event.key === 'ContextMenu' || (event.key === 'F10' && event.shiftKey);\n\n if (isContextMenuShortcut) {\n event.preventDefault();\n event.stopPropagation();\n shouldSkipNextContextMenuOpenRef.current = true;\n void handleShow();\n return;\n }\n\n if (shouldUseFocusableWrapper && isActivationKey) {\n event.preventDefault();\n event.stopPropagation();\n void handleShow();\n }\n },\n [\n focusedIndex,\n handleHide,\n handleShow,\n isHovered,\n isContentShown,\n items,\n items.length,\n shouldCloseOnPopupClick,\n shouldDisableClick,\n shouldUseFocusableWrapper,\n ],\n );\n\n const handleContextMenu = useCallback(\n (event: MouseEvent<HTMLSpanElement>) => {\n event.preventDefault();\n event.stopPropagation();\n\n if (shouldDisableClick) {\n return;\n }\n\n if (shouldSkipNextContextMenuOpenRef.current) {\n shouldSkipNextContextMenuOpenRef.current = false;\n return;\n }\n\n void handleShow();\n },\n [handleShow, shouldDisableClick],\n );\n\n useEffect(() => {\n const handleGlobalKeyDown = (event: KeyboardEvent) => {\n if (shouldDisableClick || !contextMenuRef.current) {\n return;\n }\n\n const isContextMenuShortcut =\n event.key === 'ContextMenu' || (event.key === 'F10' && event.shiftKey);\n\n if (!isContextMenuShortcut) {\n return;\n }\n\n const { activeElement } = document;\n\n if (\n !(activeElement instanceof HTMLElement) ||\n activeElement === document.body ||\n activeElement === document.documentElement\n ) {\n return;\n }\n\n const shouldOpenFromFocusedParent =\n activeElement.contains(contextMenuRef.current) &&\n !contextMenuRef.current.contains(activeElement);\n\n if (!shouldOpenFromFocusedParent) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n shouldPreventNextNativeContextMenuRef.current = true;\n void handleShow();\n };\n\n const handleNativeContextMenuCapture = (event: Event) => {\n if (!shouldPreventNextNativeContextMenuRef.current) {\n return;\n }\n\n shouldPreventNextNativeContextMenuRef.current = false;\n event.preventDefault();\n event.stopPropagation();\n };\n\n document.addEventListener('keydown', handleGlobalKeyDown, true);\n document.addEventListener('contextmenu', handleNativeContextMenuCapture, true);\n\n return () => {\n document.removeEventListener('keydown', handleGlobalKeyDown, true);\n document.removeEventListener('contextmenu', handleNativeContextMenuCapture, true);\n };\n }, [handleShow, shouldDisableClick]);\n\n useImperativeHandle(\n ref,\n () => ({\n hide: handleHide,\n show: handleShow,\n }),\n [handleHide, handleShow],\n );\n\n useEffect(() => {\n const handleDocumentClick = (event: PointerEvent) => {\n if (\n !shouldCloseOnPopupClick &&\n contextMenuContentRef.current?.contains(event.target as Node)\n ) {\n return;\n }\n\n handleHide();\n };\n\n if (isContentShown) {\n document.addEventListener('click', handleDocumentClick, true);\n window.addEventListener('blur', handleHide);\n\n if (typeof onShow === 'function') {\n onShow();\n }\n } else if (typeof onHide === 'function') {\n onHide();\n }\n\n return () => {\n document.removeEventListener('click', handleDocumentClick, true);\n window.removeEventListener('blur', handleHide);\n };\n }, [handleHide, isContentShown, onHide, onShow, shouldCloseOnPopupClick]);\n\n useEffect(() => {\n if (!newContainer) {\n return;\n }\n\n setPortal(() =>\n createPortal(\n <AnimatePresence initial={false}>\n {isContentShown && (\n <ContextMenuContent\n coordinates={coordinates ?? internalCoordinates}\n items={items}\n zIndex={zIndex}\n headline={headline}\n shouldHidePopupArrow={shouldHidePopupArrow}\n key={`contextMenu_${uuid}`}\n alignment={alignment ?? internalAlignment}\n ref={contextMenuContentRef}\n focusedIndex={focusedIndex}\n onItemFocus={setFocusedIndex}\n onMouseEnter={() => {\n setIsHovered(true);\n setFocusedIndex(-1);\n }}\n onMouseLeave={() => {\n setIsHovered(false);\n }}\n />\n )}\n </AnimatePresence>,\n newContainer,\n ),\n );\n }, [\n alignment,\n newContainer,\n coordinates,\n internalAlignment,\n internalCoordinates,\n isContentShown,\n items,\n uuid,\n zIndex,\n shouldHidePopupArrow,\n headline,\n focusedIndex,\n handleHide,\n ]);\n\n useEffect(() => {\n if (!contextMenuRef.current) {\n return;\n }\n\n const focusableChildSelector =\n 'button:not([disabled]), a[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"]), [contenteditable=\"true\"]';\n\n const hasFocusableChild = Boolean(\n contextMenuRef.current.querySelector(focusableChildSelector),\n );\n\n setShouldUseFocusableWrapper(!hasFocusableChild);\n }, [children]);\n\n return (\n <>\n <StyledContextMenu\n className={\n className\n ? `beta-chayns-context-menu ${className}`\n : 'beta-chayns-context-menu'\n }\n $isActive={isContentShown && shouldShowHoverEffect}\n $shouldAddHoverEffect={!isTouch && shouldShowHoverEffect}\n $shouldShowWrapperKeyboardHighlighting={shouldShowWrapperKeyboardHighlighting}\n $shouldUseDefaultTriggerStyles={shouldUseDefaultTriggerStyles}\n onClick={handleClick}\n onContextMenuCapture={handleContextMenu}\n onContextMenu={handleContextMenu}\n onKeyDown={handleKeyDown}\n onBlur={handleContainerBlur}\n ref={contextMenuRef}\n tabIndex={shouldUseKeyboardFocusableWrapper ? 0 : undefined}\n role={shouldUseKeyboardFocusableWrapper ? 'button' : undefined}\n aria-haspopup={shouldUseKeyboardFocusableWrapper ? 'menu' : undefined}\n aria-expanded={shouldUseKeyboardFocusableWrapper ? isContentShown : undefined}\n style={style}\n >\n {children}\n </StyledContextMenu>\n {portal}\n </>\n );\n },\n);\n\nContextMenu.displayName = 'ContextMenu';\n\nexport default ContextMenu;\n"],"mappings":"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","ignoreList":[]}