@chayns-components/core 5.4.5-alpha.0 → 5.4.5

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 (472) hide show
  1. package/AGENTS.md +0 -12
  2. package/lib/cjs/components/accordion/Accordion.js +12 -107
  3. package/lib/cjs/components/accordion/Accordion.js.map +1 -1
  4. package/lib/cjs/components/accordion/Accordion.styles.js +3 -23
  5. package/lib/cjs/components/accordion/Accordion.styles.js.map +1 -1
  6. package/lib/cjs/components/accordion/accordion-body/AccordionBody.styles.js +1 -3
  7. package/lib/cjs/components/accordion/accordion-body/AccordionBody.styles.js.map +1 -1
  8. package/lib/cjs/components/accordion/accordion-group/AccordionGroup.js +19 -36
  9. package/lib/cjs/components/accordion/accordion-group/AccordionGroup.js.map +1 -1
  10. package/lib/cjs/components/accordion/accordion-head/AccordionHead.js +3 -6
  11. package/lib/cjs/components/accordion/accordion-head/AccordionHead.js.map +1 -1
  12. package/lib/cjs/components/accordion/accordion-head/AccordionHead.styles.js +0 -14
  13. package/lib/cjs/components/accordion/accordion-head/AccordionHead.styles.js.map +1 -1
  14. package/lib/cjs/components/amount-control/AmountControl.js +17 -31
  15. package/lib/cjs/components/amount-control/AmountControl.js.map +1 -1
  16. package/lib/cjs/components/amount-control/AmountControl.styles.js +2 -18
  17. package/lib/cjs/components/amount-control/AmountControl.styles.js.map +1 -1
  18. package/lib/cjs/components/button/Button.js +1 -5
  19. package/lib/cjs/components/button/Button.js.map +1 -1
  20. package/lib/cjs/components/button/Button.styles.js +0 -10
  21. package/lib/cjs/components/button/Button.styles.js.map +1 -1
  22. package/lib/cjs/components/button/Button.types.js.map +1 -1
  23. package/lib/cjs/components/checkbox/Checkbox.js +1 -5
  24. package/lib/cjs/components/checkbox/Checkbox.js.map +1 -1
  25. package/lib/cjs/components/checkbox/Checkbox.styles.js +2 -29
  26. package/lib/cjs/components/checkbox/Checkbox.styles.js.map +1 -1
  27. package/lib/cjs/components/color-scheme-provider/ColorSchemeProvider.js +2 -7
  28. package/lib/cjs/components/color-scheme-provider/ColorSchemeProvider.js.map +1 -1
  29. package/lib/cjs/components/color-scheme-provider/ColorSchemeProvider.styles.js +2 -8
  30. package/lib/cjs/components/color-scheme-provider/ColorSchemeProvider.styles.js.map +1 -1
  31. package/lib/cjs/components/combobox/ComboBox.js +26 -70
  32. package/lib/cjs/components/combobox/ComboBox.js.map +1 -1
  33. package/lib/cjs/components/combobox/ComboBox.styles.js +0 -11
  34. package/lib/cjs/components/combobox/ComboBox.styles.js.map +1 -1
  35. package/lib/cjs/components/combobox/ComboBox.types.js.map +1 -1
  36. package/lib/cjs/components/context-menu/ContextMenu.js +42 -146
  37. package/lib/cjs/components/context-menu/ContextMenu.js.map +1 -1
  38. package/lib/cjs/components/context-menu/ContextMenu.styles.js +0 -38
  39. package/lib/cjs/components/context-menu/ContextMenu.styles.js.map +1 -1
  40. package/lib/cjs/components/context-menu/ContextMenu.types.js.map +1 -1
  41. package/lib/cjs/components/context-menu/ContextMenu.utils.js +1 -27
  42. package/lib/cjs/components/context-menu/ContextMenu.utils.js.map +1 -1
  43. package/lib/cjs/components/context-menu/context-menu-content/ContextMenuContent.js +8 -3
  44. package/lib/cjs/components/context-menu/context-menu-content/ContextMenuContent.js.map +1 -1
  45. package/lib/cjs/components/dropdown-body-wrapper/DropdownBodyWrapper.js +8 -1
  46. package/lib/cjs/components/dropdown-body-wrapper/DropdownBodyWrapper.js.map +1 -1
  47. package/lib/cjs/components/file-input/FileInput.js +2 -4
  48. package/lib/cjs/components/file-input/FileInput.js.map +1 -1
  49. package/lib/cjs/components/file-list/file-item/FileItem.js +25 -48
  50. package/lib/cjs/components/file-list/file-item/FileItem.js.map +1 -1
  51. package/lib/cjs/components/file-list/file-item/FileItem.styles.js +1 -25
  52. package/lib/cjs/components/file-list/file-item/FileItem.styles.js.map +1 -1
  53. package/lib/cjs/components/file-select/FileSelect.js +4 -27
  54. package/lib/cjs/components/file-select/FileSelect.js.map +1 -1
  55. package/lib/cjs/components/file-select/FileSelect.styles.js +0 -10
  56. package/lib/cjs/components/file-select/FileSelect.styles.js.map +1 -1
  57. package/lib/cjs/components/filter/Filter.js +16 -51
  58. package/lib/cjs/components/filter/Filter.js.map +1 -1
  59. package/lib/cjs/components/filter/Filter.styles.js +0 -9
  60. package/lib/cjs/components/filter/Filter.styles.js.map +1 -1
  61. package/lib/cjs/components/filter/filter-content/FilterContent.js +5 -14
  62. package/lib/cjs/components/filter/filter-content/FilterContent.js.map +1 -1
  63. package/lib/cjs/components/filter/filter-content/FilterContent.types.js.map +1 -1
  64. package/lib/cjs/components/filter-buttons/FilterButtons.js +4 -69
  65. package/lib/cjs/components/filter-buttons/FilterButtons.js.map +1 -1
  66. package/lib/cjs/components/filter-buttons/filter-button/FilterButton.js +2 -40
  67. package/lib/cjs/components/filter-buttons/filter-button/FilterButton.js.map +1 -1
  68. package/lib/cjs/components/filter-buttons/filter-button/FilterButton.styles.js +0 -11
  69. package/lib/cjs/components/filter-buttons/filter-button/FilterButton.styles.js.map +1 -1
  70. package/lib/cjs/components/grid-image/GridImage.js +2 -20
  71. package/lib/cjs/components/grid-image/GridImage.js.map +1 -1
  72. package/lib/cjs/components/grid-image/GridImage.styles.js +2 -11
  73. package/lib/cjs/components/grid-image/GridImage.styles.js.map +1 -1
  74. package/lib/cjs/components/grouped-image/GroupedImage.js +4 -23
  75. package/lib/cjs/components/grouped-image/GroupedImage.js.map +1 -1
  76. package/lib/cjs/components/grouped-image/GroupedImage.styles.js +0 -9
  77. package/lib/cjs/components/grouped-image/GroupedImage.styles.js.map +1 -1
  78. package/lib/cjs/components/highlight-slider/HighlightSlider.js +3 -13
  79. package/lib/cjs/components/highlight-slider/HighlightSlider.js.map +1 -1
  80. package/lib/cjs/components/highlight-slider/highlight-slider-item/HighlightSliderItem.js +4 -21
  81. package/lib/cjs/components/highlight-slider/highlight-slider-item/HighlightSliderItem.js.map +1 -1
  82. package/lib/cjs/components/highlight-slider/highlight-slider-item/HighlightSliderItem.styles.js +2 -11
  83. package/lib/cjs/components/highlight-slider/highlight-slider-item/HighlightSliderItem.styles.js.map +1 -1
  84. package/lib/cjs/components/icon/Icon.js +5 -24
  85. package/lib/cjs/components/icon/Icon.js.map +1 -1
  86. package/lib/cjs/components/icon/Icon.styles.js +0 -23
  87. package/lib/cjs/components/icon/Icon.styles.js.map +1 -1
  88. package/lib/cjs/components/input/Input.js +8 -29
  89. package/lib/cjs/components/input/Input.js.map +1 -1
  90. package/lib/cjs/components/input/Input.styles.js +3 -38
  91. package/lib/cjs/components/input/Input.styles.js.map +1 -1
  92. package/lib/cjs/components/list/List.js +37 -124
  93. package/lib/cjs/components/list/List.js.map +1 -1
  94. package/lib/cjs/components/list/List.utils.js +1 -213
  95. package/lib/cjs/components/list/List.utils.js.map +1 -1
  96. package/lib/cjs/components/list/list-item/ListItem.js +3 -84
  97. package/lib/cjs/components/list/list-item/ListItem.js.map +1 -1
  98. package/lib/cjs/components/list/list-item/ListItem.styles.js +0 -7
  99. package/lib/cjs/components/list/list-item/ListItem.styles.js.map +1 -1
  100. package/lib/cjs/components/list/list-item/list-item-head/ListItemHead.js +1 -5
  101. package/lib/cjs/components/list/list-item/list-item-head/ListItemHead.js.map +1 -1
  102. package/lib/cjs/components/list/list-item/list-item-head/ListItemHead.styles.js +1 -5
  103. package/lib/cjs/components/list/list-item/list-item-head/ListItemHead.styles.js.map +1 -1
  104. package/lib/cjs/components/list/list-item/list-item-head/list-item-right-element/ListItemRightElement.js +0 -1
  105. package/lib/cjs/components/list/list-item/list-item-head/list-item-right-element/ListItemRightElement.js.map +1 -1
  106. package/lib/cjs/components/list/list-item/list-item-head/list-item-subtitle/ListItemSubtitle.js +0 -3
  107. package/lib/cjs/components/list/list-item/list-item-head/list-item-subtitle/ListItemSubtitle.js.map +1 -1
  108. package/lib/cjs/components/list/list-item/list-item-head/list-item-title/ListItemTitle.js +0 -1
  109. package/lib/cjs/components/list/list-item/list-item-head/list-item-title/ListItemTitle.js.map +1 -1
  110. package/lib/cjs/components/mention-finder/MentionFinder.js +5 -43
  111. package/lib/cjs/components/mention-finder/MentionFinder.js.map +1 -1
  112. package/lib/cjs/components/mention-finder/mention-finder-item/MentionFinderItem.styles.js.map +1 -1
  113. package/lib/cjs/components/multi-action-button/MultiActionButton.js +3 -36
  114. package/lib/cjs/components/multi-action-button/MultiActionButton.js.map +1 -1
  115. package/lib/cjs/components/multi-action-button/MultiActionButton.styles.js +0 -6
  116. package/lib/cjs/components/multi-action-button/MultiActionButton.styles.js.map +1 -1
  117. package/lib/cjs/components/multi-action-button/MultiActionButton.types.js.map +1 -1
  118. package/lib/cjs/components/multi-action-button/action-button/ActionButton.js +1 -7
  119. package/lib/cjs/components/multi-action-button/action-button/ActionButton.js.map +1 -1
  120. package/lib/cjs/components/multi-action-button/action-button/ActionButton.styles.js +0 -12
  121. package/lib/cjs/components/multi-action-button/action-button/ActionButton.styles.js.map +1 -1
  122. package/lib/cjs/components/number-input/NumberInput.js +10 -13
  123. package/lib/cjs/components/number-input/NumberInput.js.map +1 -1
  124. package/lib/cjs/components/page-provider/PageProvider.js +2 -4
  125. package/lib/cjs/components/page-provider/PageProvider.js.map +1 -1
  126. package/lib/cjs/components/popup/Popup.js +1 -8
  127. package/lib/cjs/components/popup/Popup.js.map +1 -1
  128. package/lib/cjs/components/radio-button/RadioButton.js +15 -29
  129. package/lib/cjs/components/radio-button/RadioButton.js.map +1 -1
  130. package/lib/cjs/components/radio-button/RadioButton.styles.js +8 -19
  131. package/lib/cjs/components/radio-button/RadioButton.styles.js.map +1 -1
  132. package/lib/cjs/components/radio-button/radio-button-group/RadioButtonGroup.js +4 -7
  133. package/lib/cjs/components/radio-button/radio-button-group/RadioButtonGroup.js.map +1 -1
  134. package/lib/cjs/components/search-box/SearchBox.js +5 -20
  135. package/lib/cjs/components/search-box/SearchBox.js.map +1 -1
  136. package/lib/cjs/components/search-input/SearchInput.js +43 -56
  137. package/lib/cjs/components/search-input/SearchInput.js.map +1 -1
  138. package/lib/cjs/components/search-input/SearchInput.styles.js +2 -26
  139. package/lib/cjs/components/search-input/SearchInput.styles.js.map +1 -1
  140. package/lib/cjs/components/select-button/SelectButton.js +2 -4
  141. package/lib/cjs/components/select-button/SelectButton.js.map +1 -1
  142. package/lib/cjs/components/setup-wizard/SetupWizard.js +4 -10
  143. package/lib/cjs/components/setup-wizard/SetupWizard.js.map +1 -1
  144. package/lib/cjs/components/setup-wizard/setup-wizard-item/SetupWizardItem.js +3 -5
  145. package/lib/cjs/components/setup-wizard/setup-wizard-item/SetupWizardItem.js.map +1 -1
  146. package/lib/cjs/components/sharing-bar/SharingBar.js +6 -31
  147. package/lib/cjs/components/sharing-bar/SharingBar.js.map +1 -1
  148. package/lib/cjs/components/sharing-bar/SharingBar.styles.js +0 -5
  149. package/lib/cjs/components/sharing-bar/SharingBar.styles.js.map +1 -1
  150. package/lib/cjs/components/sharing-button/SharingButton.js +2 -4
  151. package/lib/cjs/components/sharing-button/SharingButton.js.map +1 -1
  152. package/lib/cjs/components/sharing-context-menu/SharingContextMenu.js +1 -3
  153. package/lib/cjs/components/sharing-context-menu/SharingContextMenu.js.map +1 -1
  154. package/lib/cjs/components/signature/Signature.js +3 -6
  155. package/lib/cjs/components/signature/Signature.js.map +1 -1
  156. package/lib/cjs/components/slider/Slider.js +7 -30
  157. package/lib/cjs/components/slider/Slider.js.map +1 -1
  158. package/lib/cjs/components/slider/Slider.styles.js +2 -9
  159. package/lib/cjs/components/slider/Slider.styles.js.map +1 -1
  160. package/lib/cjs/components/slider-button/SliderButton.js +6 -63
  161. package/lib/cjs/components/slider-button/SliderButton.js.map +1 -1
  162. package/lib/cjs/components/slider-button/SliderButton.styles.js +2 -15
  163. package/lib/cjs/components/slider-button/SliderButton.styles.js.map +1 -1
  164. package/lib/cjs/components/tag-input/TagInput.js +36 -92
  165. package/lib/cjs/components/tag-input/TagInput.js.map +1 -1
  166. package/lib/cjs/components/tag-input/TagInput.styles.js +3 -29
  167. package/lib/cjs/components/tag-input/TagInput.styles.js.map +1 -1
  168. package/lib/cjs/components/text-area/TextArea.js +8 -17
  169. package/lib/cjs/components/text-area/TextArea.js.map +1 -1
  170. package/lib/cjs/components/text-area/TextArea.styles.js +1 -15
  171. package/lib/cjs/components/text-area/TextArea.styles.js.map +1 -1
  172. package/lib/cjs/components/truncation/Truncation.js +3 -17
  173. package/lib/cjs/components/truncation/Truncation.js.map +1 -1
  174. package/lib/cjs/components/truncation/Truncation.styles.js +1 -18
  175. package/lib/cjs/components/truncation/Truncation.styles.js.map +1 -1
  176. package/lib/cjs/hooks/dropdown.js +24 -5
  177. package/lib/cjs/hooks/dropdown.js.map +1 -1
  178. package/lib/cjs/utils/file.js.map +1 -1
  179. package/lib/esm/components/accordion/Accordion.js +12 -105
  180. package/lib/esm/components/accordion/Accordion.js.map +1 -1
  181. package/lib/esm/components/accordion/Accordion.styles.js +3 -23
  182. package/lib/esm/components/accordion/Accordion.styles.js.map +1 -1
  183. package/lib/esm/components/accordion/accordion-body/AccordionBody.styles.js +1 -3
  184. package/lib/esm/components/accordion/accordion-body/AccordionBody.styles.js.map +1 -1
  185. package/lib/esm/components/accordion/accordion-group/AccordionGroup.js +19 -33
  186. package/lib/esm/components/accordion/accordion-group/AccordionGroup.js.map +1 -1
  187. package/lib/esm/components/accordion/accordion-head/AccordionHead.js +3 -6
  188. package/lib/esm/components/accordion/accordion-head/AccordionHead.js.map +1 -1
  189. package/lib/esm/components/accordion/accordion-head/AccordionHead.styles.js +0 -14
  190. package/lib/esm/components/accordion/accordion-head/AccordionHead.styles.js.map +1 -1
  191. package/lib/esm/components/amount-control/AmountControl.js +16 -30
  192. package/lib/esm/components/amount-control/AmountControl.js.map +1 -1
  193. package/lib/esm/components/amount-control/AmountControl.styles.js +2 -18
  194. package/lib/esm/components/amount-control/AmountControl.styles.js.map +1 -1
  195. package/lib/esm/components/button/Button.js +1 -5
  196. package/lib/esm/components/button/Button.js.map +1 -1
  197. package/lib/esm/components/button/Button.styles.js +0 -10
  198. package/lib/esm/components/button/Button.styles.js.map +1 -1
  199. package/lib/esm/components/button/Button.types.js.map +1 -1
  200. package/lib/esm/components/checkbox/Checkbox.js +1 -5
  201. package/lib/esm/components/checkbox/Checkbox.js.map +1 -1
  202. package/lib/esm/components/checkbox/Checkbox.styles.js +2 -29
  203. package/lib/esm/components/checkbox/Checkbox.styles.js.map +1 -1
  204. package/lib/esm/components/color-scheme-provider/ColorSchemeProvider.js +2 -7
  205. package/lib/esm/components/color-scheme-provider/ColorSchemeProvider.js.map +1 -1
  206. package/lib/esm/components/color-scheme-provider/ColorSchemeProvider.styles.js +2 -8
  207. package/lib/esm/components/color-scheme-provider/ColorSchemeProvider.styles.js.map +1 -1
  208. package/lib/esm/components/combobox/ComboBox.js +22 -63
  209. package/lib/esm/components/combobox/ComboBox.js.map +1 -1
  210. package/lib/esm/components/combobox/ComboBox.styles.js +0 -11
  211. package/lib/esm/components/combobox/ComboBox.styles.js.map +1 -1
  212. package/lib/esm/components/combobox/ComboBox.types.js.map +1 -1
  213. package/lib/esm/components/context-menu/ContextMenu.js +42 -145
  214. package/lib/esm/components/context-menu/ContextMenu.js.map +1 -1
  215. package/lib/esm/components/context-menu/ContextMenu.styles.js +0 -38
  216. package/lib/esm/components/context-menu/ContextMenu.styles.js.map +1 -1
  217. package/lib/esm/components/context-menu/ContextMenu.types.js.map +1 -1
  218. package/lib/esm/components/context-menu/ContextMenu.utils.js +0 -24
  219. package/lib/esm/components/context-menu/ContextMenu.utils.js.map +1 -1
  220. package/lib/esm/components/context-menu/context-menu-content/ContextMenuContent.js +8 -3
  221. package/lib/esm/components/context-menu/context-menu-content/ContextMenuContent.js.map +1 -1
  222. package/lib/esm/components/dropdown-body-wrapper/DropdownBodyWrapper.js +8 -1
  223. package/lib/esm/components/dropdown-body-wrapper/DropdownBodyWrapper.js.map +1 -1
  224. package/lib/esm/components/file-input/FileInput.js +2 -4
  225. package/lib/esm/components/file-input/FileInput.js.map +1 -1
  226. package/lib/esm/components/file-list/file-item/FileItem.js +26 -49
  227. package/lib/esm/components/file-list/file-item/FileItem.js.map +1 -1
  228. package/lib/esm/components/file-list/file-item/FileItem.styles.js +0 -24
  229. package/lib/esm/components/file-list/file-item/FileItem.styles.js.map +1 -1
  230. package/lib/esm/components/file-select/FileSelect.js +4 -27
  231. package/lib/esm/components/file-select/FileSelect.js.map +1 -1
  232. package/lib/esm/components/file-select/FileSelect.styles.js +0 -10
  233. package/lib/esm/components/file-select/FileSelect.styles.js.map +1 -1
  234. package/lib/esm/components/filter/Filter.js +16 -52
  235. package/lib/esm/components/filter/Filter.js.map +1 -1
  236. package/lib/esm/components/filter/Filter.styles.js +0 -9
  237. package/lib/esm/components/filter/Filter.styles.js.map +1 -1
  238. package/lib/esm/components/filter/filter-content/FilterContent.js +5 -15
  239. package/lib/esm/components/filter/filter-content/FilterContent.js.map +1 -1
  240. package/lib/esm/components/filter/filter-content/FilterContent.types.js.map +1 -1
  241. package/lib/esm/components/filter-buttons/FilterButtons.js +5 -69
  242. package/lib/esm/components/filter-buttons/FilterButtons.js.map +1 -1
  243. package/lib/esm/components/filter-buttons/filter-button/FilterButton.js +2 -40
  244. package/lib/esm/components/filter-buttons/filter-button/FilterButton.js.map +1 -1
  245. package/lib/esm/components/filter-buttons/filter-button/FilterButton.styles.js +0 -11
  246. package/lib/esm/components/filter-buttons/filter-button/FilterButton.styles.js.map +1 -1
  247. package/lib/esm/components/grid-image/GridImage.js +2 -20
  248. package/lib/esm/components/grid-image/GridImage.js.map +1 -1
  249. package/lib/esm/components/grid-image/GridImage.styles.js +1 -10
  250. package/lib/esm/components/grid-image/GridImage.styles.js.map +1 -1
  251. package/lib/esm/components/grouped-image/GroupedImage.js +4 -22
  252. package/lib/esm/components/grouped-image/GroupedImage.js.map +1 -1
  253. package/lib/esm/components/grouped-image/GroupedImage.styles.js +0 -9
  254. package/lib/esm/components/grouped-image/GroupedImage.styles.js.map +1 -1
  255. package/lib/esm/components/highlight-slider/HighlightSlider.js +3 -13
  256. package/lib/esm/components/highlight-slider/HighlightSlider.js.map +1 -1
  257. package/lib/esm/components/highlight-slider/highlight-slider-item/HighlightSliderItem.js +3 -20
  258. package/lib/esm/components/highlight-slider/highlight-slider-item/HighlightSliderItem.js.map +1 -1
  259. package/lib/esm/components/highlight-slider/highlight-slider-item/HighlightSliderItem.styles.js +1 -10
  260. package/lib/esm/components/highlight-slider/highlight-slider-item/HighlightSliderItem.styles.js.map +1 -1
  261. package/lib/esm/components/icon/Icon.js +7 -26
  262. package/lib/esm/components/icon/Icon.js.map +1 -1
  263. package/lib/esm/components/icon/Icon.styles.js +0 -23
  264. package/lib/esm/components/icon/Icon.styles.js.map +1 -1
  265. package/lib/esm/components/input/Input.js +4 -24
  266. package/lib/esm/components/input/Input.js.map +1 -1
  267. package/lib/esm/components/input/Input.styles.js +3 -38
  268. package/lib/esm/components/input/Input.styles.js.map +1 -1
  269. package/lib/esm/components/list/List.js +37 -123
  270. package/lib/esm/components/list/List.js.map +1 -1
  271. package/lib/esm/components/list/List.utils.js +0 -202
  272. package/lib/esm/components/list/List.utils.js.map +1 -1
  273. package/lib/esm/components/list/list-item/ListItem.js +4 -85
  274. package/lib/esm/components/list/list-item/ListItem.js.map +1 -1
  275. package/lib/esm/components/list/list-item/ListItem.styles.js +0 -7
  276. package/lib/esm/components/list/list-item/ListItem.styles.js.map +1 -1
  277. package/lib/esm/components/list/list-item/list-item-head/ListItemHead.js +2 -6
  278. package/lib/esm/components/list/list-item/list-item-head/ListItemHead.js.map +1 -1
  279. package/lib/esm/components/list/list-item/list-item-head/ListItemHead.styles.js +0 -4
  280. package/lib/esm/components/list/list-item/list-item-head/ListItemHead.styles.js.map +1 -1
  281. package/lib/esm/components/list/list-item/list-item-head/list-item-right-element/ListItemRightElement.js +0 -1
  282. package/lib/esm/components/list/list-item/list-item-head/list-item-right-element/ListItemRightElement.js.map +1 -1
  283. package/lib/esm/components/list/list-item/list-item-head/list-item-subtitle/ListItemSubtitle.js +1 -4
  284. package/lib/esm/components/list/list-item/list-item-head/list-item-subtitle/ListItemSubtitle.js.map +1 -1
  285. package/lib/esm/components/list/list-item/list-item-head/list-item-title/ListItemTitle.js +0 -1
  286. package/lib/esm/components/list/list-item/list-item-head/list-item-title/ListItemTitle.js.map +1 -1
  287. package/lib/esm/components/mention-finder/MentionFinder.js +3 -39
  288. package/lib/esm/components/mention-finder/MentionFinder.js.map +1 -1
  289. package/lib/esm/components/mention-finder/mention-finder-item/MentionFinderItem.styles.js.map +1 -1
  290. package/lib/esm/components/multi-action-button/MultiActionButton.js +3 -36
  291. package/lib/esm/components/multi-action-button/MultiActionButton.js.map +1 -1
  292. package/lib/esm/components/multi-action-button/MultiActionButton.styles.js +0 -6
  293. package/lib/esm/components/multi-action-button/MultiActionButton.styles.js.map +1 -1
  294. package/lib/esm/components/multi-action-button/MultiActionButton.types.js.map +1 -1
  295. package/lib/esm/components/multi-action-button/action-button/ActionButton.js +1 -7
  296. package/lib/esm/components/multi-action-button/action-button/ActionButton.js.map +1 -1
  297. package/lib/esm/components/multi-action-button/action-button/ActionButton.styles.js +0 -12
  298. package/lib/esm/components/multi-action-button/action-button/ActionButton.styles.js.map +1 -1
  299. package/lib/esm/components/number-input/NumberInput.js +10 -13
  300. package/lib/esm/components/number-input/NumberInput.js.map +1 -1
  301. package/lib/esm/components/page-provider/PageProvider.js +2 -4
  302. package/lib/esm/components/page-provider/PageProvider.js.map +1 -1
  303. package/lib/esm/components/popup/Popup.js +1 -8
  304. package/lib/esm/components/popup/Popup.js.map +1 -1
  305. package/lib/esm/components/radio-button/RadioButton.js +15 -29
  306. package/lib/esm/components/radio-button/RadioButton.js.map +1 -1
  307. package/lib/esm/components/radio-button/RadioButton.styles.js +8 -19
  308. package/lib/esm/components/radio-button/RadioButton.styles.js.map +1 -1
  309. package/lib/esm/components/radio-button/radio-button-group/RadioButtonGroup.js +4 -7
  310. package/lib/esm/components/radio-button/radio-button-group/RadioButtonGroup.js.map +1 -1
  311. package/lib/esm/components/search-box/SearchBox.js +3 -17
  312. package/lib/esm/components/search-box/SearchBox.js.map +1 -1
  313. package/lib/esm/components/search-input/SearchInput.js +44 -56
  314. package/lib/esm/components/search-input/SearchInput.js.map +1 -1
  315. package/lib/esm/components/search-input/SearchInput.styles.js +1 -25
  316. package/lib/esm/components/search-input/SearchInput.styles.js.map +1 -1
  317. package/lib/esm/components/select-button/SelectButton.js +2 -4
  318. package/lib/esm/components/select-button/SelectButton.js.map +1 -1
  319. package/lib/esm/components/setup-wizard/SetupWizard.js +4 -10
  320. package/lib/esm/components/setup-wizard/SetupWizard.js.map +1 -1
  321. package/lib/esm/components/setup-wizard/setup-wizard-item/SetupWizardItem.js +3 -5
  322. package/lib/esm/components/setup-wizard/setup-wizard-item/SetupWizardItem.js.map +1 -1
  323. package/lib/esm/components/sharing-bar/SharingBar.js +5 -30
  324. package/lib/esm/components/sharing-bar/SharingBar.js.map +1 -1
  325. package/lib/esm/components/sharing-bar/SharingBar.styles.js +0 -5
  326. package/lib/esm/components/sharing-bar/SharingBar.styles.js.map +1 -1
  327. package/lib/esm/components/sharing-button/SharingButton.js +2 -4
  328. package/lib/esm/components/sharing-button/SharingButton.js.map +1 -1
  329. package/lib/esm/components/sharing-context-menu/SharingContextMenu.js +1 -3
  330. package/lib/esm/components/sharing-context-menu/SharingContextMenu.js.map +1 -1
  331. package/lib/esm/components/signature/Signature.js +3 -6
  332. package/lib/esm/components/signature/Signature.js.map +1 -1
  333. package/lib/esm/components/slider/Slider.js +7 -30
  334. package/lib/esm/components/slider/Slider.js.map +1 -1
  335. package/lib/esm/components/slider/Slider.styles.js +1 -8
  336. package/lib/esm/components/slider/Slider.styles.js.map +1 -1
  337. package/lib/esm/components/slider-button/SliderButton.js +6 -62
  338. package/lib/esm/components/slider-button/SliderButton.js.map +1 -1
  339. package/lib/esm/components/slider-button/SliderButton.styles.js +1 -14
  340. package/lib/esm/components/slider-button/SliderButton.styles.js.map +1 -1
  341. package/lib/esm/components/tag-input/TagInput.js +35 -86
  342. package/lib/esm/components/tag-input/TagInput.js.map +1 -1
  343. package/lib/esm/components/tag-input/TagInput.styles.js +1 -27
  344. package/lib/esm/components/tag-input/TagInput.styles.js.map +1 -1
  345. package/lib/esm/components/text-area/TextArea.js +9 -18
  346. package/lib/esm/components/text-area/TextArea.js.map +1 -1
  347. package/lib/esm/components/text-area/TextArea.styles.js +0 -14
  348. package/lib/esm/components/text-area/TextArea.styles.js.map +1 -1
  349. package/lib/esm/components/truncation/Truncation.js +4 -18
  350. package/lib/esm/components/truncation/Truncation.js.map +1 -1
  351. package/lib/esm/components/truncation/Truncation.styles.js +0 -17
  352. package/lib/esm/components/truncation/Truncation.styles.js.map +1 -1
  353. package/lib/esm/hooks/dropdown.js +24 -5
  354. package/lib/esm/hooks/dropdown.js.map +1 -1
  355. package/lib/esm/utils/file.js.map +1 -1
  356. package/lib/types/components/accordion/Accordion.d.ts +0 -5
  357. package/lib/types/components/accordion/Accordion.styles.d.ts +4 -8
  358. package/lib/types/components/accordion/accordion-body/AccordionBody.styles.d.ts +2 -2
  359. package/lib/types/components/accordion/accordion-group/AccordionGroup.d.ts +2 -7
  360. package/lib/types/components/accordion/accordion-head/AccordionHead.d.ts +0 -1
  361. package/lib/types/components/accordion/accordion-head/AccordionHead.styles.d.ts +18 -18
  362. package/lib/types/components/amount-control/AmountControl.d.ts +0 -5
  363. package/lib/types/components/amount-control/AmountControl.styles.d.ts +4 -8
  364. package/lib/types/components/button/Button.styles.d.ts +6 -8
  365. package/lib/types/components/button/Button.types.d.ts +0 -8
  366. package/lib/types/components/checkbox/Checkbox.d.ts +0 -4
  367. package/lib/types/components/checkbox/Checkbox.styles.d.ts +1 -5
  368. package/lib/types/components/color-scheme-provider/ColorSchemeProvider.d.ts +0 -5
  369. package/lib/types/components/combobox/ComboBox.styles.d.ts +2 -4
  370. package/lib/types/components/combobox/ComboBox.types.d.ts +0 -5
  371. package/lib/types/components/context-menu/ContextMenu.styles.d.ts +2 -4
  372. package/lib/types/components/context-menu/ContextMenu.types.d.ts +0 -6
  373. package/lib/types/components/context-menu/ContextMenu.utils.d.ts +0 -10
  374. package/lib/types/components/context-menu/context-menu-content/ContextMenuContent.d.ts +1 -1
  375. package/lib/types/components/context-menu/context-menu-content/ContextMenuContent.styles.d.ts +2 -2
  376. package/lib/types/components/dropdown-body-wrapper/DropdownBodyWrapper.d.ts +7 -0
  377. package/lib/types/components/dropdown-body-wrapper/delayed-dropdown-content/DelayedDropdownContent.styles.d.ts +2 -2
  378. package/lib/types/components/expandable-content/ExpandableContent.styles.d.ts +2 -2
  379. package/lib/types/components/file-input/FileInput.d.ts +0 -4
  380. package/lib/types/components/file-input/FileInput.styles.d.ts +2 -2
  381. package/lib/types/components/file-list/file-item/FileItem.styles.d.ts +0 -3
  382. package/lib/types/components/file-select/FileSelect.d.ts +0 -4
  383. package/lib/types/components/file-select/FileSelect.styles.d.ts +4 -6
  384. package/lib/types/components/filter/Filter.d.ts +0 -1
  385. package/lib/types/components/filter/Filter.styles.d.ts +4 -6
  386. package/lib/types/components/filter/filter-content/FilterContent.types.d.ts +0 -4
  387. package/lib/types/components/filter-buttons/FilterButtons.d.ts +0 -4
  388. package/lib/types/components/filter-buttons/filter-button/FilterButton.d.ts +0 -5
  389. package/lib/types/components/filter-buttons/filter-button/FilterButton.styles.d.ts +8 -12
  390. package/lib/types/components/grid-image/GridImage.d.ts +0 -4
  391. package/lib/types/components/grid-image/GridImage.styles.d.ts +2 -4
  392. package/lib/types/components/grouped-image/GroupedImage.d.ts +0 -4
  393. package/lib/types/components/grouped-image/GroupedImage.styles.d.ts +6 -8
  394. package/lib/types/components/highlight-slider/HighlightSlider.d.ts +0 -4
  395. package/lib/types/components/highlight-slider/highlight-slider-item/HighlightSliderItem.d.ts +0 -3
  396. package/lib/types/components/highlight-slider/highlight-slider-item/HighlightSliderItem.styles.d.ts +5 -9
  397. package/lib/types/components/icon/Icon.d.ts +0 -4
  398. package/lib/types/components/icon/Icon.styles.d.ts +0 -1
  399. package/lib/types/components/input/Input.d.ts +0 -4
  400. package/lib/types/components/input/Input.styles.d.ts +9 -17
  401. package/lib/types/components/list/List.d.ts +0 -11
  402. package/lib/types/components/list/List.utils.d.ts +1 -32
  403. package/lib/types/components/list/list-item/ListItem.d.ts +0 -4
  404. package/lib/types/components/list/list-item/ListItem.styles.d.ts +64 -64
  405. package/lib/types/components/list/list-item/list-item-body/ListItemBody.styles.d.ts +2 -2
  406. package/lib/types/components/list/list-item/list-item-head/ListItemHead.styles.d.ts +194 -195
  407. package/lib/types/components/masonry/masonry-item/MasonryItem.styles.d.ts +2 -2
  408. package/lib/types/components/mention-finder/MentionFinder.styles.d.ts +4 -4
  409. package/lib/types/components/multi-action-button/MultiActionButton.styles.d.ts +2 -2
  410. package/lib/types/components/multi-action-button/MultiActionButton.types.d.ts +0 -7
  411. package/lib/types/components/multi-action-button/action-button/ActionButton.d.ts +1 -4
  412. package/lib/types/components/multi-action-button/action-button/ActionButton.styles.d.ts +2 -4
  413. package/lib/types/components/number-input/NumberInput.d.ts +0 -4
  414. package/lib/types/components/popup/popup-content-wrapper/PopupContentWrapper.styles.d.ts +2 -2
  415. package/lib/types/components/progress-bar/ProgressBar.styles.d.ts +6 -6
  416. package/lib/types/components/radio-button/RadioButton.d.ts +0 -4
  417. package/lib/types/components/radio-button/RadioButton.styles.d.ts +9 -15
  418. package/lib/types/components/radio-button/radio-button-group/RadioButtonGroup.d.ts +0 -5
  419. package/lib/types/components/search-box/SearchBox.d.ts +0 -4
  420. package/lib/types/components/search-box/SearchBox.styles.d.ts +2 -2
  421. package/lib/types/components/search-input/SearchInput.d.ts +0 -4
  422. package/lib/types/components/search-input/SearchInput.styles.d.ts +9 -17
  423. package/lib/types/components/select-button/SelectButton.d.ts +0 -4
  424. package/lib/types/components/setup-wizard/SetupWizard.d.ts +0 -5
  425. package/lib/types/components/sharing-bar/SharingBar.d.ts +0 -4
  426. package/lib/types/components/sharing-button/SharingButton.d.ts +1 -1
  427. package/lib/types/components/sharing-context-menu/SharingContextMenu.d.ts +2 -10
  428. package/lib/types/components/signature/Signature.d.ts +0 -4
  429. package/lib/types/components/skeleton/base-skeleton/BaseSkeleton.styles.d.ts +4 -4
  430. package/lib/types/components/slider/Slider.d.ts +0 -8
  431. package/lib/types/components/slider/Slider.styles.d.ts +14 -18
  432. package/lib/types/components/slider-button/SliderButton.d.ts +28 -1
  433. package/lib/types/components/slider-button/SliderButton.styles.d.ts +4 -6
  434. package/lib/types/components/tag-input/TagInput.d.ts +0 -4
  435. package/lib/types/components/tag-input/TagInput.styles.d.ts +2 -12
  436. package/lib/types/components/text-area/TextArea.d.ts +0 -4
  437. package/lib/types/components/text-area/TextArea.styles.d.ts +0 -1
  438. package/lib/types/components/truncation/Truncation.d.ts +0 -4
  439. package/lib/types/components/truncation/Truncation.styles.d.ts +2 -7
  440. package/lib/types/hooks/dropdown.d.ts +2 -0
  441. package/lib/types/utils/file.d.ts +1 -1
  442. package/package.json +3 -3
  443. package/lib/cjs/components/list/list-item/useListItemFocus.js +0 -47
  444. package/lib/cjs/components/list/list-item/useListItemFocus.js.map +0 -1
  445. package/lib/cjs/components/slider-button/SliderButton.types.js +0 -6
  446. package/lib/cjs/components/slider-button/SliderButton.types.js.map +0 -1
  447. package/lib/cjs/components/slider-button/useSliderButtonPopupKeyboard.js +0 -66
  448. package/lib/cjs/components/slider-button/useSliderButtonPopupKeyboard.js.map +0 -1
  449. package/lib/cjs/components/slider-button/useSliderButtonThumbKeyboard.js +0 -47
  450. package/lib/cjs/components/slider-button/useSliderButtonThumbKeyboard.js.map +0 -1
  451. package/lib/cjs/hooks/useKeyboardFocusHighlighting.js +0 -68
  452. package/lib/cjs/hooks/useKeyboardFocusHighlighting.js.map +0 -1
  453. package/lib/cjs/utils/keyboardFocusHighlighting.styles.js +0 -29
  454. package/lib/cjs/utils/keyboardFocusHighlighting.styles.js.map +0 -1
  455. package/lib/esm/components/list/list-item/useListItemFocus.js +0 -40
  456. package/lib/esm/components/list/list-item/useListItemFocus.js.map +0 -1
  457. package/lib/esm/components/slider-button/SliderButton.types.js +0 -2
  458. package/lib/esm/components/slider-button/SliderButton.types.js.map +0 -1
  459. package/lib/esm/components/slider-button/useSliderButtonPopupKeyboard.js +0 -56
  460. package/lib/esm/components/slider-button/useSliderButtonPopupKeyboard.js.map +0 -1
  461. package/lib/esm/components/slider-button/useSliderButtonThumbKeyboard.js +0 -38
  462. package/lib/esm/components/slider-button/useSliderButtonThumbKeyboard.js.map +0 -1
  463. package/lib/esm/hooks/useKeyboardFocusHighlighting.js +0 -61
  464. package/lib/esm/hooks/useKeyboardFocusHighlighting.js.map +0 -1
  465. package/lib/esm/utils/keyboardFocusHighlighting.styles.js +0 -24
  466. package/lib/esm/utils/keyboardFocusHighlighting.styles.js.map +0 -1
  467. package/lib/types/components/list/list-item/useListItemFocus.d.ts +0 -13
  468. package/lib/types/components/slider-button/SliderButton.types.d.ts +0 -32
  469. package/lib/types/components/slider-button/useSliderButtonPopupKeyboard.d.ts +0 -17
  470. package/lib/types/components/slider-button/useSliderButtonThumbKeyboard.d.ts +0 -13
  471. package/lib/types/hooks/useKeyboardFocusHighlighting.d.ts +0 -5
  472. package/lib/types/utils/keyboardFocusHighlighting.styles.d.ts +0 -9
@@ -1 +1 @@
1
- {"version":3,"file":"MentionFinder.js","names":["_react","require","_react2","_interopRequireWildcard","_reactDom","_mentionFinder","_MentionFinderItem","_interopRequireDefault","_MentionFinder","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DRAG_CLOSE_THRESHOLD_IN_PX","isTextInputElement","element","tagName","toLowerCase","type","isContentEditable","findTouchByIdentifier","touchList","identifier","length","touch","item","MentionFinder","inputValue","members","onSelect","popupAlignment","enableDragHandle","dragCloseThresholdInPx","overlayContainerSelector","activeMember","setActiveMember","useState","focusedIndex","setFocusedIndex","shouldShowPopup","setShouldShowPopup","popupRef","useRef","listRef","inputElementRef","dragStartYRef","hasTriggeredDragCloseRef","activePointerIdRef","activeTouchIdRef","isDraggingHandle","setIsDraggingHandle","dragOffset","setDragOffset","dragProgress","setDragProgress","overlayContainer","setOverlayContainer","fullMatch","searchString","useMemo","_regExpMatchArray$","regExpMatchArray","match","filteredMembers","filter","id","info","name","includes","replace","shouldRenderPopup","handleContainerBlur","useCallback","event","_popupRef$current","nextFocusedElement","relatedTarget","currentContainer","currentTarget","contains","current","handleKeyDown","targetElement","target","key","_listRef$current","preventDefault","children","newIndex","prevElement","tabIndex","member","newElement","focus","stopPropagation","window","requestAnimationFrame","_inputElementRef$curr","handleMemberClick","handleMemberHover","useEffect","isActiveMemberShown","some","items","map","createElement","isActive","onClick","onHover","activeElement","document","addEventListener","removeEventListener","closePopupViaDrag","handleOverlayClick","updateDragByClientY","clientY","closingDirectionMultiplier","MentionFinderPopupAlignment","Bottom","rawDelta","normalizedDelta","positiveDelta","Math","max","limitedDelta","min","handleDragPointerDown","pointerType","button","pointerId","setPointerCapture","handleDragPointerMove","hasClosed","releasePointerCapture","resetDragState","shouldClose","handleDragPointerUp","handleDragPointerCancel","handleDragTouchStart","touches","handleDragTouchMove","changedTouches","handleDragTouchEnd","handleDragTouchCancel","dragHandle","StyledMentionFinderDragHandle","$alignment","StyledMentionFinderDragHandleInner","$dragOffset","$dragProgress","$isDragging","onPointerDown","onPointerMove","onPointerUp","onPointerCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel","_popupRef$current2","container","closest","body","overlayPortal","createPortal","AnimatePresence","initial","StyledMentionFinderOverlay","animate","opacity","exit","Fragment","StyledMentionFinder","className","onBlur","StyledMotionMentionFinderPopup","ref","height","y","$popupAlignment","transition","duration","Top","StyledMentionFinderItemList","displayName","_default","exports"],"sources":["../../../../src/components/mention-finder/MentionFinder.tsx"],"sourcesContent":["import { AnimatePresence } from 'motion/react';\nimport React, {\n FC,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n PointerEvent,\n TouchList,\n TouchEvent,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { MentionFinderPopupAlignment } from '../../constants/mentionFinder';\nimport MentionFinderItem from './mention-finder-item/MentionFinderItem';\nimport {\n StyledMentionFinder,\n StyledMentionFinderDragHandle,\n StyledMentionFinderDragHandleInner,\n StyledMentionFinderItemList,\n StyledMentionFinderOverlay,\n StyledMotionMentionFinderPopup,\n} from './MentionFinder.styles';\n\nexport type MentionMember = {\n id: string;\n info?: string;\n imageUrl: string;\n name: string;\n shouldShowRoundImage?: boolean;\n};\n\nexport type MentionFinderProps = {\n /**\n * The text from the input field\n */\n inputValue: string;\n /**\n * Members that can be selected\n */\n members: MentionMember[];\n /**\n * Function to be executed when a member is selected\n */\n onSelect: ({ fullMatch, member }: { fullMatch: string; member: MentionMember }) => void;\n /**\n * Alignment of the popup\n */\n popupAlignment: MentionFinderPopupAlignment;\n /**\n * Enables the optional drag handle inside the popup\n */\n enableDragHandle?: boolean;\n /**\n * Threshold in pixels to drag to close the popup\n */\n dragCloseThresholdInPx?: number;\n /**\n * Selector for the container to render the overlay into (defaults to closest dialog, thread, page provider or tapp)\n */\n overlayContainerSelector?: string;\n};\n\nconst DRAG_CLOSE_THRESHOLD_IN_PX = 60;\n\nconst isTextInputElement = (\n element: HTMLElement | null,\n): element is HTMLInputElement | HTMLTextAreaElement => {\n if (!element) {\n return false;\n }\n\n const tagName = element.tagName.toLowerCase();\n\n return (\n (tagName === 'input' && (element as HTMLInputElement).type !== 'button') ||\n tagName === 'textarea' ||\n element.isContentEditable\n );\n};\n\nconst findTouchByIdentifier = (touchList: TouchList, identifier: number | null) => {\n if (identifier === null) {\n return null;\n }\n\n for (let i = 0; i < touchList.length; i += 1) {\n const touch = touchList.item(i);\n if (touch && touch.identifier === identifier) {\n return touch;\n }\n }\n\n return null;\n};\n\nconst MentionFinder: FC<MentionFinderProps> = ({\n inputValue,\n members,\n onSelect,\n popupAlignment,\n enableDragHandle = false,\n dragCloseThresholdInPx = DRAG_CLOSE_THRESHOLD_IN_PX,\n overlayContainerSelector,\n}) => {\n const [activeMember, setActiveMember] = useState(members[0]);\n const [focusedIndex, setFocusedIndex] = useState(0);\n const [shouldShowPopup, setShouldShowPopup] = useState(true);\n\n const popupRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const inputElementRef = useRef<HTMLElement | null>(null);\n const dragStartYRef = useRef<number | null>(null);\n const hasTriggeredDragCloseRef = useRef(false);\n const activePointerIdRef = useRef<number | null>(null);\n const activeTouchIdRef = useRef<number | null>(null);\n\n const [isDraggingHandle, setIsDraggingHandle] = useState(false);\n const [dragOffset, setDragOffset] = useState(0);\n const [dragProgress, setDragProgress] = useState(0);\n const [overlayContainer, setOverlayContainer] = useState<Element | null>(null);\n\n const [fullMatch, searchString] = useMemo(() => {\n // eslint-disable-next-line no-irregular-whitespace\n const regExpMatchArray = inputValue.match(/@(?!\\s)([^\\s​]*)/);\n\n return [regExpMatchArray?.[0], regExpMatchArray?.[1]?.toLowerCase() ?? ''];\n }, [inputValue]);\n\n const filteredMembers = useMemo(\n () =>\n searchString !== ''\n ? members.filter(\n ({ id, info, name }) =>\n id.toLowerCase().includes(searchString) ||\n info?.replace('chayns', '').toLowerCase().includes(searchString) ||\n name.toLowerCase().includes(searchString),\n )\n : members,\n [members, searchString],\n );\n\n const shouldRenderPopup = shouldShowPopup && !!fullMatch && filteredMembers.length > 0;\n\n const handleContainerBlur = useCallback((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 !popupRef.current?.contains(nextFocusedElement))\n ) {\n setShouldShowPopup(false);\n }\n }, []);\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n const targetElement = event.target as HTMLElement | null;\n\n if (isTextInputElement(targetElement)) {\n inputElementRef.current = targetElement;\n }\n\n if ((event.key === 'ArrowUp' || event.key === 'ArrowDown') && shouldRenderPopup) {\n event.preventDefault();\n\n const children = listRef.current?.children;\n\n if (children && children.length > 0) {\n const newIndex =\n focusedIndex !== null\n ? (focusedIndex +\n (event.key === 'ArrowUp' ? -1 : 1) +\n children.length) %\n children.length\n : 0;\n\n if (focusedIndex !== null) {\n const prevElement = children[focusedIndex] as HTMLDivElement;\n prevElement.tabIndex = -1;\n }\n\n setFocusedIndex(newIndex);\n\n const member = filteredMembers[newIndex];\n\n setActiveMember(member);\n\n const newElement = children[newIndex] as HTMLDivElement;\n newElement.tabIndex = 0;\n newElement.focus();\n }\n } else if (event.key === 'Enter' && shouldRenderPopup) {\n event.preventDefault();\n event.stopPropagation();\n\n if (fullMatch && activeMember) {\n onSelect({ fullMatch, member: activeMember });\n }\n } else if (event.key === 'Escape' && shouldRenderPopup) {\n event.preventDefault();\n event.stopPropagation();\n setShouldShowPopup(false);\n\n window.requestAnimationFrame(() => {\n inputElementRef.current?.focus();\n });\n }\n },\n [activeMember, filteredMembers, focusedIndex, fullMatch, onSelect, shouldRenderPopup],\n );\n\n const handleMemberClick = useCallback(\n (member: MentionMember) => {\n if (fullMatch) {\n onSelect({ fullMatch, member });\n }\n },\n [fullMatch, onSelect],\n );\n\n const handleMemberHover = useCallback((member: MentionMember) => {\n setActiveMember(member);\n }, []);\n\n useEffect(() => {\n if (filteredMembers.length > 0) {\n const isActiveMemberShown = filteredMembers.some(({ id }) => id === activeMember?.id);\n\n if (!isActiveMemberShown) {\n setActiveMember(filteredMembers[0]);\n }\n }\n }, [activeMember?.id, filteredMembers]);\n\n const items = useMemo(\n () =>\n filteredMembers.map((member) => (\n <MentionFinderItem\n isActive={member.id === activeMember?.id}\n key={member.id}\n member={member}\n onClick={handleMemberClick}\n onHover={handleMemberHover}\n />\n )),\n [activeMember, filteredMembers, handleMemberClick, handleMemberHover],\n );\n\n useEffect(() => {\n setDragOffset(0);\n setDragProgress(0);\n hasTriggeredDragCloseRef.current = false;\n setShouldShowPopup(true);\n }, [inputValue]);\n\n useEffect(() => {\n if (!shouldRenderPopup) {\n return;\n }\n\n const activeElement = document.activeElement as HTMLElement | null;\n\n if (isTextInputElement(activeElement)) {\n inputElementRef.current = activeElement;\n }\n }, [shouldRenderPopup]);\n\n useEffect(() => {\n if (shouldShowPopup) {\n window.addEventListener('keydown', handleKeyDown, true);\n }\n\n return () => {\n window.removeEventListener('keydown', handleKeyDown, true);\n };\n }, [handleKeyDown, shouldShowPopup]);\n\n const closePopupViaDrag = useCallback(() => {\n if (hasTriggeredDragCloseRef.current) {\n return;\n }\n hasTriggeredDragCloseRef.current = true;\n setDragOffset(0);\n setDragProgress(0);\n setShouldShowPopup(false);\n }, []);\n\n const handleOverlayClick = useCallback(() => {\n closePopupViaDrag();\n }, [closePopupViaDrag]);\n\n const updateDragByClientY = useCallback(\n (clientY: number) => {\n if (dragStartYRef.current === null) {\n return false;\n }\n\n const closingDirectionMultiplier =\n popupAlignment === MentionFinderPopupAlignment.Bottom ? -1 : 1;\n const rawDelta = clientY - dragStartYRef.current;\n const normalizedDelta = rawDelta * closingDirectionMultiplier;\n const positiveDelta = Math.max(0, normalizedDelta);\n const limitedDelta = Math.min(positiveDelta, dragCloseThresholdInPx);\n\n setDragOffset(limitedDelta * closingDirectionMultiplier);\n setDragProgress(Math.min(positiveDelta / dragCloseThresholdInPx, 1));\n\n if (positiveDelta >= dragCloseThresholdInPx) {\n dragStartYRef.current = null;\n setIsDraggingHandle(false);\n closePopupViaDrag();\n return true;\n }\n\n return false;\n },\n [closePopupViaDrag, dragCloseThresholdInPx, popupAlignment],\n );\n\n const handleDragPointerDown = useCallback((event: PointerEvent<HTMLDivElement>) => {\n if (event.pointerType === 'touch') {\n return;\n }\n if (event.pointerType === 'mouse' && event.button !== 0) {\n return;\n }\n if (dragStartYRef.current !== null) {\n return;\n }\n activePointerIdRef.current = event.pointerId;\n dragStartYRef.current = event.clientY;\n hasTriggeredDragCloseRef.current = false;\n setDragOffset(0);\n setDragProgress(0);\n setIsDraggingHandle(true);\n event.currentTarget.setPointerCapture(event.pointerId);\n event.stopPropagation();\n }, []);\n\n const handleDragPointerMove = useCallback(\n (event: PointerEvent<HTMLDivElement>) => {\n if (event.pointerType === 'touch' || activePointerIdRef.current !== event.pointerId) {\n return;\n }\n if (dragStartYRef.current === null) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n const hasClosed = updateDragByClientY(event.clientY);\n\n if (hasClosed) {\n event.currentTarget.releasePointerCapture(event.pointerId);\n activePointerIdRef.current = null;\n }\n },\n [updateDragByClientY],\n );\n\n const resetDragState = useCallback(\n (shouldClose = false) => {\n dragStartYRef.current = null;\n setIsDraggingHandle(false);\n if (shouldClose) {\n closePopupViaDrag();\n } else {\n setDragOffset(0);\n setDragProgress(0);\n }\n },\n [closePopupViaDrag],\n );\n\n const handleDragPointerUp = useCallback(\n (event: PointerEvent<HTMLDivElement>) => {\n if (event.pointerType === 'touch' || activePointerIdRef.current !== event.pointerId) {\n return;\n }\n event.stopPropagation();\n const shouldClose = dragProgress >= 1;\n resetDragState(shouldClose);\n event.currentTarget.releasePointerCapture(event.pointerId);\n activePointerIdRef.current = null;\n },\n [dragProgress, resetDragState],\n );\n\n const handleDragPointerCancel = useCallback(\n (event: PointerEvent<HTMLDivElement>) => {\n if (event.pointerType === 'touch' || activePointerIdRef.current !== event.pointerId) {\n return;\n }\n event.stopPropagation();\n resetDragState();\n event.currentTarget.releasePointerCapture(event.pointerId);\n activePointerIdRef.current = null;\n },\n [resetDragState],\n );\n\n const handleDragTouchStart = useCallback((event: TouchEvent<HTMLDivElement>) => {\n if (event.touches.length === 0 || dragStartYRef.current !== null) {\n return;\n }\n\n const touch = event.touches[0];\n\n if (!touch) return;\n\n activeTouchIdRef.current = touch.identifier;\n dragStartYRef.current = touch.clientY;\n hasTriggeredDragCloseRef.current = false;\n setDragOffset(0);\n setDragProgress(0);\n setIsDraggingHandle(true);\n event.preventDefault();\n event.stopPropagation();\n }, []);\n\n const handleDragTouchMove = useCallback(\n (event: TouchEvent<HTMLDivElement>) => {\n if (dragStartYRef.current === null || activeTouchIdRef.current === null) {\n return;\n }\n const touch =\n findTouchByIdentifier(event.changedTouches, activeTouchIdRef.current) ??\n findTouchByIdentifier(event.touches, activeTouchIdRef.current);\n\n if (!touch) return;\n\n event.preventDefault();\n event.stopPropagation();\n const hasClosed = updateDragByClientY(touch.clientY);\n if (hasClosed) {\n activeTouchIdRef.current = null;\n }\n },\n [updateDragByClientY],\n );\n\n const handleDragTouchEnd = useCallback(\n (event: TouchEvent<HTMLDivElement>) => {\n if (activeTouchIdRef.current === null) return;\n\n const touch = findTouchByIdentifier(event.changedTouches, activeTouchIdRef.current);\n\n if (!touch) return;\n\n event.preventDefault();\n event.stopPropagation();\n activeTouchIdRef.current = null;\n const shouldClose = dragProgress >= 1;\n resetDragState(shouldClose);\n },\n [dragProgress, resetDragState],\n );\n\n const handleDragTouchCancel = useCallback(\n (event: TouchEvent<HTMLDivElement>) => {\n if (activeTouchIdRef.current === null) return;\n\n const touch = findTouchByIdentifier(event.changedTouches, activeTouchIdRef.current);\n\n if (!touch) return;\n\n event.preventDefault();\n event.stopPropagation();\n activeTouchIdRef.current = null;\n resetDragState();\n },\n [resetDragState],\n );\n\n const dragHandle = useMemo(() => {\n if (!enableDragHandle) {\n return null;\n }\n\n return (\n <StyledMentionFinderDragHandle $alignment={popupAlignment}>\n <StyledMentionFinderDragHandleInner\n $alignment={popupAlignment}\n $dragOffset={dragOffset}\n $dragProgress={dragProgress}\n $isDragging={isDraggingHandle}\n onPointerDown={handleDragPointerDown}\n onPointerMove={handleDragPointerMove}\n onPointerUp={handleDragPointerUp}\n onPointerCancel={handleDragPointerCancel}\n onTouchStart={handleDragTouchStart}\n onTouchMove={handleDragTouchMove}\n onTouchEnd={handleDragTouchEnd}\n onTouchCancel={handleDragTouchCancel}\n />\n </StyledMentionFinderDragHandle>\n );\n }, [\n enableDragHandle,\n popupAlignment,\n dragOffset,\n dragProgress,\n isDraggingHandle,\n handleDragPointerDown,\n handleDragPointerMove,\n handleDragPointerUp,\n handleDragPointerCancel,\n handleDragTouchStart,\n handleDragTouchMove,\n handleDragTouchEnd,\n handleDragTouchCancel,\n ]);\n\n useEffect(() => {\n if (!enableDragHandle || !shouldRenderPopup) {\n setOverlayContainer(null);\n return;\n }\n\n const container = popupRef.current?.closest(\n overlayContainerSelector ?? '.dialog-inner, .chayns-threads, .page-provider, .tapp',\n );\n\n if (container) {\n setOverlayContainer(container);\n return;\n }\n\n if (typeof document !== 'undefined') {\n setOverlayContainer(document.body);\n }\n }, [enableDragHandle, overlayContainerSelector, shouldRenderPopup]);\n\n const overlayPortal =\n overlayContainer && enableDragHandle\n ? createPortal(\n <AnimatePresence initial={false}>\n {shouldRenderPopup && (\n <StyledMentionFinderOverlay\n key=\"mention-finder-overlay\"\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n onClick={handleOverlayClick}\n />\n )}\n </AnimatePresence>,\n overlayContainer,\n )\n : null;\n\n return (\n <>\n {overlayPortal}\n <StyledMentionFinder\n className=\"beta-chayns-mention-finder\"\n onBlur={handleContainerBlur}\n >\n <AnimatePresence initial={false}>\n {shouldRenderPopup && (\n <StyledMotionMentionFinderPopup\n ref={popupRef}\n animate={{\n height: 'auto',\n opacity: 1,\n y: dragOffset,\n }}\n className=\"prevent-lose-focus\"\n exit={{ height: 0, opacity: 0 }}\n initial={{ height: 0, opacity: 0 }}\n $popupAlignment={popupAlignment}\n $isDragging={enableDragHandle}\n transition={{ duration: 0.15 }}\n tabIndex={0}\n >\n {enableDragHandle &&\n popupAlignment === MentionFinderPopupAlignment.Top &&\n dragHandle}\n <StyledMentionFinderItemList ref={listRef}>\n {items}\n </StyledMentionFinderItemList>\n {enableDragHandle &&\n popupAlignment === MentionFinderPopupAlignment.Bottom &&\n dragHandle}\n </StyledMotionMentionFinderPopup>\n )}\n </AnimatePresence>\n </StyledMentionFinder>\n </>\n );\n};\n\nMentionFinder.displayName = 'MentionFinder';\n\nexport default MentionFinder;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"MentionFinder.js","names":["_react","require","_react2","_interopRequireWildcard","_reactDom","_mentionFinder","_MentionFinderItem","_interopRequireDefault","_MentionFinder","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DRAG_CLOSE_THRESHOLD_IN_PX","findTouchByIdentifier","touchList","identifier","length","touch","item","MentionFinder","inputValue","members","onSelect","popupAlignment","enableDragHandle","dragCloseThresholdInPx","overlayContainerSelector","activeMember","setActiveMember","useState","focusedIndex","setFocusedIndex","shouldShowPopup","setShouldShowPopup","popupRef","useRef","listRef","dragStartYRef","hasTriggeredDragCloseRef","activePointerIdRef","activeTouchIdRef","isDraggingHandle","setIsDraggingHandle","dragOffset","setDragOffset","dragProgress","setDragProgress","overlayContainer","setOverlayContainer","fullMatch","searchString","useMemo","_regExpMatchArray$","regExpMatchArray","match","toLowerCase","filteredMembers","filter","id","info","name","includes","replace","handleKeyDown","useCallback","event","key","shouldRenderPopup","_listRef$current","preventDefault","children","current","newIndex","prevElement","tabIndex","member","newElement","focus","stopPropagation","handleMemberClick","handleMemberHover","useEffect","isActiveMemberShown","some","items","map","createElement","isActive","onClick","onHover","window","addEventListener","removeEventListener","closePopupViaDrag","handleOverlayClick","updateDragByClientY","clientY","closingDirectionMultiplier","MentionFinderPopupAlignment","Bottom","rawDelta","normalizedDelta","positiveDelta","Math","max","limitedDelta","min","handleDragPointerDown","pointerType","button","pointerId","currentTarget","setPointerCapture","handleDragPointerMove","hasClosed","releasePointerCapture","resetDragState","shouldClose","handleDragPointerUp","handleDragPointerCancel","handleDragTouchStart","touches","handleDragTouchMove","changedTouches","handleDragTouchEnd","handleDragTouchCancel","dragHandle","StyledMentionFinderDragHandle","$alignment","StyledMentionFinderDragHandleInner","$dragOffset","$dragProgress","$isDragging","onPointerDown","onPointerMove","onPointerUp","onPointerCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel","_popupRef$current","container","closest","document","body","overlayPortal","createPortal","AnimatePresence","initial","StyledMentionFinderOverlay","animate","opacity","exit","Fragment","StyledMentionFinder","className","StyledMotionMentionFinderPopup","ref","height","y","$popupAlignment","transition","duration","Top","StyledMentionFinderItemList","displayName","_default","exports"],"sources":["../../../../src/components/mention-finder/MentionFinder.tsx"],"sourcesContent":["import { AnimatePresence } from 'motion/react';\nimport React, {\n FC,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n PointerEvent,\n TouchList,\n TouchEvent,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { MentionFinderPopupAlignment } from '../../constants/mentionFinder';\nimport MentionFinderItem from './mention-finder-item/MentionFinderItem';\nimport {\n StyledMentionFinder,\n StyledMentionFinderDragHandle,\n StyledMentionFinderDragHandleInner,\n StyledMentionFinderItemList,\n StyledMentionFinderOverlay,\n StyledMotionMentionFinderPopup,\n} from './MentionFinder.styles';\n\nexport type MentionMember = {\n id: string;\n info?: string;\n imageUrl: string;\n name: string;\n shouldShowRoundImage?: boolean;\n};\n\nexport type MentionFinderProps = {\n /**\n * The text from the input field\n */\n inputValue: string;\n /**\n * Members that can be selected\n */\n members: MentionMember[];\n /**\n * Function to be executed when a member is selected\n */\n onSelect: ({ fullMatch, member }: { fullMatch: string; member: MentionMember }) => void;\n /**\n * Alignment of the popup\n */\n popupAlignment: MentionFinderPopupAlignment;\n /**\n * Enables the optional drag handle inside the popup\n */\n enableDragHandle?: boolean;\n /**\n * Threshold in pixels to drag to close the popup\n */\n dragCloseThresholdInPx?: number;\n /**\n * Selector for the container to render the overlay into (defaults to closest dialog, thread, page provider or tapp)\n */\n overlayContainerSelector?: string;\n};\n\nconst DRAG_CLOSE_THRESHOLD_IN_PX = 60;\n\nconst findTouchByIdentifier = (touchList: TouchList, identifier: number | null) => {\n if (identifier === null) {\n return null;\n }\n\n for (let i = 0; i < touchList.length; i += 1) {\n const touch = touchList.item(i);\n if (touch && touch.identifier === identifier) {\n return touch;\n }\n }\n\n return null;\n};\n\nconst MentionFinder: FC<MentionFinderProps> = ({\n inputValue,\n members,\n onSelect,\n popupAlignment,\n enableDragHandle = false,\n dragCloseThresholdInPx = DRAG_CLOSE_THRESHOLD_IN_PX,\n overlayContainerSelector,\n}) => {\n const [activeMember, setActiveMember] = useState(members[0]);\n const [focusedIndex, setFocusedIndex] = useState(0);\n const [shouldShowPopup, setShouldShowPopup] = useState(true);\n\n const popupRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const dragStartYRef = useRef<number | null>(null);\n const hasTriggeredDragCloseRef = useRef(false);\n const activePointerIdRef = useRef<number | null>(null);\n const activeTouchIdRef = useRef<number | null>(null);\n\n const [isDraggingHandle, setIsDraggingHandle] = useState(false);\n const [dragOffset, setDragOffset] = useState(0);\n const [dragProgress, setDragProgress] = useState(0);\n const [overlayContainer, setOverlayContainer] = useState<Element | null>(null);\n\n const [fullMatch, searchString] = useMemo(() => {\n // eslint-disable-next-line no-irregular-whitespace\n const regExpMatchArray = inputValue.match(/@(?!\\s)([^\\s​]*)/);\n\n return [regExpMatchArray?.[0], regExpMatchArray?.[1]?.toLowerCase() ?? ''];\n }, [inputValue]);\n\n const filteredMembers = useMemo(\n () =>\n searchString !== ''\n ? members.filter(\n ({ id, info, name }) =>\n id.toLowerCase().includes(searchString) ||\n info?.replace('chayns', '').toLowerCase().includes(searchString) ||\n name.toLowerCase().includes(searchString),\n )\n : members,\n [members, searchString],\n );\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if ((event.key === 'ArrowUp' || event.key === 'ArrowDown') && shouldRenderPopup) {\n event.preventDefault();\n\n const children = listRef.current?.children;\n\n if (children && children.length > 0) {\n const newIndex =\n focusedIndex !== null\n ? (focusedIndex +\n (event.key === 'ArrowUp' ? -1 : 1) +\n children.length) %\n children.length\n : 0;\n\n if (focusedIndex !== null) {\n const prevElement = children[focusedIndex] as HTMLDivElement;\n prevElement.tabIndex = -1;\n }\n\n setFocusedIndex(newIndex);\n\n const member = filteredMembers[newIndex];\n\n setActiveMember(member);\n\n const newElement = children[newIndex] as HTMLDivElement;\n newElement.tabIndex = 0;\n newElement.focus();\n }\n } else if (event.key === 'Enter' && shouldRenderPopup) {\n event.preventDefault();\n event.stopPropagation();\n\n if (fullMatch && activeMember) {\n onSelect({ fullMatch, member: activeMember });\n }\n }\n },\n [activeMember, filteredMembers, focusedIndex, fullMatch, onSelect],\n );\n\n const handleMemberClick = useCallback(\n (member: MentionMember) => {\n if (fullMatch) {\n onSelect({ fullMatch, member });\n }\n },\n [fullMatch, onSelect],\n );\n\n const handleMemberHover = useCallback((member: MentionMember) => {\n setActiveMember(member);\n }, []);\n\n useEffect(() => {\n if (filteredMembers.length > 0) {\n const isActiveMemberShown = filteredMembers.some(({ id }) => id === activeMember?.id);\n\n if (!isActiveMemberShown) {\n setActiveMember(filteredMembers[0]);\n }\n }\n }, [activeMember?.id, filteredMembers]);\n\n const items = useMemo(\n () =>\n filteredMembers.map((member) => (\n <MentionFinderItem\n isActive={member.id === activeMember?.id}\n key={member.id}\n member={member}\n onClick={handleMemberClick}\n onHover={handleMemberHover}\n />\n )),\n [activeMember, filteredMembers, handleMemberClick, handleMemberHover],\n );\n\n useEffect(() => {\n setDragOffset(0);\n setDragProgress(0);\n hasTriggeredDragCloseRef.current = false;\n setShouldShowPopup(true);\n }, [inputValue]);\n\n useEffect(() => {\n if (shouldShowPopup) {\n window.addEventListener('keydown', handleKeyDown, true);\n }\n\n return () => {\n window.removeEventListener('keydown', handleKeyDown, true);\n };\n }, [handleKeyDown, shouldShowPopup]);\n\n const closePopupViaDrag = useCallback(() => {\n if (hasTriggeredDragCloseRef.current) {\n return;\n }\n hasTriggeredDragCloseRef.current = true;\n setDragOffset(0);\n setDragProgress(0);\n setShouldShowPopup(false);\n }, []);\n\n const handleOverlayClick = useCallback(() => {\n closePopupViaDrag();\n }, [closePopupViaDrag]);\n\n const updateDragByClientY = useCallback(\n (clientY: number) => {\n if (dragStartYRef.current === null) {\n return false;\n }\n\n const closingDirectionMultiplier =\n popupAlignment === MentionFinderPopupAlignment.Bottom ? -1 : 1;\n const rawDelta = clientY - dragStartYRef.current;\n const normalizedDelta = rawDelta * closingDirectionMultiplier;\n const positiveDelta = Math.max(0, normalizedDelta);\n const limitedDelta = Math.min(positiveDelta, dragCloseThresholdInPx);\n\n setDragOffset(limitedDelta * closingDirectionMultiplier);\n setDragProgress(Math.min(positiveDelta / dragCloseThresholdInPx, 1));\n\n if (positiveDelta >= dragCloseThresholdInPx) {\n dragStartYRef.current = null;\n setIsDraggingHandle(false);\n closePopupViaDrag();\n return true;\n }\n\n return false;\n },\n [closePopupViaDrag, dragCloseThresholdInPx, popupAlignment],\n );\n\n const handleDragPointerDown = useCallback((event: PointerEvent<HTMLDivElement>) => {\n if (event.pointerType === 'touch') {\n return;\n }\n if (event.pointerType === 'mouse' && event.button !== 0) {\n return;\n }\n if (dragStartYRef.current !== null) {\n return;\n }\n activePointerIdRef.current = event.pointerId;\n dragStartYRef.current = event.clientY;\n hasTriggeredDragCloseRef.current = false;\n setDragOffset(0);\n setDragProgress(0);\n setIsDraggingHandle(true);\n event.currentTarget.setPointerCapture(event.pointerId);\n event.stopPropagation();\n }, []);\n\n const handleDragPointerMove = useCallback(\n (event: PointerEvent<HTMLDivElement>) => {\n if (event.pointerType === 'touch' || activePointerIdRef.current !== event.pointerId) {\n return;\n }\n if (dragStartYRef.current === null) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n const hasClosed = updateDragByClientY(event.clientY);\n\n if (hasClosed) {\n event.currentTarget.releasePointerCapture(event.pointerId);\n activePointerIdRef.current = null;\n }\n },\n [updateDragByClientY],\n );\n\n const resetDragState = useCallback(\n (shouldClose = false) => {\n dragStartYRef.current = null;\n setIsDraggingHandle(false);\n if (shouldClose) {\n closePopupViaDrag();\n } else {\n setDragOffset(0);\n setDragProgress(0);\n }\n },\n [closePopupViaDrag],\n );\n\n const handleDragPointerUp = useCallback(\n (event: PointerEvent<HTMLDivElement>) => {\n if (event.pointerType === 'touch' || activePointerIdRef.current !== event.pointerId) {\n return;\n }\n event.stopPropagation();\n const shouldClose = dragProgress >= 1;\n resetDragState(shouldClose);\n event.currentTarget.releasePointerCapture(event.pointerId);\n activePointerIdRef.current = null;\n },\n [dragProgress, resetDragState],\n );\n\n const handleDragPointerCancel = useCallback(\n (event: PointerEvent<HTMLDivElement>) => {\n if (event.pointerType === 'touch' || activePointerIdRef.current !== event.pointerId) {\n return;\n }\n event.stopPropagation();\n resetDragState();\n event.currentTarget.releasePointerCapture(event.pointerId);\n activePointerIdRef.current = null;\n },\n [resetDragState],\n );\n\n const handleDragTouchStart = useCallback((event: TouchEvent<HTMLDivElement>) => {\n if (event.touches.length === 0 || dragStartYRef.current !== null) {\n return;\n }\n\n const touch = event.touches[0];\n\n if (!touch) return;\n\n activeTouchIdRef.current = touch.identifier;\n dragStartYRef.current = touch.clientY;\n hasTriggeredDragCloseRef.current = false;\n setDragOffset(0);\n setDragProgress(0);\n setIsDraggingHandle(true);\n event.preventDefault();\n event.stopPropagation();\n }, []);\n\n const handleDragTouchMove = useCallback(\n (event: TouchEvent<HTMLDivElement>) => {\n if (dragStartYRef.current === null || activeTouchIdRef.current === null) {\n return;\n }\n const touch =\n findTouchByIdentifier(event.changedTouches, activeTouchIdRef.current) ??\n findTouchByIdentifier(event.touches, activeTouchIdRef.current);\n\n if (!touch) return;\n\n event.preventDefault();\n event.stopPropagation();\n const hasClosed = updateDragByClientY(touch.clientY);\n if (hasClosed) {\n activeTouchIdRef.current = null;\n }\n },\n [updateDragByClientY],\n );\n\n const handleDragTouchEnd = useCallback(\n (event: TouchEvent<HTMLDivElement>) => {\n if (activeTouchIdRef.current === null) return;\n\n const touch = findTouchByIdentifier(event.changedTouches, activeTouchIdRef.current);\n\n if (!touch) return;\n\n event.preventDefault();\n event.stopPropagation();\n activeTouchIdRef.current = null;\n const shouldClose = dragProgress >= 1;\n resetDragState(shouldClose);\n },\n [dragProgress, resetDragState],\n );\n\n const handleDragTouchCancel = useCallback(\n (event: TouchEvent<HTMLDivElement>) => {\n if (activeTouchIdRef.current === null) return;\n\n const touch = findTouchByIdentifier(event.changedTouches, activeTouchIdRef.current);\n\n if (!touch) return;\n\n event.preventDefault();\n event.stopPropagation();\n activeTouchIdRef.current = null;\n resetDragState();\n },\n [resetDragState],\n );\n\n const dragHandle = useMemo(() => {\n if (!enableDragHandle) {\n return null;\n }\n\n return (\n <StyledMentionFinderDragHandle $alignment={popupAlignment}>\n <StyledMentionFinderDragHandleInner\n $alignment={popupAlignment}\n $dragOffset={dragOffset}\n $dragProgress={dragProgress}\n $isDragging={isDraggingHandle}\n onPointerDown={handleDragPointerDown}\n onPointerMove={handleDragPointerMove}\n onPointerUp={handleDragPointerUp}\n onPointerCancel={handleDragPointerCancel}\n onTouchStart={handleDragTouchStart}\n onTouchMove={handleDragTouchMove}\n onTouchEnd={handleDragTouchEnd}\n onTouchCancel={handleDragTouchCancel}\n />\n </StyledMentionFinderDragHandle>\n );\n }, [\n enableDragHandle,\n popupAlignment,\n dragOffset,\n dragProgress,\n isDraggingHandle,\n handleDragPointerDown,\n handleDragPointerMove,\n handleDragPointerUp,\n handleDragPointerCancel,\n handleDragTouchStart,\n handleDragTouchMove,\n handleDragTouchEnd,\n handleDragTouchCancel,\n ]);\n\n const shouldRenderPopup = shouldShowPopup && fullMatch && items.length > 0;\n\n useEffect(() => {\n if (!enableDragHandle || !shouldRenderPopup) {\n setOverlayContainer(null);\n return;\n }\n\n const container = popupRef.current?.closest(\n overlayContainerSelector ?? '.dialog-inner, .chayns-threads, .page-provider, .tapp',\n );\n\n if (container) {\n setOverlayContainer(container);\n return;\n }\n\n if (typeof document !== 'undefined') {\n setOverlayContainer(document.body);\n }\n }, [enableDragHandle, overlayContainerSelector, shouldRenderPopup]);\n\n const overlayPortal =\n overlayContainer && enableDragHandle\n ? createPortal(\n <AnimatePresence initial={false}>\n {shouldRenderPopup && (\n <StyledMentionFinderOverlay\n key=\"mention-finder-overlay\"\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n onClick={handleOverlayClick}\n />\n )}\n </AnimatePresence>,\n overlayContainer,\n )\n : null;\n\n return (\n <>\n {overlayPortal}\n <StyledMentionFinder className=\"beta-chayns-mention-finder\">\n <AnimatePresence initial={false}>\n {shouldRenderPopup && (\n <StyledMotionMentionFinderPopup\n ref={popupRef}\n animate={{\n height: 'auto',\n opacity: 1,\n y: dragOffset,\n }}\n className=\"prevent-lose-focus\"\n exit={{ height: 0, opacity: 0 }}\n initial={{ height: 0, opacity: 0 }}\n $popupAlignment={popupAlignment}\n $isDragging={enableDragHandle}\n transition={{ duration: 0.15 }}\n tabIndex={0}\n >\n {enableDragHandle &&\n popupAlignment === MentionFinderPopupAlignment.Top &&\n dragHandle}\n <StyledMentionFinderItemList ref={listRef}>\n {items}\n </StyledMentionFinderItemList>\n {enableDragHandle &&\n popupAlignment === MentionFinderPopupAlignment.Bottom &&\n dragHandle}\n </StyledMotionMentionFinderPopup>\n )}\n </AnimatePresence>\n </StyledMentionFinder>\n </>\n );\n};\n\nMentionFinder.displayName = 'MentionFinder';\n\nexport default MentionFinder;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"MentionFinderItem.styles.js","names":["_styledComponents","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","StyledMentionFinderItem","exports","styled","div","theme","$isActive","css","StyledMentionFinderItemImage","img","$shouldShowRoundImage","StyledMentionFinderItemContent","text","StyledMentionFinderItemContentName","StyledMentionFinderItemContentInfo"],"sources":["../../../../../src/components/mention-finder/mention-finder-item/MentionFinderItem.styles.ts"],"sourcesContent":["import styled, { css } from 'styled-components';\nimport type { WithTheme } from '../../color-scheme-provider/ColorSchemeProvider';\n\ntype StyledMentionFinderItemProps = WithTheme<{\n $isActive: boolean;\n}>;\n\nexport const StyledMentionFinderItem = styled.div<StyledMentionFinderItemProps>`\n align-items: center;\n cursor: pointer;\n display: flex;\n padding: 10px 8px;\n\n &:not(:last-child) {\n border-bottom: 1px solid\n rgba(${({ theme }: StyledMentionFinderItemProps) => theme['text-rgb']}, 0.15);\n }\n\n ${({ $isActive, theme }) =>\n $isActive &&\n css`\n background-color: ${theme['102']} !important;\n `}\n`;\n\ntype StyledMentionFinderItemImageProps = WithTheme<{\n $shouldShowRoundImage?: boolean;\n}>;\n\nexport const StyledMentionFinderItemImage = styled.img<StyledMentionFinderItemImageProps>`\n background-color: rgba(\n ${({ theme }: StyledMentionFinderItemImageProps) => theme['text-rgb']},\n 0.1\n );\n border-radius: ${({ $shouldShowRoundImage }) => ($shouldShowRoundImage ? '50%' : 'initial')};\n box-shadow: 0 0 0 1px\n rgba(${({ theme }: StyledMentionFinderItemImageProps) => theme['009-rgb']}, 0.08) inset;\n flex: 0 0 auto;\n height: 40px;\n object-fit: cover;\n overflow: hidden;\n transition: border-radius 0.3s ease;\n width: 40px;\n`;\n\ntype StyledMentionFinderItemContentProps = WithTheme<unknown>;\n\nexport const StyledMentionFinderItemContent = styled.div`\n color: ${({ theme }: StyledMentionFinderItemContentProps) => theme.text};\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n justify-content: center;\n line-height: normal;\n margin-left: 10px;\n min-width: 0;\n`;\n\nexport const StyledMentionFinderItemContentName = styled.div``;\n\nexport const StyledMentionFinderItemContentInfo = styled.div`\n font-size: 85%;\n margin-top: 2px;\n opacity: 0.75;\n`;\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAgD,SAAAD,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAJ,uBAAA,YAAAA,CAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAOzC,MAAMkB,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,GAAGE,yBAAM,CAACC,GAAiC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,CAAC;EAAEC;AAAoC,CAAC,KAAKA,KAAK,CAAC,UAAU,CAAC;AACjF;AACA;AACA,MAAM,CAAC;EAAEC,SAAS;EAAED;AAAM,CAAC,KACnBC,SAAS,IACT,IAAAC,qBAAG;AACX,gCAAgCF,KAAK,CAAC,KAAK,CAAC;AAC5C,SAAS;AACT,CAAC;AAMM,MAAMG,4BAA4B,GAAAN,OAAA,CAAAM,4BAAA,GAAGL,yBAAM,CAACM,GAAsC;AACzF;AACA,UAAU,CAAC;EAAEJ;AAAyC,CAAC,KAAKA,KAAK,CAAC,UAAU,CAAC;AAC7E;AACA;AACA,qBAAqB,CAAC;EAAEK;AAAsB,CAAC,KAAMA,qBAAqB,GAAG,KAAK,GAAG,SAAU;AAC/F;AACA,eAAe,CAAC;EAAEL;AAAyC,CAAC,KAAKA,KAAK,CAAC,SAAS,CAAC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAIM,MAAMM,8BAA8B,GAAAT,OAAA,CAAAS,8BAAA,GAAGR,yBAAM,CAACC,GAAG;AACxD,aAAa,CAAC;EAAEC;AAA2C,CAAC,KAAKA,KAAK,CAACO,IAAI;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMC,kCAAkC,GAAAX,OAAA,CAAAW,kCAAA,GAAGV,yBAAM,CAACC,GAAG,EAAE;AAEvD,MAAMU,kCAAkC,GAAAZ,OAAA,CAAAY,kCAAA,GAAGX,yBAAM,CAACC,GAAG;AAC5D;AACA;AACA;AACA,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"MentionFinderItem.styles.js","names":["_styledComponents","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","StyledMentionFinderItem","exports","styled","div","theme","$isActive","css","StyledMentionFinderItemImage","img","$shouldShowRoundImage","StyledMentionFinderItemContent","text","StyledMentionFinderItemContentName","StyledMentionFinderItemContentInfo"],"sources":["../../../../../src/components/mention-finder/mention-finder-item/MentionFinderItem.styles.ts"],"sourcesContent":["import styled, { css } from 'styled-components';\nimport type { WithTheme } from '../../color-scheme-provider/ColorSchemeProvider';\n\ntype StyledMentionFinderItemProps = WithTheme<{ $isActive: boolean }>;\n\nexport const StyledMentionFinderItem = styled.div<StyledMentionFinderItemProps>`\n align-items: center;\n cursor: pointer;\n display: flex;\n padding: 10px 8px;\n\n &:not(:last-child) {\n border-bottom: 1px solid\n rgba(${({ theme }: StyledMentionFinderItemProps) => theme['text-rgb']}, 0.15);\n }\n\n ${({ $isActive, theme }) =>\n $isActive &&\n css`\n background-color: ${theme['102']} !important;\n `}\n`;\n\ntype StyledMentionFinderItemImageProps = WithTheme<{\n $shouldShowRoundImage?: boolean;\n}>;\n\nexport const StyledMentionFinderItemImage = styled.img<StyledMentionFinderItemImageProps>`\n background-color: rgba(\n ${({ theme }: StyledMentionFinderItemImageProps) => theme['text-rgb']},\n 0.1\n );\n border-radius: ${({ $shouldShowRoundImage }) => ($shouldShowRoundImage ? '50%' : 'initial')};\n box-shadow: 0 0 0 1px\n rgba(${({ theme }: StyledMentionFinderItemImageProps) => theme['009-rgb']}, 0.08) inset;\n flex: 0 0 auto;\n height: 40px;\n object-fit: cover;\n overflow: hidden;\n transition: border-radius 0.3s ease;\n width: 40px;\n`;\n\ntype StyledMentionFinderItemContentProps = WithTheme<unknown>;\n\nexport const StyledMentionFinderItemContent = styled.div`\n color: ${({ theme }: StyledMentionFinderItemContentProps) => theme.text};\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n justify-content: center;\n line-height: normal;\n margin-left: 10px;\n min-width: 0;\n`;\n\nexport const StyledMentionFinderItemContentName = styled.div``;\n\nexport const StyledMentionFinderItemContentInfo = styled.div`\n font-size: 85%;\n margin-top: 2px;\n opacity: 0.75;\n`;\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAgD,SAAAD,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAJ,uBAAA,YAAAA,CAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAKzC,MAAMkB,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,GAAGE,yBAAM,CAACC,GAAiC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,CAAC;EAAEC;AAAoC,CAAC,KAAKA,KAAK,CAAC,UAAU,CAAC;AACjF;AACA;AACA,MAAM,CAAC;EAAEC,SAAS;EAAED;AAAM,CAAC,KACnBC,SAAS,IACT,IAAAC,qBAAG;AACX,gCAAgCF,KAAK,CAAC,KAAK,CAAC;AAC5C,SAAS;AACT,CAAC;AAMM,MAAMG,4BAA4B,GAAAN,OAAA,CAAAM,4BAAA,GAAGL,yBAAM,CAACM,GAAsC;AACzF;AACA,UAAU,CAAC;EAAEJ;AAAyC,CAAC,KAAKA,KAAK,CAAC,UAAU,CAAC;AAC7E;AACA;AACA,qBAAqB,CAAC;EAAEK;AAAsB,CAAC,KAAMA,qBAAqB,GAAG,KAAK,GAAG,SAAU;AAC/F;AACA,eAAe,CAAC;EAAEL;AAAyC,CAAC,KAAKA,KAAK,CAAC,SAAS,CAAC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAIM,MAAMM,8BAA8B,GAAAT,OAAA,CAAAS,8BAAA,GAAGR,yBAAM,CAACC,GAAG;AACxD,aAAa,CAAC;EAAEC;AAA2C,CAAC,KAAKA,KAAK,CAACO,IAAI;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMC,kCAAkC,GAAAX,OAAA,CAAAW,kCAAA,GAAGV,yBAAM,CAACC,GAAG,EAAE;AAEvD,MAAMU,kCAAkC,GAAAZ,OAAA,CAAAY,kCAAA,GAAGX,yBAAM,CAACC,GAAG;AAC5D;AACA;AACA;AACA,CAAC","ignoreList":[]}
@@ -7,7 +7,6 @@ exports.default = void 0;
7
7
  var _clsx = _interopRequireDefault(require("clsx"));
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _element = require("../../hooks/element");
10
- var _useKeyboardFocusHighlighting = require("../../hooks/useKeyboardFocusHighlighting");
11
10
  var _environment = require("../../utils/environment");
12
11
  var _ContextMenu = _interopRequireDefault(require("../context-menu/ContextMenu"));
13
12
  var _ActionButton = _interopRequireDefault(require("./action-button/ActionButton"));
@@ -73,13 +72,11 @@ const MultiActionButton = ({
73
72
  secondaryContextMenu,
74
73
  shouldAutoCollapse = false,
75
74
  shouldUseFullWidth,
76
- shouldEnableKeyboardHighlighting,
77
75
  width
78
76
  }) => {
79
77
  const [isExtendedByClick, setIsExtendedByClick] = (0, _react.useState)(false);
80
78
  const [isSecondaryExpanded, setIsSecondaryExpanded] = (0, _react.useState)(false);
81
79
  const [isSecondaryHovered, setIsSecondaryHovered] = (0, _react.useState)(false);
82
- const [isSecondaryFocused, setIsSecondaryFocused] = (0, _react.useState)(false);
83
80
  const autoCollapseTimeoutRef = (0, _react.useRef)(null);
84
81
  const multiActionButtonRef = (0, _react.useRef)(null);
85
82
  const secondaryContextMenuRef = (0, _react.useRef)(null);
@@ -93,7 +90,6 @@ const MultiActionButton = ({
93
90
  const hasExpandableSecondaryAction = Boolean(secondaryAction) && !hasSecondaryContextMenu;
94
91
  const hasSecondaryAction = Boolean(secondaryTriggerAction);
95
92
  const shouldUseContentWidth = !width && !shouldUseFullWidth;
96
- const shouldShowKeyboardHighlighting = (0, _useKeyboardFocusHighlighting.useKeyboardFocusHighlighting)(shouldEnableKeyboardHighlighting && !isDisabled);
97
93
  const expandedMeasuredContent = (0, _react.useMemo)(() => createMeasuredMultiActionButtonContent({
98
94
  backgroundColor,
99
95
  gapColor,
@@ -144,15 +140,7 @@ const MultiActionButton = ({
144
140
  height
145
141
  });
146
142
  const shouldHidePrimaryLabelForMinimumWidth = shouldKeepPrimaryLabelVisible && typeof availableWidth === 'number' && availableWidth <= minimumPrimaryLabelVisibleWidth;
147
- const resolvedWidth = (0, _react.useMemo)(() => {
148
- if (shouldKeepFullWidth) {
149
- return '100%';
150
- }
151
- if (effectiveIsCollapsed) {
152
- return height;
153
- }
154
- return width ?? 'fit-content';
155
- }, [effectiveIsCollapsed, height, shouldKeepFullWidth, width]);
143
+ const resolvedWidth = shouldKeepFullWidth ? '100%' : effectiveIsCollapsed ? height : width ?? 'fit-content';
156
144
  const secondaryContextMenuTriggerStyle = (0, _MultiActionButton2.getSecondaryContextMenuTriggerStyle)({
157
145
  height,
158
146
  isCollapsed: isSecondaryHidden,
@@ -209,7 +197,6 @@ const MultiActionButton = ({
209
197
  setIsSecondaryExpanded(false);
210
198
  setIsExtendedByClick(false);
211
199
  setIsSecondaryHovered(false);
212
- setIsSecondaryFocused(false);
213
200
  }
214
201
  }, [clearAutoCollapseTimeout, effectiveIsCollapsed, shouldPreventSecondaryExpansion]);
215
202
 
@@ -276,26 +263,11 @@ const MultiActionButton = ({
276
263
  setIsSecondaryExpanded(false);
277
264
  }
278
265
  }, [effectiveIsCollapsed, isExtendedByClick, isTouch]);
279
- const handleSecondaryFocus = (0, _react.useCallback)(() => {
280
- if (!secondaryAction || isSecondaryHidden || isDisabled || shouldPreventSecondaryExpansion || secondaryAction.isDisabled) {
281
- return;
282
- }
283
- setIsSecondaryFocused(true);
284
- if (!isExtendedByClick) {
285
- setIsSecondaryExpanded(true);
286
- }
287
- }, [isDisabled, isExtendedByClick, isSecondaryHidden, secondaryAction, shouldPreventSecondaryExpansion]);
288
- const handleSecondaryBlur = (0, _react.useCallback)(() => {
289
- setIsSecondaryFocused(false);
290
- if (!isExtendedByClick && !effectiveIsCollapsed) {
291
- setIsSecondaryExpanded(false);
292
- }
293
- }, [effectiveIsCollapsed, isExtendedByClick]);
294
266
 
295
267
  /**
296
- * Secondary label is visible when expanded or when hovered/focused.
268
+ * Secondary label is visible when expanded or when hovered (desktop only).
297
269
  */
298
- const isSecondaryLabelVisible = isSecondaryExpanded || !isTouch && isSecondaryHovered || isSecondaryFocused;
270
+ const isSecondaryLabelVisible = isSecondaryExpanded || !isTouch && isSecondaryHovered;
299
271
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, measuredElement, /*#__PURE__*/_react.default.createElement(_MultiActionButton.StyledMultiActionButton, {
300
272
  className: (0, _clsx.default)('beta-chayns-multi-action', className),
301
273
  ref: multiActionButtonRef,
@@ -313,7 +285,6 @@ const MultiActionButton = ({
313
285
  isSolo: !hasSecondaryAction || isSecondaryHidden || effectiveIsCollapsed,
314
286
  onClick: handlePrimaryClick,
315
287
  showLabel: !effectiveIsCollapsed && !shouldHidePrimaryLabelForMinimumWidth && (shouldKeepPrimaryLabelVisible || !isAutoIconsOnly) && (shouldKeepPrimaryLabelVisible || !shouldHideSecondaryForAutoCollapse) && (!hasExpandableSecondaryAction || !isSecondaryExpanded),
316
- shouldShowKeyboardHighlighting: shouldShowKeyboardHighlighting,
317
288
  shouldUseContentWidth: shouldUseContentWidth,
318
289
  height: height
319
290
  }), hasSecondaryAction && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_MultiActionButton.StyledSeparator, {
@@ -338,7 +309,6 @@ const MultiActionButton = ({
338
309
  key: "multi-action-secondary-context-menu",
339
310
  onClick: handleSecondaryClick,
340
311
  showLabel: false,
341
- shouldShowKeyboardHighlighting: shouldShowKeyboardHighlighting,
342
312
  shouldUseContentWidth: shouldUseContentWidth,
343
313
  height: height
344
314
  })) : /*#__PURE__*/_react.default.createElement(_ActionButton.default, {
@@ -353,10 +323,7 @@ const MultiActionButton = ({
353
323
  onClick: handleSecondaryClick,
354
324
  onMouseEnter: handleSecondaryMouseEnter,
355
325
  onMouseLeave: handleSecondaryMouseLeave,
356
- onFocus: handleSecondaryFocus,
357
- onBlur: handleSecondaryBlur,
358
326
  showLabel: !isSecondaryHidden && !isAutoIconsOnly && isSecondaryLabelVisible,
359
- shouldShowKeyboardHighlighting: shouldShowKeyboardHighlighting,
360
327
  shouldUseContentWidth: shouldUseContentWidth,
361
328
  height: height
362
329
  }))));
@@ -1 +1 @@
1
- {"version":3,"file":"MultiActionButton.js","names":["_clsx","_interopRequireDefault","require","_react","_interopRequireWildcard","_element","_useKeyboardFocusHighlighting","_environment","_ContextMenu","_ActionButton","_MultiActionButton","_MultiActionButton2","_MultiActionButton3","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SECONDARY_CONTEXT_MENU_ACTION","icon","label","undefined","createMeasuredMultiActionButtonContent","backgroundColor","gapColor","height","primaryAction","secondaryAction","createElement","StyledMultiActionButton","style","width","action","actionType","isCollapsed","isDisabled","isShrunk","isSolo","showLabel","shouldUseContentWidth","Fragment","StyledSeparator","$gapColor","$isHidden","isExpanded","isHidden","MultiActionButton","className","extendedTimeoutMs","MultiActionButtonHeight","Medium","secondaryContextMenu","shouldAutoCollapse","shouldUseFullWidth","shouldEnableKeyboardHighlighting","isExtendedByClick","setIsExtendedByClick","useState","isSecondaryExpanded","setIsSecondaryExpanded","isSecondaryHovered","setIsSecondaryHovered","isSecondaryFocused","setIsSecondaryFocused","autoCollapseTimeoutRef","useRef","multiActionButtonRef","secondaryContextMenuRef","autoCollapseMode","setAutoCollapseMode","MultiActionButtonAutoCollapseMode","Expanded","isTouch","useIsTouch","parentSize","useElementSize","shouldUseParentElement","hasSecondaryContextMenu","Boolean","length","secondaryTriggerAction","hasExpandableSecondaryAction","hasSecondaryAction","shouldShowKeyboardHighlighting","useKeyboardFocusHighlighting","expandedMeasuredContent","useMemo","measuredElement","expandedMeasuredWidth","useMeasuredClone","content","availableWidth","parentWidth","Math","min","useEffect","previousMode","getMultiActionButtonAutoCollapseMode","expandedWidth","isAutoIconsOnly","IconsOnly","isAutoPrimaryOnly","PrimaryOnly","shouldKeepFullWidth","shouldHideSecondaryForAutoCollapse","effectiveIsCollapsed","resolvedSecondaryAction","isSecondaryHidden","shouldPreventSecondaryExpansion","shouldKeepPrimaryLabelVisible","minimumPrimaryLabelVisibleWidth","getMinimumPrimaryLabelVisibleWidth","hasVisibleSecondaryAction","shouldHidePrimaryLabelForMinimumWidth","resolvedWidth","secondaryContextMenuTriggerStyle","getSecondaryContextMenuTriggerStyle","clearAutoCollapseTimeout","useCallback","current","window","clearTimeout","resetAutoCollapseTimeout","setTimeout","expandSecondaryByClick","handlePrimaryClick","event","_primaryAction$onClic","payload","isExtended","onClick","handleSecondaryClick","_resolvedSecondaryAct","_secondaryContextMenu","show","handleSecondaryMouseEnter","handleSecondaryMouseLeave","handleSecondaryFocus","handleSecondaryBlur","isSecondaryLabelVisible","clsx","ref","maxWidth","items","shouldDisableClick","shouldUseDefaultTriggerStyles","shouldHidePopupArrow","yOffset","key","onMouseEnter","onMouseLeave","onFocus","onBlur","displayName","_default","exports"],"sources":["../../../../src/components/multi-action-button/MultiActionButton.tsx"],"sourcesContent":["import clsx from 'clsx';\nimport React, {\n FC,\n MouseEvent,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useElementSize, useMeasuredClone } from '../../hooks/element';\nimport { useKeyboardFocusHighlighting } from '../../hooks/useKeyboardFocusHighlighting';\nimport { useIsTouch } from '../../utils/environment';\nimport ContextMenu from '../context-menu/ContextMenu';\nimport type { ContextMenuRef } from '../context-menu/ContextMenu.types';\nimport ActionButton from './action-button/ActionButton';\nimport { StyledMultiActionButton, StyledSeparator } from './MultiActionButton.styles';\nimport {\n getMinimumPrimaryLabelVisibleWidth,\n getMultiActionButtonAutoCollapseMode,\n getSecondaryContextMenuTriggerStyle,\n MultiActionButtonAutoCollapseMode,\n} from './MultiActionButton.utils';\nimport { MultiActionButtonHeight } from './MultiActionButton.types';\nimport type {\n MultiActionButtonAction,\n MultiActionButtonActionEvent,\n MultiActionButtonProps,\n} from './MultiActionButton.types';\n\nconst SECONDARY_CONTEXT_MENU_ACTION: MultiActionButtonAction = {\n icon: 'fa fa-chevron-down',\n label: undefined,\n};\n\ninterface CreateMeasuredMultiActionButtonContentOptions {\n backgroundColor?: string;\n gapColor?: string;\n height: number;\n primaryAction: MultiActionButtonAction;\n secondaryAction?: MultiActionButtonAction;\n}\n\nconst createMeasuredMultiActionButtonContent = ({\n backgroundColor,\n gapColor,\n height,\n primaryAction,\n secondaryAction,\n}: CreateMeasuredMultiActionButtonContentOptions): ReactNode => (\n <StyledMultiActionButton style={{ width: 'fit-content' }}>\n <ActionButton\n action={primaryAction}\n actionType=\"primary\"\n backgroundColor={primaryAction.backgroundColor ?? backgroundColor}\n isCollapsed={false}\n isDisabled={false}\n isShrunk={false}\n isSolo={!secondaryAction}\n showLabel\n shouldUseContentWidth\n height={height}\n />\n {secondaryAction && (\n <>\n <StyledSeparator $gapColor={gapColor} $isHidden={false} />\n <ActionButton\n action={secondaryAction}\n actionType=\"secondary\"\n backgroundColor={secondaryAction.backgroundColor ?? backgroundColor}\n isCollapsed={false}\n isDisabled={false}\n isExpanded={false}\n isHidden={false}\n showLabel={false}\n shouldUseContentWidth\n height={height}\n />\n </>\n )}\n </StyledMultiActionButton>\n);\n\n/**\n * Multi-action button with optional secondary action that can expand on hover/click.\n */\nconst MultiActionButton: FC<MultiActionButtonProps> = ({\n backgroundColor,\n className,\n extendedTimeoutMs = 3000,\n gapColor,\n height = MultiActionButtonHeight.Medium,\n isCollapsed = false,\n isDisabled = false,\n primaryAction,\n secondaryAction,\n secondaryContextMenu,\n shouldAutoCollapse = false,\n shouldUseFullWidth,\n shouldEnableKeyboardHighlighting,\n width,\n}) => {\n const [isExtendedByClick, setIsExtendedByClick] = useState(false);\n const [isSecondaryExpanded, setIsSecondaryExpanded] = useState(false);\n const [isSecondaryHovered, setIsSecondaryHovered] = useState(false);\n const [isSecondaryFocused, setIsSecondaryFocused] = useState(false);\n\n const autoCollapseTimeoutRef = useRef<number | null>(null);\n const multiActionButtonRef = useRef<HTMLDivElement | null>(null);\n const secondaryContextMenuRef = useRef<ContextMenuRef>(null);\n const [autoCollapseMode, setAutoCollapseMode] = useState<MultiActionButtonAutoCollapseMode>(\n MultiActionButtonAutoCollapseMode.Expanded,\n );\n\n const isTouch = useIsTouch();\n const parentSize = useElementSize(multiActionButtonRef, { shouldUseParentElement: true });\n\n const hasSecondaryContextMenu = Boolean(secondaryContextMenu?.length);\n const secondaryTriggerAction = hasSecondaryContextMenu\n ? SECONDARY_CONTEXT_MENU_ACTION\n : secondaryAction;\n const hasExpandableSecondaryAction = Boolean(secondaryAction) && !hasSecondaryContextMenu;\n const hasSecondaryAction = Boolean(secondaryTriggerAction);\n const shouldUseContentWidth = !width && !shouldUseFullWidth;\n const shouldShowKeyboardHighlighting = useKeyboardFocusHighlighting(\n shouldEnableKeyboardHighlighting && !isDisabled,\n );\n\n const expandedMeasuredContent = useMemo(\n () =>\n createMeasuredMultiActionButtonContent({\n backgroundColor,\n gapColor,\n height,\n primaryAction,\n secondaryAction: secondaryTriggerAction,\n }),\n [backgroundColor, gapColor, height, primaryAction, secondaryTriggerAction],\n );\n\n const { measuredElement, width: expandedMeasuredWidth } = useMeasuredClone({\n content: expandedMeasuredContent,\n });\n\n const availableWidth = useMemo(() => {\n const parentWidth = parentSize?.width;\n\n if (typeof width === 'number') {\n return typeof parentWidth === 'number' ? Math.min(parentWidth, width) : width;\n }\n\n return parentWidth;\n }, [parentSize?.width, width]);\n\n useEffect(() => {\n if (!shouldAutoCollapse || isCollapsed) {\n setAutoCollapseMode(MultiActionButtonAutoCollapseMode.Expanded);\n return;\n }\n\n if (expandedMeasuredWidth <= 0) {\n return;\n }\n\n setAutoCollapseMode((previousMode) =>\n getMultiActionButtonAutoCollapseMode({\n availableWidth,\n expandedWidth: expandedMeasuredWidth,\n hasSecondaryAction,\n height,\n previousMode,\n }),\n );\n }, [\n availableWidth,\n expandedMeasuredWidth,\n hasSecondaryAction,\n height,\n isCollapsed,\n shouldAutoCollapse,\n ]);\n\n const isAutoIconsOnly =\n shouldAutoCollapse && autoCollapseMode === MultiActionButtonAutoCollapseMode.IconsOnly;\n const isAutoPrimaryOnly =\n shouldAutoCollapse && autoCollapseMode === MultiActionButtonAutoCollapseMode.PrimaryOnly;\n const shouldKeepFullWidth = Boolean(shouldUseFullWidth);\n const shouldHideSecondaryForAutoCollapse = hasSecondaryAction && isAutoPrimaryOnly;\n const effectiveIsCollapsed = isCollapsed || (!shouldKeepFullWidth && isAutoPrimaryOnly);\n const resolvedSecondaryAction = hasSecondaryAction ? secondaryTriggerAction : undefined;\n const isSecondaryHidden = effectiveIsCollapsed || shouldHideSecondaryForAutoCollapse;\n const shouldPreventSecondaryExpansion = isAutoIconsOnly || isSecondaryHidden;\n const shouldKeepPrimaryLabelVisible = shouldKeepFullWidth && shouldAutoCollapse;\n const minimumPrimaryLabelVisibleWidth = getMinimumPrimaryLabelVisibleWidth({\n hasVisibleSecondaryAction: hasSecondaryAction,\n height,\n });\n const shouldHidePrimaryLabelForMinimumWidth =\n shouldKeepPrimaryLabelVisible &&\n typeof availableWidth === 'number' &&\n availableWidth <= minimumPrimaryLabelVisibleWidth;\n\n const resolvedWidth = useMemo(() => {\n if (shouldKeepFullWidth) {\n return '100%';\n }\n\n if (effectiveIsCollapsed) {\n return height;\n }\n\n return width ?? 'fit-content';\n }, [effectiveIsCollapsed, height, shouldKeepFullWidth, width]);\n\n const secondaryContextMenuTriggerStyle = getSecondaryContextMenuTriggerStyle({\n height,\n isCollapsed: isSecondaryHidden,\n isExpanded: false,\n shouldUseContentWidth,\n });\n\n /**\n * Clears the current auto-collapse timer without changing visual state.\n */\n const clearAutoCollapseTimeout = useCallback(() => {\n if (autoCollapseTimeoutRef.current) {\n window.clearTimeout(autoCollapseTimeoutRef.current);\n autoCollapseTimeoutRef.current = null;\n }\n }, []);\n\n /**\n * Clears and restarts the auto-collapse timer used after click-triggered expansion.\n */\n const resetAutoCollapseTimeout = useCallback(() => {\n clearAutoCollapseTimeout();\n\n if (extendedTimeoutMs <= 0) {\n return;\n }\n\n autoCollapseTimeoutRef.current = window.setTimeout(() => {\n setIsSecondaryExpanded(false);\n setIsExtendedByClick(false);\n }, extendedTimeoutMs);\n }, [clearAutoCollapseTimeout, extendedTimeoutMs]);\n\n /**\n * Expands the secondary action and remembers that it originated from a click.\n */\n const expandSecondaryByClick = useCallback(() => {\n setIsSecondaryExpanded(true);\n setIsExtendedByClick(true);\n resetAutoCollapseTimeout();\n }, [resetAutoCollapseTimeout]);\n\n /**\n * Cleanup timers on unmount.\n */\n useEffect(\n () => () => {\n clearAutoCollapseTimeout();\n },\n [clearAutoCollapseTimeout],\n );\n\n /**\n * Collapsing the control should also reset any temporary expansion state.\n */\n useEffect(() => {\n if (effectiveIsCollapsed || shouldPreventSecondaryExpansion) {\n clearAutoCollapseTimeout();\n setIsSecondaryExpanded(false);\n setIsExtendedByClick(false);\n setIsSecondaryHovered(false);\n setIsSecondaryFocused(false);\n }\n }, [clearAutoCollapseTimeout, effectiveIsCollapsed, shouldPreventSecondaryExpansion]);\n\n /**\n * Handler for the primary action button.\n */\n const handlePrimaryClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n if (isDisabled || primaryAction.isDisabled) {\n return;\n }\n\n const payload: MultiActionButtonActionEvent = {\n action: 'primary',\n event,\n isExtended: isSecondaryExpanded,\n isTouch,\n };\n\n primaryAction.onClick?.(payload);\n },\n [isDisabled, isSecondaryExpanded, isTouch, primaryAction],\n );\n\n /**\n * Handler for the secondary action button.\n */\n const handleSecondaryClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n if (\n !resolvedSecondaryAction ||\n isSecondaryHidden ||\n isDisabled ||\n resolvedSecondaryAction.isDisabled\n ) {\n return;\n }\n\n if (hasSecondaryContextMenu) {\n secondaryContextMenuRef.current?.show();\n return;\n }\n\n const payload: MultiActionButtonActionEvent = {\n action: 'secondary',\n event,\n isExtended: isSecondaryExpanded,\n isTouch,\n };\n\n resolvedSecondaryAction.onClick?.(payload);\n if (!shouldPreventSecondaryExpansion) {\n expandSecondaryByClick();\n }\n },\n [\n expandSecondaryByClick,\n hasSecondaryContextMenu,\n isSecondaryHidden,\n isDisabled,\n isSecondaryExpanded,\n isTouch,\n resolvedSecondaryAction,\n shouldPreventSecondaryExpansion,\n ],\n );\n\n /**\n * Desktop hover behavior keeps the secondary action expanded while hovered.\n */\n const handleSecondaryMouseEnter = useCallback(() => {\n if (\n !secondaryAction ||\n isSecondaryHidden ||\n isTouch ||\n isDisabled ||\n shouldPreventSecondaryExpansion ||\n secondaryAction.isDisabled\n ) {\n return;\n }\n\n setIsSecondaryHovered(true);\n if (!isExtendedByClick) {\n setIsSecondaryExpanded(true);\n }\n }, [\n isSecondaryHidden,\n isDisabled,\n isExtendedByClick,\n isTouch,\n secondaryAction,\n shouldPreventSecondaryExpansion,\n ]);\n\n const handleSecondaryMouseLeave = useCallback(() => {\n if (isTouch) {\n return;\n }\n\n setIsSecondaryHovered(false);\n if (!isExtendedByClick && !effectiveIsCollapsed) {\n setIsSecondaryExpanded(false);\n }\n }, [effectiveIsCollapsed, isExtendedByClick, isTouch]);\n\n const handleSecondaryFocus = useCallback(() => {\n if (\n !secondaryAction ||\n isSecondaryHidden ||\n isDisabled ||\n shouldPreventSecondaryExpansion ||\n secondaryAction.isDisabled\n ) {\n return;\n }\n\n setIsSecondaryFocused(true);\n if (!isExtendedByClick) {\n setIsSecondaryExpanded(true);\n }\n }, [\n isDisabled,\n isExtendedByClick,\n isSecondaryHidden,\n secondaryAction,\n shouldPreventSecondaryExpansion,\n ]);\n\n const handleSecondaryBlur = useCallback(() => {\n setIsSecondaryFocused(false);\n if (!isExtendedByClick && !effectiveIsCollapsed) {\n setIsSecondaryExpanded(false);\n }\n }, [effectiveIsCollapsed, isExtendedByClick]);\n\n /**\n * Secondary label is visible when expanded or when hovered/focused.\n */\n const isSecondaryLabelVisible =\n isSecondaryExpanded || (!isTouch && isSecondaryHovered) || isSecondaryFocused;\n\n return (\n <>\n {measuredElement}\n <StyledMultiActionButton\n className={clsx('beta-chayns-multi-action', className)}\n ref={multiActionButtonRef}\n style={{ maxWidth: '100%', width: resolvedWidth }}\n >\n <ActionButton\n action={primaryAction}\n actionType=\"primary\"\n backgroundColor={primaryAction.backgroundColor ?? backgroundColor}\n isCollapsed={effectiveIsCollapsed}\n isDisabled={isDisabled}\n isShrunk={\n hasSecondaryAction &&\n ((!shouldKeepFullWidth && isAutoIconsOnly) || isSecondaryExpanded)\n }\n isSolo={!hasSecondaryAction || isSecondaryHidden || effectiveIsCollapsed}\n onClick={handlePrimaryClick}\n showLabel={\n !effectiveIsCollapsed &&\n !shouldHidePrimaryLabelForMinimumWidth &&\n (shouldKeepPrimaryLabelVisible || !isAutoIconsOnly) &&\n (shouldKeepPrimaryLabelVisible || !shouldHideSecondaryForAutoCollapse) &&\n (!hasExpandableSecondaryAction || !isSecondaryExpanded)\n }\n shouldShowKeyboardHighlighting={shouldShowKeyboardHighlighting}\n shouldUseContentWidth={shouldUseContentWidth}\n height={height}\n />\n {hasSecondaryAction && (\n <>\n <StyledSeparator $gapColor={gapColor} $isHidden={isSecondaryHidden} />\n {hasSecondaryContextMenu ? (\n <ContextMenu\n items={secondaryContextMenu ?? []}\n ref={secondaryContextMenuRef}\n shouldDisableClick\n shouldUseDefaultTriggerStyles={false}\n shouldHidePopupArrow\n yOffset={-6}\n style={secondaryContextMenuTriggerStyle}\n >\n <ActionButton\n action={\n resolvedSecondaryAction ?? SECONDARY_CONTEXT_MENU_ACTION\n }\n actionType=\"secondary\"\n backgroundColor={\n resolvedSecondaryAction?.backgroundColor ?? backgroundColor\n }\n isCollapsed={false}\n isDisabled={isDisabled}\n isExpanded={false}\n isHidden={isSecondaryHidden}\n key=\"multi-action-secondary-context-menu\"\n onClick={handleSecondaryClick}\n showLabel={false}\n shouldShowKeyboardHighlighting={shouldShowKeyboardHighlighting}\n shouldUseContentWidth={shouldUseContentWidth}\n height={height}\n />\n </ContextMenu>\n ) : (\n <ActionButton\n action={\n resolvedSecondaryAction ??\n secondaryAction ??\n SECONDARY_CONTEXT_MENU_ACTION\n }\n actionType=\"secondary\"\n backgroundColor={\n resolvedSecondaryAction?.backgroundColor ?? backgroundColor\n }\n isCollapsed={false}\n isDisabled={isDisabled}\n isExpanded={!isAutoIconsOnly && isSecondaryExpanded}\n isHidden={isSecondaryHidden}\n key=\"multi-action-secondary-button\"\n onClick={handleSecondaryClick}\n onMouseEnter={handleSecondaryMouseEnter}\n onMouseLeave={handleSecondaryMouseLeave}\n onFocus={handleSecondaryFocus}\n onBlur={handleSecondaryBlur}\n showLabel={\n !isSecondaryHidden &&\n !isAutoIconsOnly &&\n isSecondaryLabelVisible\n }\n shouldShowKeyboardHighlighting={shouldShowKeyboardHighlighting}\n shouldUseContentWidth={shouldUseContentWidth}\n height={height}\n />\n )}\n </>\n )}\n </StyledMultiActionButton>\n </>\n );\n};\n\nMultiActionButton.displayName = 'MultiActionButton';\n\nexport default MultiActionButton;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"MultiActionButton.js","names":["_clsx","_interopRequireDefault","require","_react","_interopRequireWildcard","_element","_environment","_ContextMenu","_ActionButton","_MultiActionButton","_MultiActionButton2","_MultiActionButton3","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SECONDARY_CONTEXT_MENU_ACTION","icon","label","undefined","createMeasuredMultiActionButtonContent","backgroundColor","gapColor","height","primaryAction","secondaryAction","createElement","StyledMultiActionButton","style","width","action","actionType","isCollapsed","isDisabled","isShrunk","isSolo","showLabel","shouldUseContentWidth","Fragment","StyledSeparator","$gapColor","$isHidden","isExpanded","isHidden","MultiActionButton","className","extendedTimeoutMs","MultiActionButtonHeight","Medium","secondaryContextMenu","shouldAutoCollapse","shouldUseFullWidth","isExtendedByClick","setIsExtendedByClick","useState","isSecondaryExpanded","setIsSecondaryExpanded","isSecondaryHovered","setIsSecondaryHovered","autoCollapseTimeoutRef","useRef","multiActionButtonRef","secondaryContextMenuRef","autoCollapseMode","setAutoCollapseMode","MultiActionButtonAutoCollapseMode","Expanded","isTouch","useIsTouch","parentSize","useElementSize","shouldUseParentElement","hasSecondaryContextMenu","Boolean","length","secondaryTriggerAction","hasExpandableSecondaryAction","hasSecondaryAction","expandedMeasuredContent","useMemo","measuredElement","expandedMeasuredWidth","useMeasuredClone","content","availableWidth","parentWidth","Math","min","useEffect","previousMode","getMultiActionButtonAutoCollapseMode","expandedWidth","isAutoIconsOnly","IconsOnly","isAutoPrimaryOnly","PrimaryOnly","shouldKeepFullWidth","shouldHideSecondaryForAutoCollapse","effectiveIsCollapsed","resolvedSecondaryAction","isSecondaryHidden","shouldPreventSecondaryExpansion","shouldKeepPrimaryLabelVisible","minimumPrimaryLabelVisibleWidth","getMinimumPrimaryLabelVisibleWidth","hasVisibleSecondaryAction","shouldHidePrimaryLabelForMinimumWidth","resolvedWidth","secondaryContextMenuTriggerStyle","getSecondaryContextMenuTriggerStyle","clearAutoCollapseTimeout","useCallback","current","window","clearTimeout","resetAutoCollapseTimeout","setTimeout","expandSecondaryByClick","handlePrimaryClick","event","_primaryAction$onClic","payload","isExtended","onClick","handleSecondaryClick","_resolvedSecondaryAct","_secondaryContextMenu","show","handleSecondaryMouseEnter","handleSecondaryMouseLeave","isSecondaryLabelVisible","clsx","ref","maxWidth","items","shouldDisableClick","shouldUseDefaultTriggerStyles","shouldHidePopupArrow","yOffset","key","onMouseEnter","onMouseLeave","displayName","_default","exports"],"sources":["../../../../src/components/multi-action-button/MultiActionButton.tsx"],"sourcesContent":["import clsx from 'clsx';\nimport React, {\n FC,\n MouseEvent,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useElementSize, useMeasuredClone } from '../../hooks/element';\nimport { useIsTouch } from '../../utils/environment';\nimport ContextMenu from '../context-menu/ContextMenu';\nimport type { ContextMenuRef } from '../context-menu/ContextMenu.types';\nimport ActionButton from './action-button/ActionButton';\nimport { StyledMultiActionButton, StyledSeparator } from './MultiActionButton.styles';\nimport {\n getMinimumPrimaryLabelVisibleWidth,\n getMultiActionButtonAutoCollapseMode,\n getSecondaryContextMenuTriggerStyle,\n MultiActionButtonAutoCollapseMode,\n} from './MultiActionButton.utils';\nimport { MultiActionButtonHeight } from './MultiActionButton.types';\nimport type {\n MultiActionButtonAction,\n MultiActionButtonActionEvent,\n MultiActionButtonProps,\n} from './MultiActionButton.types';\n\nconst SECONDARY_CONTEXT_MENU_ACTION: MultiActionButtonAction = {\n icon: 'fa fa-chevron-down',\n label: undefined,\n};\n\ninterface CreateMeasuredMultiActionButtonContentOptions {\n backgroundColor?: string;\n gapColor?: string;\n height: number;\n primaryAction: MultiActionButtonAction;\n secondaryAction?: MultiActionButtonAction;\n}\n\nconst createMeasuredMultiActionButtonContent = ({\n backgroundColor,\n gapColor,\n height,\n primaryAction,\n secondaryAction,\n}: CreateMeasuredMultiActionButtonContentOptions): ReactNode => (\n <StyledMultiActionButton style={{ width: 'fit-content' }}>\n <ActionButton\n action={primaryAction}\n actionType=\"primary\"\n backgroundColor={primaryAction.backgroundColor ?? backgroundColor}\n isCollapsed={false}\n isDisabled={false}\n isShrunk={false}\n isSolo={!secondaryAction}\n showLabel\n shouldUseContentWidth\n height={height}\n />\n {secondaryAction && (\n <>\n <StyledSeparator $gapColor={gapColor} $isHidden={false} />\n <ActionButton\n action={secondaryAction}\n actionType=\"secondary\"\n backgroundColor={secondaryAction.backgroundColor ?? backgroundColor}\n isCollapsed={false}\n isDisabled={false}\n isExpanded={false}\n isHidden={false}\n showLabel={false}\n shouldUseContentWidth\n height={height}\n />\n </>\n )}\n </StyledMultiActionButton>\n);\n\n/**\n * Multi-action button with optional secondary action that can expand on hover/click.\n */\nconst MultiActionButton: FC<MultiActionButtonProps> = ({\n backgroundColor,\n className,\n extendedTimeoutMs = 3000,\n gapColor,\n height = MultiActionButtonHeight.Medium,\n isCollapsed = false,\n isDisabled = false,\n primaryAction,\n secondaryAction,\n secondaryContextMenu,\n shouldAutoCollapse = false,\n shouldUseFullWidth,\n width,\n}) => {\n const [isExtendedByClick, setIsExtendedByClick] = useState(false);\n const [isSecondaryExpanded, setIsSecondaryExpanded] = useState(false);\n const [isSecondaryHovered, setIsSecondaryHovered] = useState(false);\n\n const autoCollapseTimeoutRef = useRef<number | null>(null);\n const multiActionButtonRef = useRef<HTMLDivElement | null>(null);\n const secondaryContextMenuRef = useRef<ContextMenuRef>(null);\n const [autoCollapseMode, setAutoCollapseMode] = useState<MultiActionButtonAutoCollapseMode>(\n MultiActionButtonAutoCollapseMode.Expanded,\n );\n\n const isTouch = useIsTouch();\n const parentSize = useElementSize(multiActionButtonRef, { shouldUseParentElement: true });\n\n const hasSecondaryContextMenu = Boolean(secondaryContextMenu?.length);\n const secondaryTriggerAction = hasSecondaryContextMenu\n ? SECONDARY_CONTEXT_MENU_ACTION\n : secondaryAction;\n const hasExpandableSecondaryAction = Boolean(secondaryAction) && !hasSecondaryContextMenu;\n const hasSecondaryAction = Boolean(secondaryTriggerAction);\n const shouldUseContentWidth = !width && !shouldUseFullWidth;\n\n const expandedMeasuredContent = useMemo(\n () =>\n createMeasuredMultiActionButtonContent({\n backgroundColor,\n gapColor,\n height,\n primaryAction,\n secondaryAction: secondaryTriggerAction,\n }),\n [backgroundColor, gapColor, height, primaryAction, secondaryTriggerAction],\n );\n\n const { measuredElement, width: expandedMeasuredWidth } = useMeasuredClone({\n content: expandedMeasuredContent,\n });\n\n const availableWidth = useMemo(() => {\n const parentWidth = parentSize?.width;\n\n if (typeof width === 'number') {\n return typeof parentWidth === 'number' ? Math.min(parentWidth, width) : width;\n }\n\n return parentWidth;\n }, [parentSize?.width, width]);\n\n useEffect(() => {\n if (!shouldAutoCollapse || isCollapsed) {\n setAutoCollapseMode(MultiActionButtonAutoCollapseMode.Expanded);\n return;\n }\n\n if (expandedMeasuredWidth <= 0) {\n return;\n }\n\n setAutoCollapseMode((previousMode) =>\n getMultiActionButtonAutoCollapseMode({\n availableWidth,\n expandedWidth: expandedMeasuredWidth,\n hasSecondaryAction,\n height,\n previousMode,\n }),\n );\n }, [\n availableWidth,\n expandedMeasuredWidth,\n hasSecondaryAction,\n height,\n isCollapsed,\n shouldAutoCollapse,\n ]);\n\n const isAutoIconsOnly =\n shouldAutoCollapse && autoCollapseMode === MultiActionButtonAutoCollapseMode.IconsOnly;\n const isAutoPrimaryOnly =\n shouldAutoCollapse && autoCollapseMode === MultiActionButtonAutoCollapseMode.PrimaryOnly;\n const shouldKeepFullWidth = Boolean(shouldUseFullWidth);\n const shouldHideSecondaryForAutoCollapse = hasSecondaryAction && isAutoPrimaryOnly;\n const effectiveIsCollapsed = isCollapsed || (!shouldKeepFullWidth && isAutoPrimaryOnly);\n const resolvedSecondaryAction = hasSecondaryAction ? secondaryTriggerAction : undefined;\n const isSecondaryHidden = effectiveIsCollapsed || shouldHideSecondaryForAutoCollapse;\n const shouldPreventSecondaryExpansion = isAutoIconsOnly || isSecondaryHidden;\n const shouldKeepPrimaryLabelVisible = shouldKeepFullWidth && shouldAutoCollapse;\n const minimumPrimaryLabelVisibleWidth = getMinimumPrimaryLabelVisibleWidth({\n hasVisibleSecondaryAction: hasSecondaryAction,\n height,\n });\n const shouldHidePrimaryLabelForMinimumWidth =\n shouldKeepPrimaryLabelVisible &&\n typeof availableWidth === 'number' &&\n availableWidth <= minimumPrimaryLabelVisibleWidth;\n\n const resolvedWidth = shouldKeepFullWidth\n ? '100%'\n : effectiveIsCollapsed\n ? height\n : (width ?? 'fit-content');\n\n const secondaryContextMenuTriggerStyle = getSecondaryContextMenuTriggerStyle({\n height,\n isCollapsed: isSecondaryHidden,\n isExpanded: false,\n shouldUseContentWidth,\n });\n\n /**\n * Clears the current auto-collapse timer without changing visual state.\n */\n const clearAutoCollapseTimeout = useCallback(() => {\n if (autoCollapseTimeoutRef.current) {\n window.clearTimeout(autoCollapseTimeoutRef.current);\n autoCollapseTimeoutRef.current = null;\n }\n }, []);\n\n /**\n * Clears and restarts the auto-collapse timer used after click-triggered expansion.\n */\n const resetAutoCollapseTimeout = useCallback(() => {\n clearAutoCollapseTimeout();\n\n if (extendedTimeoutMs <= 0) {\n return;\n }\n\n autoCollapseTimeoutRef.current = window.setTimeout(() => {\n setIsSecondaryExpanded(false);\n setIsExtendedByClick(false);\n }, extendedTimeoutMs);\n }, [clearAutoCollapseTimeout, extendedTimeoutMs]);\n\n /**\n * Expands the secondary action and remembers that it originated from a click.\n */\n const expandSecondaryByClick = useCallback(() => {\n setIsSecondaryExpanded(true);\n setIsExtendedByClick(true);\n resetAutoCollapseTimeout();\n }, [resetAutoCollapseTimeout]);\n\n /**\n * Cleanup timers on unmount.\n */\n useEffect(\n () => () => {\n clearAutoCollapseTimeout();\n },\n [clearAutoCollapseTimeout],\n );\n\n /**\n * Collapsing the control should also reset any temporary expansion state.\n */\n useEffect(() => {\n if (effectiveIsCollapsed || shouldPreventSecondaryExpansion) {\n clearAutoCollapseTimeout();\n setIsSecondaryExpanded(false);\n setIsExtendedByClick(false);\n setIsSecondaryHovered(false);\n }\n }, [clearAutoCollapseTimeout, effectiveIsCollapsed, shouldPreventSecondaryExpansion]);\n\n /**\n * Handler for the primary action button.\n */\n const handlePrimaryClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n if (isDisabled || primaryAction.isDisabled) {\n return;\n }\n\n const payload: MultiActionButtonActionEvent = {\n action: 'primary',\n event,\n isExtended: isSecondaryExpanded,\n isTouch,\n };\n\n primaryAction.onClick?.(payload);\n },\n [isDisabled, isSecondaryExpanded, isTouch, primaryAction],\n );\n\n /**\n * Handler for the secondary action button.\n */\n const handleSecondaryClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n if (\n !resolvedSecondaryAction ||\n isSecondaryHidden ||\n isDisabled ||\n resolvedSecondaryAction.isDisabled\n ) {\n return;\n }\n\n if (hasSecondaryContextMenu) {\n secondaryContextMenuRef.current?.show();\n return;\n }\n\n const payload: MultiActionButtonActionEvent = {\n action: 'secondary',\n event,\n isExtended: isSecondaryExpanded,\n isTouch,\n };\n\n resolvedSecondaryAction.onClick?.(payload);\n if (!shouldPreventSecondaryExpansion) {\n expandSecondaryByClick();\n }\n },\n [\n expandSecondaryByClick,\n hasSecondaryContextMenu,\n isSecondaryHidden,\n isDisabled,\n isSecondaryExpanded,\n isTouch,\n resolvedSecondaryAction,\n shouldPreventSecondaryExpansion,\n ],\n );\n\n /**\n * Desktop hover behavior keeps the secondary action expanded while hovered.\n */\n const handleSecondaryMouseEnter = useCallback(() => {\n if (\n !secondaryAction ||\n isSecondaryHidden ||\n isTouch ||\n isDisabled ||\n shouldPreventSecondaryExpansion ||\n secondaryAction.isDisabled\n ) {\n return;\n }\n\n setIsSecondaryHovered(true);\n if (!isExtendedByClick) {\n setIsSecondaryExpanded(true);\n }\n }, [\n isSecondaryHidden,\n isDisabled,\n isExtendedByClick,\n isTouch,\n secondaryAction,\n shouldPreventSecondaryExpansion,\n ]);\n\n const handleSecondaryMouseLeave = useCallback(() => {\n if (isTouch) {\n return;\n }\n\n setIsSecondaryHovered(false);\n if (!isExtendedByClick && !effectiveIsCollapsed) {\n setIsSecondaryExpanded(false);\n }\n }, [effectiveIsCollapsed, isExtendedByClick, isTouch]);\n\n /**\n * Secondary label is visible when expanded or when hovered (desktop only).\n */\n const isSecondaryLabelVisible = isSecondaryExpanded || (!isTouch && isSecondaryHovered);\n\n return (\n <>\n {measuredElement}\n <StyledMultiActionButton\n className={clsx('beta-chayns-multi-action', className)}\n ref={multiActionButtonRef}\n style={{ maxWidth: '100%', width: resolvedWidth }}\n >\n <ActionButton\n action={primaryAction}\n actionType=\"primary\"\n backgroundColor={primaryAction.backgroundColor ?? backgroundColor}\n isCollapsed={effectiveIsCollapsed}\n isDisabled={isDisabled}\n isShrunk={\n hasSecondaryAction &&\n ((!shouldKeepFullWidth && isAutoIconsOnly) || isSecondaryExpanded)\n }\n isSolo={!hasSecondaryAction || isSecondaryHidden || effectiveIsCollapsed}\n onClick={handlePrimaryClick}\n showLabel={\n !effectiveIsCollapsed &&\n !shouldHidePrimaryLabelForMinimumWidth &&\n (shouldKeepPrimaryLabelVisible || !isAutoIconsOnly) &&\n (shouldKeepPrimaryLabelVisible || !shouldHideSecondaryForAutoCollapse) &&\n (!hasExpandableSecondaryAction || !isSecondaryExpanded)\n }\n shouldUseContentWidth={shouldUseContentWidth}\n height={height}\n />\n {hasSecondaryAction && (\n <>\n <StyledSeparator $gapColor={gapColor} $isHidden={isSecondaryHidden} />\n {hasSecondaryContextMenu ? (\n <ContextMenu\n items={secondaryContextMenu ?? []}\n ref={secondaryContextMenuRef}\n shouldDisableClick\n shouldUseDefaultTriggerStyles={false}\n shouldHidePopupArrow\n yOffset={-6}\n style={secondaryContextMenuTriggerStyle}\n >\n <ActionButton\n action={\n resolvedSecondaryAction ?? SECONDARY_CONTEXT_MENU_ACTION\n }\n actionType=\"secondary\"\n backgroundColor={\n resolvedSecondaryAction?.backgroundColor ?? backgroundColor\n }\n isCollapsed={false}\n isDisabled={isDisabled}\n isExpanded={false}\n isHidden={isSecondaryHidden}\n key=\"multi-action-secondary-context-menu\"\n onClick={handleSecondaryClick}\n showLabel={false}\n shouldUseContentWidth={shouldUseContentWidth}\n height={height}\n />\n </ContextMenu>\n ) : (\n <ActionButton\n action={\n resolvedSecondaryAction ??\n secondaryAction ??\n SECONDARY_CONTEXT_MENU_ACTION\n }\n actionType=\"secondary\"\n backgroundColor={\n resolvedSecondaryAction?.backgroundColor ?? backgroundColor\n }\n isCollapsed={false}\n isDisabled={isDisabled}\n isExpanded={!isAutoIconsOnly && isSecondaryExpanded}\n isHidden={isSecondaryHidden}\n key=\"multi-action-secondary-button\"\n onClick={handleSecondaryClick}\n onMouseEnter={handleSecondaryMouseEnter}\n onMouseLeave={handleSecondaryMouseLeave}\n showLabel={\n !isSecondaryHidden &&\n !isAutoIconsOnly &&\n isSecondaryLabelVisible\n }\n shouldUseContentWidth={shouldUseContentWidth}\n height={height}\n />\n )}\n </>\n )}\n </StyledMultiActionButton>\n </>\n );\n};\n\nMultiActionButton.displayName = 'MultiActionButton';\n\nexport default MultiActionButton;\n"],"mappings":"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","ignoreList":[]}
@@ -16,12 +16,6 @@ const StyledMultiActionButton = exports.StyledMultiActionButton = (0, _styledCom
16
16
  position: relative;
17
17
  transition: width 0.2s ease;
18
18
  width: fit-content;
19
-
20
- /* Keep normal clipping, but let focus-ring paint outside while focused. */
21
- &:focus-within {
22
- overflow: visible;
23
- z-index: 1;
24
- }
25
19
  `;
26
20
  const StyledSeparator = exports.StyledSeparator = _styledComponents.default.span`
27
21
  align-self: stretch;
@@ -1 +1 @@
1
- {"version":3,"file":"MultiActionButton.styles.js","names":["_react","require","_styledComponents","_interopRequireDefault","e","__esModule","default","StyledMultiActionButton","exports","styled","motion","div","StyledSeparator","span","$gapColor","theme","$isHidden"],"sources":["../../../../src/components/multi-action-button/MultiActionButton.styles.ts"],"sourcesContent":["import { motion } from 'motion/react';\nimport styled from 'styled-components';\nimport type { WithTheme } from '../color-scheme-provider/ColorSchemeProvider';\n\nexport const StyledMultiActionButton = styled(motion.div)`\n align-items: stretch;\n display: inline-flex;\n max-width: 100%;\n min-width: 0;\n overflow: hidden;\n position: relative;\n transition: width 0.2s ease;\n width: fit-content;\n\n /* Keep normal clipping, but let focus-ring paint outside while focused. */\n &:focus-within {\n overflow: visible;\n z-index: 1;\n }\n`;\n\ntype StyledSeparatorProps = WithTheme<{\n $gapColor?: string;\n $isHidden?: boolean;\n}>;\n\nexport const StyledSeparator = styled.span<StyledSeparatorProps>`\n align-self: stretch;\n background: ${({ $gapColor, theme }) => $gapColor || theme?.['cw-body-background'] || '#fff'};\n flex: 0 0 ${({ $isHidden }) => ($isHidden ? 0 : 1)}px;\n opacity: ${({ $isHidden }) => ($isHidden ? 0 : 1)};\n overflow: hidden;\n transition:\n flex-basis 0.2s ease,\n opacity 0.2s ease,\n width 0.2s ease;\n width: ${({ $isHidden }) => ($isHidden ? 0 : 1)}px;\n`;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAuC,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGhC,MAAMG,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,GAAG,IAAAE,yBAAM,EAACC,aAAM,CAACC,GAAG,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAOM,MAAMC,eAAe,GAAAJ,OAAA,CAAAI,eAAA,GAAGH,yBAAM,CAACI,IAA0B;AAChE;AACA,kBAAkB,CAAC;EAAEC,SAAS;EAAEC;AAAM,CAAC,KAAKD,SAAS,KAAIC,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAG,oBAAoB,CAAC,KAAI,MAAM;AAChG,gBAAgB,CAAC;EAAEC;AAAU,CAAC,KAAMA,SAAS,GAAG,CAAC,GAAG,CAAE;AACtD,eAAe,CAAC;EAAEA;AAAU,CAAC,KAAMA,SAAS,GAAG,CAAC,GAAG,CAAE;AACrD;AACA;AACA;AACA;AACA;AACA,aAAa,CAAC;EAAEA;AAAU,CAAC,KAAMA,SAAS,GAAG,CAAC,GAAG,CAAE;AACnD,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"MultiActionButton.styles.js","names":["_react","require","_styledComponents","_interopRequireDefault","e","__esModule","default","StyledMultiActionButton","exports","styled","motion","div","StyledSeparator","span","$gapColor","theme","$isHidden"],"sources":["../../../../src/components/multi-action-button/MultiActionButton.styles.ts"],"sourcesContent":["import { motion } from 'motion/react';\nimport styled from 'styled-components';\nimport type { WithTheme } from '../color-scheme-provider/ColorSchemeProvider';\n\nexport const StyledMultiActionButton = styled(motion.div)`\n align-items: stretch;\n display: inline-flex;\n max-width: 100%;\n min-width: 0;\n overflow: hidden;\n position: relative;\n transition: width 0.2s ease;\n width: fit-content;\n`;\n\ntype StyledSeparatorProps = WithTheme<{\n $gapColor?: string;\n $isHidden?: boolean;\n}>;\n\nexport const StyledSeparator = styled.span<StyledSeparatorProps>`\n align-self: stretch;\n background: ${({ $gapColor, theme }) => $gapColor || theme?.['cw-body-background'] || '#fff'};\n flex: 0 0 ${({ $isHidden }) => ($isHidden ? 0 : 1)}px;\n opacity: ${({ $isHidden }) => ($isHidden ? 0 : 1)};\n overflow: hidden;\n transition:\n flex-basis 0.2s ease,\n opacity 0.2s ease,\n width 0.2s ease;\n width: ${({ $isHidden }) => ($isHidden ? 0 : 1)}px;\n`;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAuC,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGhC,MAAMG,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,GAAG,IAAAE,yBAAM,EAACC,aAAM,CAACC,GAAG,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAOM,MAAMC,eAAe,GAAAJ,OAAA,CAAAI,eAAA,GAAGH,yBAAM,CAACI,IAA0B;AAChE;AACA,kBAAkB,CAAC;EAAEC,SAAS;EAAEC;AAAM,CAAC,KAAKD,SAAS,KAAIC,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAG,oBAAoB,CAAC,KAAI,MAAM;AAChG,gBAAgB,CAAC;EAAEC;AAAU,CAAC,KAAMA,SAAS,GAAG,CAAC,GAAG,CAAE;AACtD,eAAe,CAAC;EAAEA;AAAU,CAAC,KAAMA,SAAS,GAAG,CAAC,GAAG,CAAE;AACrD;AACA;AACA;AACA;AACA;AACA,aAAa,CAAC;EAAEA;AAAU,CAAC,KAAMA,SAAS,GAAG,CAAC,GAAG,CAAE;AACnD,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"MultiActionButton.types.js","names":["MultiActionButtonStatusType","exports","MultiActionButtonHeight"],"sources":["../../../../src/components/multi-action-button/MultiActionButton.types.ts"],"sourcesContent":["import type { MouseEvent, ReactElement, ReactNode } from 'react';\nimport type { MotionValue } from 'motion/react';\nimport type { ContextMenuItem } from '../context-menu/ContextMenu.types';\n\n/**\n * Supported status types for the multi action button.\n */\nexport enum MultiActionButtonStatusType {\n /**\n * Pulsing background effect.\n * @description Applies a subtle animated overlay on the action background to draw attention.\n * This is intended for temporary states like recording or live activity indicators.\n */\n Pulse = 'pulse',\n}\n\n/**\n * Supported heights for the multi action button.\n */\nexport enum MultiActionButtonHeight {\n /**\n * Medium height (42px).\n */\n Medium = 42,\n /**\n * Large height (48px).\n */\n Large = 48,\n}\n\n/**\n * Minimal status configuration for an action.\n */\nexport type MultiActionButtonActionStatus = {\n /**\n * Optional pulse colors for the animation.\n * @description Defines the two colors for the pulsing background animation. If not provided, defaults to ['#A50000', '#630000'].\n * @optional\n */\n pulseColors?: [string, string];\n /**\n * Status type to apply.\n * @description Selects the visual emphasis type applied to the action. The component currently\n * supports a pulsing overlay, and additional types may be added later.\n * @optional\n */\n type?: MultiActionButtonStatusType;\n};\n\n/**\n * Event payload emitted on action click.\n */\nexport type MultiActionButtonActionEvent = {\n /**\n * Which action was clicked.\n * @description Indicates whether the primary or secondary action fired. This is helpful when\n * sharing a handler between both actions.\n */\n action: 'primary' | 'secondary';\n /**\n * Original click event.\n * @description Useful to access modifier keys, prevent default, or stop propagation.\n */\n event: MouseEvent<HTMLButtonElement>;\n /**\n * Whether the secondary action is currently extended.\n * @description Useful for flows that need to distinguish between a collapsed and expanded\n * secondary action, especially on touch devices.\n */\n isExtended: boolean;\n /**\n * Whether the device is considered touch.\n * @description Derived from pointer capabilities and used to decide between hover and click behavior.\n */\n isTouch: boolean;\n};\n\n/**\n * Configuration for a single action.\n */\nexport type MultiActionButtonAction = {\n /**\n * Optional background color for this action.\n * @description Overrides the component-level background color for this specific action.\n * If omitted, `MultiActionButton.backgroundColor` is used as fallback.\n * @optional\n */\n backgroundColor?: string;\n /**\n * Optional color for the icon and label.\n * @description Overrides the default text/icon color. If omitted, the current theme text color is used.\n * @optional\n */\n color?: string;\n /**\n * The icon for the action.\n * @description Can be a FontAwesome class string (e.g., 'fa fa-microphone') or a custom React element.\n * The icon is always rendered inside a fixed-size slot to keep alignment stable.\n */\n icon: string | ReactElement;\n /**\n * Whether the action is disabled.\n * @description Disabled actions do not respond to hover or click and are visually dimmed.\n * @optional\n */\n isDisabled?: boolean;\n /**\n * Optional reason shown in a tooltip when the action is disabled.\n * @description Use this to explain why the action is currently unavailable.\n * @optional\n */\n disabledReason?: string;\n /**\n * The optional label for the action.\n * @description The label is shown next to the icon and will be truncated with ellipsis when\n * there is not enough horizontal space.\n * @optional\n */\n label: ReactNode;\n /**\n * Click handler for the action.\n * @description Receives a payload that includes the action type, extension state, and device info.\n * This allows external logic to decide whether the click should trigger an action immediately.\n * @optional\n */\n onClick?: (info: MultiActionButtonActionEvent) => void;\n /**\n * Status effect configuration for the action.\n * @description Controls optional visual emphasis like pulsing, without changing layout or sizing.\n * @optional\n */\n status?: MultiActionButtonActionStatus;\n};\n\nexport type MultiActionButtonSecondaryContextMenu = ContextMenuItem[];\n\n/**\n * Props for the MultiActionButton component.\n */\nexport type MultiActionButtonProps = {\n /**\n * Optional background color for both actions.\n * @description Overrides the default background color for the action buttons. This is useful\n * when the button is used on different backgrounds or when a specific brand color is needed.\n * If omitted, the primary color from the theme is used.\n * @default theme.primary\n * @optional\n */\n backgroundColor?: string;\n /**\n * Additional class name for the wrapper element.\n * @description Useful for custom styling or testing hooks.\n * @optional\n */\n className?: string;\n /**\n * Timeout in ms before the secondary action collapses after a click.\n * @description Set to 0 to keep the secondary action extended until the user collapses it.\n * @example\n * <MultiActionButton\n * primaryAction={primaryAction}\n * secondaryAction={secondaryAction}\n * extendedTimeoutMs={0}\n * />\n * @default 3000\n * @optional\n */\n extendedTimeoutMs?: number;\n /**\n * Height of the button.\n * @description Controls the height of the button. Use values from MultiActionButtonHeight enum or custom number.\n * @default MultiActionButtonHeight.Medium\n * @optional\n */\n height?: number;\n /**\n * Optional color for the 1px separator line between actions.\n * @description Defaults to theme.cw-body-background and falls back to #fff if not available.\n * @optional\n */\n gapColor?: string;\n /**\n * Whether the button is collapsed to a single icon.\n * @description When collapsed, only the primary icon is shown and the overall width shrinks to a circle.\n * Use this to provide compact states or toolbar modes.\n * @default false\n * @optional\n */\n isCollapsed?: boolean;\n /**\n * Whether the whole control is disabled.\n * @description Disables interactions for both actions, including hover expansion and clicks.\n * @default false\n * @optional\n */\n isDisabled?: boolean;\n /**\n * Primary action configuration.\n * @description Required action shown on the left side (or as the only action when no secondary is provided).\n */\n primaryAction: MultiActionButtonAction;\n /**\n * Secondary action configuration.\n * @description Optional action shown on the right side. When present, it can expand on hover or click.\n * @optional\n */\n secondaryAction?: MultiActionButtonAction;\n /**\n * Context menu rendered as the secondary action.\n * @description When the list contains entries, the secondary slot renders a fixed down-arrow\n * trigger that opens a ContextMenu. If the list is empty or undefined, no context menu trigger\n * is shown and `secondaryAction` can be used as usual.\n * @optional\n */\n secondaryContextMenu?: MultiActionButtonSecondaryContextMenu;\n /**\n * Whether the button should collapse automatically based on the available width.\n * @description When enabled, the control switches from the default layout to an icon-only\n * layout and finally to a primary-only icon layout as space becomes tighter.\n * @default false\n * @optional\n */\n shouldAutoCollapse?: boolean;\n /**\n * Whether the button should take the full width of its parent.\n * @description When true, the control stretches to 100% width unless `width` is provided.\n * @optional\n */\n shouldUseFullWidth?: boolean;\n /**\n * Enables keyboard-only focus highlighting for interactive action buttons.\n * @description When enabled, focus ring styles are only shown for keyboard navigation.\n * @default false\n * @optional\n */\n shouldEnableKeyboardHighlighting?: boolean;\n /**\n * Optional width override for the whole button.\n * @description Can be a fixed number or a MotionValue for external animations. When omitted,\n * the width is driven by the content unless `shouldUseFullWidth` is true.\n * @optional\n */\n width?: number | MotionValue<number>;\n};\n"],"mappings":";;;;;;AAIA;AACA;AACA;AAFA,IAGYA,2BAA2B,GAAAC,OAAA,CAAAD,2BAAA,0BAA3BA,2BAA2B;EACnC;AACJ;AACA;AACA;AACA;EALYA,2BAA2B;EAAA,OAA3BA,2BAA2B;AAAA;AASvC;AACA;AACA;AAFA,IAGYE,uBAAuB,GAAAD,OAAA,CAAAC,uBAAA,0BAAvBA,uBAAuB;EAC/B;AACJ;AACA;EAHYA,uBAAuB,CAAvBA,uBAAuB;EAK/B;AACJ;AACA;EAPYA,uBAAuB,CAAvBA,uBAAuB;EAAA,OAAvBA,uBAAuB;AAAA;AAWnC;AACA;AACA;AAiBA;AACA;AACA;AA0BA;AACA;AACA;AAyDA;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"file":"MultiActionButton.types.js","names":["MultiActionButtonStatusType","exports","MultiActionButtonHeight"],"sources":["../../../../src/components/multi-action-button/MultiActionButton.types.ts"],"sourcesContent":["import type { MouseEvent, ReactElement, ReactNode } from 'react';\nimport type { MotionValue } from 'motion/react';\nimport type { ContextMenuItem } from '../context-menu/ContextMenu.types';\n\n/**\n * Supported status types for the multi action button.\n */\nexport enum MultiActionButtonStatusType {\n /**\n * Pulsing background effect.\n * @description Applies a subtle animated overlay on the action background to draw attention.\n * This is intended for temporary states like recording or live activity indicators.\n */\n Pulse = 'pulse',\n}\n\n/**\n * Supported heights for the multi action button.\n */\nexport enum MultiActionButtonHeight {\n /**\n * Medium height (42px).\n */\n Medium = 42,\n /**\n * Large height (48px).\n */\n Large = 48,\n}\n\n/**\n * Minimal status configuration for an action.\n */\nexport type MultiActionButtonActionStatus = {\n /**\n * Optional pulse colors for the animation.\n * @description Defines the two colors for the pulsing background animation. If not provided, defaults to ['#A50000', '#630000'].\n * @optional\n */\n pulseColors?: [string, string];\n /**\n * Status type to apply.\n * @description Selects the visual emphasis type applied to the action. The component currently\n * supports a pulsing overlay, and additional types may be added later.\n * @optional\n */\n type?: MultiActionButtonStatusType;\n};\n\n/**\n * Event payload emitted on action click.\n */\nexport type MultiActionButtonActionEvent = {\n /**\n * Which action was clicked.\n * @description Indicates whether the primary or secondary action fired. This is helpful when\n * sharing a handler between both actions.\n */\n action: 'primary' | 'secondary';\n /**\n * Original click event.\n * @description Useful to access modifier keys, prevent default, or stop propagation.\n */\n event: MouseEvent<HTMLButtonElement>;\n /**\n * Whether the secondary action is currently extended.\n * @description Useful for flows that need to distinguish between a collapsed and expanded\n * secondary action, especially on touch devices.\n */\n isExtended: boolean;\n /**\n * Whether the device is considered touch.\n * @description Derived from pointer capabilities and used to decide between hover and click behavior.\n */\n isTouch: boolean;\n};\n\n/**\n * Configuration for a single action.\n */\nexport type MultiActionButtonAction = {\n /**\n * Optional background color for this action.\n * @description Overrides the component-level background color for this specific action.\n * If omitted, `MultiActionButton.backgroundColor` is used as fallback.\n * @optional\n */\n backgroundColor?: string;\n /**\n * Optional color for the icon and label.\n * @description Overrides the default text/icon color. If omitted, the current theme text color is used.\n * @optional\n */\n color?: string;\n /**\n * The icon for the action.\n * @description Can be a FontAwesome class string (e.g., 'fa fa-microphone') or a custom React element.\n * The icon is always rendered inside a fixed-size slot to keep alignment stable.\n */\n icon: string | ReactElement;\n /**\n * Whether the action is disabled.\n * @description Disabled actions do not respond to hover or click and are visually dimmed.\n * @optional\n */\n isDisabled?: boolean;\n /**\n * Optional reason shown in a tooltip when the action is disabled.\n * @description Use this to explain why the action is currently unavailable.\n * @optional\n */\n disabledReason?: string;\n /**\n * The optional label for the action.\n * @description The label is shown next to the icon and will be truncated with ellipsis when\n * there is not enough horizontal space.\n * @optional\n */\n label: ReactNode;\n /**\n * Click handler for the action.\n * @description Receives a payload that includes the action type, extension state, and device info.\n * This allows external logic to decide whether the click should trigger an action immediately.\n * @optional\n */\n onClick?: (info: MultiActionButtonActionEvent) => void;\n /**\n * Status effect configuration for the action.\n * @description Controls optional visual emphasis like pulsing, without changing layout or sizing.\n * @optional\n */\n status?: MultiActionButtonActionStatus;\n};\n\nexport type MultiActionButtonSecondaryContextMenu = ContextMenuItem[];\n\n/**\n * Props for the MultiActionButton component.\n */\nexport type MultiActionButtonProps = {\n /**\n * Optional background color for both actions.\n * @description Overrides the default background color for the action buttons. This is useful\n * when the button is used on different backgrounds or when a specific brand color is needed.\n * If omitted, the primary color from the theme is used.\n * @default theme.primary\n * @optional\n */\n backgroundColor?: string;\n /**\n * Additional class name for the wrapper element.\n * @description Useful for custom styling or testing hooks.\n * @optional\n */\n className?: string;\n /**\n * Timeout in ms before the secondary action collapses after a click.\n * @description Set to 0 to keep the secondary action extended until the user collapses it.\n * @example\n * <MultiActionButton\n * primaryAction={primaryAction}\n * secondaryAction={secondaryAction}\n * extendedTimeoutMs={0}\n * />\n * @default 3000\n * @optional\n */\n extendedTimeoutMs?: number;\n /**\n * Height of the button.\n * @description Controls the height of the button. Use values from MultiActionButtonHeight enum or custom number.\n * @default MultiActionButtonHeight.Medium\n * @optional\n */\n height?: number;\n /**\n * Optional color for the 1px separator line between actions.\n * @description Defaults to theme.cw-body-background and falls back to #fff if not available.\n * @optional\n */\n gapColor?: string;\n /**\n * Whether the button is collapsed to a single icon.\n * @description When collapsed, only the primary icon is shown and the overall width shrinks to a circle.\n * Use this to provide compact states or toolbar modes.\n * @default false\n * @optional\n */\n isCollapsed?: boolean;\n /**\n * Whether the whole control is disabled.\n * @description Disables interactions for both actions, including hover expansion and clicks.\n * @default false\n * @optional\n */\n isDisabled?: boolean;\n /**\n * Primary action configuration.\n * @description Required action shown on the left side (or as the only action when no secondary is provided).\n */\n primaryAction: MultiActionButtonAction;\n /**\n * Secondary action configuration.\n * @description Optional action shown on the right side. When present, it can expand on hover or click.\n * @optional\n */\n secondaryAction?: MultiActionButtonAction;\n /**\n * Context menu rendered as the secondary action.\n * @description When the list contains entries, the secondary slot renders a fixed down-arrow\n * trigger that opens a ContextMenu. If the list is empty or undefined, no context menu trigger\n * is shown and `secondaryAction` can be used as usual.\n * @optional\n */\n secondaryContextMenu?: MultiActionButtonSecondaryContextMenu;\n /**\n * Whether the button should collapse automatically based on the available width.\n * @description When enabled, the control switches from the default layout to an icon-only\n * layout and finally to a primary-only icon layout as space becomes tighter.\n * @default false\n * @optional\n */\n shouldAutoCollapse?: boolean;\n /**\n * Whether the button should take the full width of its parent.\n * @description When true, the control stretches to 100% width unless `width` is provided.\n * @optional\n */\n shouldUseFullWidth?: boolean;\n /**\n * Optional width override for the whole button.\n * @description Can be a fixed number or a MotionValue for external animations. When omitted,\n * the width is driven by the content unless `shouldUseFullWidth` is true.\n * @optional\n */\n width?: number | MotionValue<number>;\n};\n"],"mappings":";;;;;;AAIA;AACA;AACA;AAFA,IAGYA,2BAA2B,GAAAC,OAAA,CAAAD,2BAAA,0BAA3BA,2BAA2B;EACnC;AACJ;AACA;AACA;AACA;EALYA,2BAA2B;EAAA,OAA3BA,2BAA2B;AAAA;AASvC;AACA;AACA;AAFA,IAGYE,uBAAuB,GAAAD,OAAA,CAAAC,uBAAA,0BAAvBA,uBAAuB;EAC/B;AACJ;AACA;EAHYA,uBAAuB,CAAvBA,uBAAuB;EAK/B;AACJ;AACA;EAPYA,uBAAuB,CAAvBA,uBAAuB;EAAA,OAAvBA,uBAAuB;AAAA;AAWnC;AACA;AACA;AAiBA;AACA;AACA;AA0BA;AACA;AACA;AAyDA;AACA;AACA","ignoreList":[]}
@@ -32,12 +32,9 @@ const ActionButton = ({
32
32
  onClick,
33
33
  onMouseEnter,
34
34
  onMouseLeave,
35
- onFocus,
36
- onBlur,
37
35
  showLabel,
38
36
  shouldUseContentWidth,
39
- height,
40
- shouldShowKeyboardHighlighting = false
37
+ height
41
38
  }) => {
42
39
  var _action$disabledReaso, _action$status, _action$status2;
43
40
  const isPrimary = actionType === 'primary';
@@ -94,12 +91,9 @@ const ActionButton = ({
94
91
  $height: height,
95
92
  $statusType: (_action$status2 = action.status) === null || _action$status2 === void 0 ? void 0 : _action$status2.type,
96
93
  $shouldUseContentWidth: shouldUseContentWidth,
97
- $shouldShowKeyboardHighlighting: shouldShowKeyboardHighlighting,
98
94
  onClick: onClick,
99
95
  onMouseEnter: onMouseEnter,
100
96
  onMouseLeave: onMouseLeave,
101
- onFocus: onFocus,
102
- onBlur: onBlur,
103
97
  type: "button"
104
98
  }, shouldShowDisabledReason && disabledReason ? /*#__PURE__*/_react2.default.createElement(_Tooltip.default, {
105
99
  alignment: _popup.PopupAlignment.BottomRight,