@muraldevkit/ui-toolkit 4.72.0 → 4.73.0-dev-t0WE.1

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 (273) hide show
  1. package/dist/cjs/components/avatar/MrlAvatarButton/MrlAvatarButton.js +8 -1
  2. package/dist/cjs/components/avatar/MrlAvatarButton/MrlAvatarButton.js.map +1 -1
  3. package/dist/cjs/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.js +14 -4
  4. package/dist/cjs/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.js.map +1 -1
  5. package/dist/cjs/components/button/MrlAnimatedIconButton/MrlAnimatedIconButton.js +8 -1
  6. package/dist/cjs/components/button/MrlAnimatedIconButton/MrlAnimatedIconButton.js.map +1 -1
  7. package/dist/cjs/components/button/MrlButton/MrlButton.js +3 -3
  8. package/dist/cjs/components/button/MrlButton/MrlButton.js.map +1 -1
  9. package/dist/cjs/components/button/MrlIconButton/MrlIconButton.js +8 -1
  10. package/dist/cjs/components/button/MrlIconButton/MrlIconButton.js.map +1 -1
  11. package/dist/cjs/components/button/MrlProcessingButton/MrlProcessingButton.js +21 -2
  12. package/dist/cjs/components/button/MrlProcessingButton/MrlProcessingButton.js.map +1 -1
  13. package/dist/cjs/components/callout/MrlCallout/MrlCallout.js +36 -3
  14. package/dist/cjs/components/callout/MrlCallout/MrlCallout.js.map +1 -1
  15. package/dist/cjs/components/filter/MrlFilter/MrlFilter.js +18 -2
  16. package/dist/cjs/components/filter/MrlFilter/MrlFilter.js.map +1 -1
  17. package/dist/cjs/components/filter/MrlFilterItem/MrlFilterItem.js +11 -1
  18. package/dist/cjs/components/filter/MrlFilterItem/MrlFilterItem.js.map +1 -1
  19. package/dist/cjs/components/form/checkbox/MrlCheckbox/MrlCheckbox.js +17 -1
  20. package/dist/cjs/components/form/checkbox/MrlCheckbox/MrlCheckbox.js.map +1 -1
  21. package/dist/cjs/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.js +24 -1
  22. package/dist/cjs/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.js.map +1 -1
  23. package/dist/cjs/components/form/date-picker/MrlDatePicker.js +17 -2
  24. package/dist/cjs/components/form/date-picker/MrlDatePicker.js.map +1 -1
  25. package/dist/cjs/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.js +11 -2
  26. package/dist/cjs/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.js.map +1 -1
  27. package/dist/cjs/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.js +8 -1
  28. package/dist/cjs/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.js.map +1 -1
  29. package/dist/cjs/components/form/radio/MrlRadioButton/MrlRadioButton.js +19 -1
  30. package/dist/cjs/components/form/radio/MrlRadioButton/MrlRadioButton.js.map +1 -1
  31. package/dist/cjs/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.js +19 -1
  32. package/dist/cjs/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.js.map +1 -1
  33. package/dist/cjs/components/form/select/MrlCreatableSelect/MrlCreatableSelect.js +42 -2
  34. package/dist/cjs/components/form/select/MrlCreatableSelect/MrlCreatableSelect.js.map +1 -1
  35. package/dist/cjs/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.js +42 -2
  36. package/dist/cjs/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.js.map +1 -1
  37. package/dist/cjs/components/form/select/MrlMultiSelect/MrlMultiSelect.js +34 -2
  38. package/dist/cjs/components/form/select/MrlMultiSelect/MrlMultiSelect.js.map +1 -1
  39. package/dist/cjs/components/form/select/MrlSelect/MrlSelect.js +34 -2
  40. package/dist/cjs/components/form/select/MrlSelect/MrlSelect.js.map +1 -1
  41. package/dist/cjs/components/form/switch/MrlSwitch/MrlSwitch.js +14 -2
  42. package/dist/cjs/components/form/switch/MrlSwitch/MrlSwitch.js.map +1 -1
  43. package/dist/cjs/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.js +10 -1
  44. package/dist/cjs/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.js.map +1 -1
  45. package/dist/cjs/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.js +20 -3
  46. package/dist/cjs/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.js.map +1 -1
  47. package/dist/cjs/components/form/text-input/MrlTextInput/MrlTextInput.js +20 -3
  48. package/dist/cjs/components/form/text-input/MrlTextInput/MrlTextInput.js.map +1 -1
  49. package/dist/cjs/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.js +20 -3
  50. package/dist/cjs/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.js.map +1 -1
  51. package/dist/cjs/components/form/textarea/MrlTextarea/MrlTextarea.js +38 -1
  52. package/dist/cjs/components/form/textarea/MrlTextarea/MrlTextarea.js.map +1 -1
  53. package/dist/cjs/components/layout/MrlSidebar/MrlSidebar.js +12 -2
  54. package/dist/cjs/components/layout/MrlSidebar/MrlSidebar.js.map +1 -1
  55. package/dist/cjs/components/link/MrlLink/MrlLink.js +21 -2
  56. package/dist/cjs/components/link/MrlLink/MrlLink.js.map +1 -1
  57. package/dist/cjs/components/link/MrlLinkButton/MrlLinkButton.js +12 -1
  58. package/dist/cjs/components/link/MrlLinkButton/MrlLinkButton.js.map +1 -1
  59. package/dist/cjs/components/menu/MrlMenu/MrlMenu.js +20 -1
  60. package/dist/cjs/components/menu/MrlMenu/MrlMenu.js.map +1 -1
  61. package/dist/cjs/components/menu/MrlMenuItem/MrlMenuItem.js +18 -1
  62. package/dist/cjs/components/menu/MrlMenuItem/MrlMenuItem.js.map +1 -1
  63. package/dist/cjs/components/menu/MrlMenuItemLink/MrlMenuItemLink.js +10 -1
  64. package/dist/cjs/components/menu/MrlMenuItemLink/MrlMenuItemLink.js.map +1 -1
  65. package/dist/cjs/components/modal/MrlModal/MrlModal.js +22 -1
  66. package/dist/cjs/components/modal/MrlModal/MrlModal.js.map +1 -1
  67. package/dist/cjs/components/notification/MrlBlockNotification/MrlBlockNotification.js +27 -1
  68. package/dist/cjs/components/notification/MrlBlockNotification/MrlBlockNotification.js.map +1 -1
  69. package/dist/cjs/components/notification/MrlToast/MrlToast.js +28 -3
  70. package/dist/cjs/components/notification/MrlToast/MrlToast.js.map +1 -1
  71. package/dist/cjs/components/pagination/MrlPaginationButton/MrlPaginationButton.js +18 -2
  72. package/dist/cjs/components/pagination/MrlPaginationButton/MrlPaginationButton.js.map +1 -1
  73. package/dist/cjs/components/panel/MrlPanel/MrlPanel.js +24 -4
  74. package/dist/cjs/components/panel/MrlPanel/MrlPanel.js.map +1 -1
  75. package/dist/cjs/components/popover/MrlPopover/MrlPopover.js +18 -1
  76. package/dist/cjs/components/popover/MrlPopover/MrlPopover.js.map +1 -1
  77. package/dist/cjs/components/table/MrlSmartTable/MrlSmartTable.js +31 -2
  78. package/dist/cjs/components/table/MrlSmartTable/MrlSmartTable.js.map +1 -1
  79. package/dist/cjs/components/table/MrlTableRow/MrlTableRow.js +13 -3
  80. package/dist/cjs/components/table/MrlTableRow/MrlTableRow.js.map +1 -1
  81. package/dist/cjs/components/tabs/MrlTab/MrlTab.js +10 -1
  82. package/dist/cjs/components/tabs/MrlTab/MrlTab.js.map +1 -1
  83. package/dist/cjs/components/tabs/MrlTabLink/MrlTabLink.js +10 -1
  84. package/dist/cjs/components/tabs/MrlTabLink/MrlTabLink.js.map +1 -1
  85. package/dist/cjs/components/toolbar/MrlToolbarButton/MrlToolbarButton.js +19 -3
  86. package/dist/cjs/components/toolbar/MrlToolbarButton/MrlToolbarButton.js.map +1 -1
  87. package/dist/cjs/components/tooltip/MrlTooltip/MrlTooltip.js +23 -1
  88. package/dist/cjs/components/tooltip/MrlTooltip/MrlTooltip.js.map +1 -1
  89. package/dist/cjs/hooks/useMrlAnalytics/useMrlAnalytics.js +7 -7
  90. package/dist/cjs/hooks/useMrlAnalytics/useMrlAnalytics.js.map +1 -1
  91. package/dist/cjs/version.js +1 -1
  92. package/dist/cjs/version.js.map +1 -1
  93. package/dist/components/avatar/MrlAvatarButton/MrlAvatarButton.d.ts +6 -1
  94. package/dist/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.d.ts +5 -0
  95. package/dist/components/button/MrlButton/MrlButton.d.ts +1 -1
  96. package/dist/components/button/MrlIconButton/MrlIconButton.d.ts +5 -0
  97. package/dist/components/callout/MrlCallout/MrlCallout.d.ts +7 -0
  98. package/dist/components/filter/MrlFilter/MrlFilter.d.ts +7 -0
  99. package/dist/components/filter/MrlFilterItem/MrlFilterItem.d.ts +7 -0
  100. package/dist/components/form/checkbox/MrlCheckbox/MrlCheckbox.d.ts +6 -1
  101. package/dist/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.d.ts +6 -1
  102. package/dist/components/form/date-picker/MrlDatePicker.d.ts +7 -0
  103. package/dist/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.d.ts +6 -1
  104. package/dist/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.d.ts +8 -1
  105. package/dist/components/form/radio/MrlRadioButton/MrlRadioButton.d.ts +6 -1
  106. package/dist/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.d.ts +6 -1
  107. package/dist/components/form/select/MrlCreatableSelect/MrlCreatableSelect.d.ts +7 -0
  108. package/dist/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.d.ts +7 -0
  109. package/dist/components/form/select/MrlMultiSelect/MrlMultiSelect.d.ts +7 -0
  110. package/dist/components/form/select/MrlSelect/MrlSelect.d.ts +7 -0
  111. package/dist/components/form/switch/MrlSwitch/MrlSwitch.d.ts +6 -1
  112. package/dist/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.d.ts +6 -1
  113. package/dist/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.d.ts +8 -0
  114. package/dist/components/form/text-input/MrlTextInput/MrlTextInput.d.ts +8 -0
  115. package/dist/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.d.ts +8 -0
  116. package/dist/components/form/textarea/MrlTextarea/MrlTextarea.d.ts +9 -1
  117. package/dist/components/layout/MrlSidebar/MrlSidebar.d.ts +8 -1
  118. package/dist/components/link/MrlLink/MrlLink.d.ts +6 -1
  119. package/dist/components/link/MrlLinkButton/MrlLinkButton.d.ts +5 -0
  120. package/dist/components/menu/MrlMenu/MrlMenu.d.ts +6 -1
  121. package/dist/components/menu/MrlMenuItem/MrlMenuItem.d.ts +6 -1
  122. package/dist/components/menu/MrlMenuItemLink/MrlMenuItemLink.d.ts +6 -1
  123. package/dist/components/modal/MrlModal/MrlModal.d.ts +5 -0
  124. package/dist/components/notification/MrlBlockNotification/MrlBlockNotification.d.ts +7 -0
  125. package/dist/components/notification/MrlToast/MrlToast.d.ts +8 -1
  126. package/dist/components/pagination/MrlPaginationButton/MrlPaginationButton.d.ts +6 -1
  127. package/dist/components/panel/MrlPanel/MrlPanel.d.ts +8 -0
  128. package/dist/components/popover/MrlPopover/MrlPopover.d.ts +6 -1
  129. package/dist/components/table/MrlSmartTable/MrlSmartTable.d.ts +7 -0
  130. package/dist/components/table/MrlTableRow/MrlTableRow.d.ts +7 -0
  131. package/dist/components/tabs/MrlTab/MrlTab.d.ts +6 -1
  132. package/dist/components/tabs/MrlTabLink/MrlTabLink.d.ts +6 -1
  133. package/dist/components/toolbar/MrlToolbarButton/MrlToolbarButton.d.ts +5 -0
  134. package/dist/components/tooltip/MrlTooltip/MrlTooltip.d.ts +8 -0
  135. package/dist/contexts/MrlAnalyticsContext/types.d.ts +1 -1
  136. package/dist/esm/components/avatar/MrlAvatarButton/MrlAvatarButton.js +8 -1
  137. package/dist/esm/components/avatar/MrlAvatarButton/MrlAvatarButton.js.map +1 -1
  138. package/dist/esm/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.js +14 -4
  139. package/dist/esm/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.js.map +1 -1
  140. package/dist/esm/components/button/MrlAnimatedIconButton/MrlAnimatedIconButton.js +8 -1
  141. package/dist/esm/components/button/MrlAnimatedIconButton/MrlAnimatedIconButton.js.map +1 -1
  142. package/dist/esm/components/button/MrlButton/MrlButton.js +3 -3
  143. package/dist/esm/components/button/MrlButton/MrlButton.js.map +1 -1
  144. package/dist/esm/components/button/MrlIconButton/MrlIconButton.js +8 -1
  145. package/dist/esm/components/button/MrlIconButton/MrlIconButton.js.map +1 -1
  146. package/dist/esm/components/button/MrlProcessingButton/MrlProcessingButton.js +21 -2
  147. package/dist/esm/components/button/MrlProcessingButton/MrlProcessingButton.js.map +1 -1
  148. package/dist/esm/components/callout/MrlCallout/MrlCallout.js +36 -3
  149. package/dist/esm/components/callout/MrlCallout/MrlCallout.js.map +1 -1
  150. package/dist/esm/components/filter/MrlFilter/MrlFilter.js +18 -2
  151. package/dist/esm/components/filter/MrlFilter/MrlFilter.js.map +1 -1
  152. package/dist/esm/components/filter/MrlFilterItem/MrlFilterItem.js +11 -1
  153. package/dist/esm/components/filter/MrlFilterItem/MrlFilterItem.js.map +1 -1
  154. package/dist/esm/components/form/checkbox/MrlCheckbox/MrlCheckbox.js +17 -1
  155. package/dist/esm/components/form/checkbox/MrlCheckbox/MrlCheckbox.js.map +1 -1
  156. package/dist/esm/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.js +24 -1
  157. package/dist/esm/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.js.map +1 -1
  158. package/dist/esm/components/form/date-picker/MrlDatePicker.js +17 -2
  159. package/dist/esm/components/form/date-picker/MrlDatePicker.js.map +1 -1
  160. package/dist/esm/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.js +11 -2
  161. package/dist/esm/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.js.map +1 -1
  162. package/dist/esm/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.js +8 -1
  163. package/dist/esm/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.js.map +1 -1
  164. package/dist/esm/components/form/radio/MrlRadioButton/MrlRadioButton.js +19 -1
  165. package/dist/esm/components/form/radio/MrlRadioButton/MrlRadioButton.js.map +1 -1
  166. package/dist/esm/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.js +19 -1
  167. package/dist/esm/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.js.map +1 -1
  168. package/dist/esm/components/form/select/MrlCreatableSelect/MrlCreatableSelect.js +42 -2
  169. package/dist/esm/components/form/select/MrlCreatableSelect/MrlCreatableSelect.js.map +1 -1
  170. package/dist/esm/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.js +42 -2
  171. package/dist/esm/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.js.map +1 -1
  172. package/dist/esm/components/form/select/MrlMultiSelect/MrlMultiSelect.js +34 -2
  173. package/dist/esm/components/form/select/MrlMultiSelect/MrlMultiSelect.js.map +1 -1
  174. package/dist/esm/components/form/select/MrlSelect/MrlSelect.js +34 -2
  175. package/dist/esm/components/form/select/MrlSelect/MrlSelect.js.map +1 -1
  176. package/dist/esm/components/form/switch/MrlSwitch/MrlSwitch.js +14 -2
  177. package/dist/esm/components/form/switch/MrlSwitch/MrlSwitch.js.map +1 -1
  178. package/dist/esm/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.js +10 -1
  179. package/dist/esm/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.js.map +1 -1
  180. package/dist/esm/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.js +20 -3
  181. package/dist/esm/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.js.map +1 -1
  182. package/dist/esm/components/form/text-input/MrlTextInput/MrlTextInput.js +20 -3
  183. package/dist/esm/components/form/text-input/MrlTextInput/MrlTextInput.js.map +1 -1
  184. package/dist/esm/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.js +20 -3
  185. package/dist/esm/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.js.map +1 -1
  186. package/dist/esm/components/form/textarea/MrlTextarea/MrlTextarea.js +38 -1
  187. package/dist/esm/components/form/textarea/MrlTextarea/MrlTextarea.js.map +1 -1
  188. package/dist/esm/components/layout/MrlSidebar/MrlSidebar.js +12 -2
  189. package/dist/esm/components/layout/MrlSidebar/MrlSidebar.js.map +1 -1
  190. package/dist/esm/components/link/MrlLink/MrlLink.js +21 -2
  191. package/dist/esm/components/link/MrlLink/MrlLink.js.map +1 -1
  192. package/dist/esm/components/link/MrlLinkButton/MrlLinkButton.js +12 -1
  193. package/dist/esm/components/link/MrlLinkButton/MrlLinkButton.js.map +1 -1
  194. package/dist/esm/components/menu/MrlMenu/MrlMenu.js +20 -1
  195. package/dist/esm/components/menu/MrlMenu/MrlMenu.js.map +1 -1
  196. package/dist/esm/components/menu/MrlMenuItem/MrlMenuItem.js +18 -1
  197. package/dist/esm/components/menu/MrlMenuItem/MrlMenuItem.js.map +1 -1
  198. package/dist/esm/components/menu/MrlMenuItemLink/MrlMenuItemLink.js +10 -1
  199. package/dist/esm/components/menu/MrlMenuItemLink/MrlMenuItemLink.js.map +1 -1
  200. package/dist/esm/components/modal/MrlModal/MrlModal.js +22 -1
  201. package/dist/esm/components/modal/MrlModal/MrlModal.js.map +1 -1
  202. package/dist/esm/components/notification/MrlBlockNotification/MrlBlockNotification.js +27 -1
  203. package/dist/esm/components/notification/MrlBlockNotification/MrlBlockNotification.js.map +1 -1
  204. package/dist/esm/components/notification/MrlToast/MrlToast.js +28 -3
  205. package/dist/esm/components/notification/MrlToast/MrlToast.js.map +1 -1
  206. package/dist/esm/components/pagination/MrlPaginationButton/MrlPaginationButton.js +18 -2
  207. package/dist/esm/components/pagination/MrlPaginationButton/MrlPaginationButton.js.map +1 -1
  208. package/dist/esm/components/panel/MrlPanel/MrlPanel.js +24 -4
  209. package/dist/esm/components/panel/MrlPanel/MrlPanel.js.map +1 -1
  210. package/dist/esm/components/popover/MrlPopover/MrlPopover.js +18 -1
  211. package/dist/esm/components/popover/MrlPopover/MrlPopover.js.map +1 -1
  212. package/dist/esm/components/table/MrlSmartTable/MrlSmartTable.js +31 -2
  213. package/dist/esm/components/table/MrlSmartTable/MrlSmartTable.js.map +1 -1
  214. package/dist/esm/components/table/MrlTableRow/MrlTableRow.js +13 -3
  215. package/dist/esm/components/table/MrlTableRow/MrlTableRow.js.map +1 -1
  216. package/dist/esm/components/tabs/MrlTab/MrlTab.js +10 -1
  217. package/dist/esm/components/tabs/MrlTab/MrlTab.js.map +1 -1
  218. package/dist/esm/components/tabs/MrlTabLink/MrlTabLink.js +10 -1
  219. package/dist/esm/components/tabs/MrlTabLink/MrlTabLink.js.map +1 -1
  220. package/dist/esm/components/toolbar/MrlToolbarButton/MrlToolbarButton.js +19 -3
  221. package/dist/esm/components/toolbar/MrlToolbarButton/MrlToolbarButton.js.map +1 -1
  222. package/dist/esm/components/tooltip/MrlTooltip/MrlTooltip.js +23 -1
  223. package/dist/esm/components/tooltip/MrlTooltip/MrlTooltip.js.map +1 -1
  224. package/dist/esm/hooks/useMrlAnalytics/useMrlAnalytics.js +7 -7
  225. package/dist/esm/hooks/useMrlAnalytics/useMrlAnalytics.js.map +1 -1
  226. package/dist/esm/version.js +1 -1
  227. package/dist/esm/version.js.map +1 -1
  228. package/dist/hooks/useMrlAnalytics/useMrlAnalytics.d.ts +4 -4
  229. package/dist/types/components/avatar/MrlAvatarButton/MrlAvatarButton.d.ts +6 -1
  230. package/dist/types/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.d.ts +5 -0
  231. package/dist/types/components/button/MrlButton/MrlButton.d.ts +1 -1
  232. package/dist/types/components/button/MrlIconButton/MrlIconButton.d.ts +5 -0
  233. package/dist/types/components/callout/MrlCallout/MrlCallout.d.ts +7 -0
  234. package/dist/types/components/filter/MrlFilter/MrlFilter.d.ts +7 -0
  235. package/dist/types/components/filter/MrlFilterItem/MrlFilterItem.d.ts +7 -0
  236. package/dist/types/components/form/checkbox/MrlCheckbox/MrlCheckbox.d.ts +6 -1
  237. package/dist/types/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.d.ts +6 -1
  238. package/dist/types/components/form/date-picker/MrlDatePicker.d.ts +7 -0
  239. package/dist/types/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.d.ts +6 -1
  240. package/dist/types/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.d.ts +8 -1
  241. package/dist/types/components/form/radio/MrlRadioButton/MrlRadioButton.d.ts +6 -1
  242. package/dist/types/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.d.ts +6 -1
  243. package/dist/types/components/form/select/MrlCreatableSelect/MrlCreatableSelect.d.ts +7 -0
  244. package/dist/types/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.d.ts +7 -0
  245. package/dist/types/components/form/select/MrlMultiSelect/MrlMultiSelect.d.ts +7 -0
  246. package/dist/types/components/form/select/MrlSelect/MrlSelect.d.ts +7 -0
  247. package/dist/types/components/form/switch/MrlSwitch/MrlSwitch.d.ts +6 -1
  248. package/dist/types/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.d.ts +6 -1
  249. package/dist/types/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.d.ts +8 -0
  250. package/dist/types/components/form/text-input/MrlTextInput/MrlTextInput.d.ts +8 -0
  251. package/dist/types/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.d.ts +8 -0
  252. package/dist/types/components/form/textarea/MrlTextarea/MrlTextarea.d.ts +9 -1
  253. package/dist/types/components/layout/MrlSidebar/MrlSidebar.d.ts +8 -1
  254. package/dist/types/components/link/MrlLink/MrlLink.d.ts +6 -1
  255. package/dist/types/components/link/MrlLinkButton/MrlLinkButton.d.ts +5 -0
  256. package/dist/types/components/menu/MrlMenu/MrlMenu.d.ts +6 -1
  257. package/dist/types/components/menu/MrlMenuItem/MrlMenuItem.d.ts +6 -1
  258. package/dist/types/components/menu/MrlMenuItemLink/MrlMenuItemLink.d.ts +6 -1
  259. package/dist/types/components/modal/MrlModal/MrlModal.d.ts +5 -0
  260. package/dist/types/components/notification/MrlBlockNotification/MrlBlockNotification.d.ts +7 -0
  261. package/dist/types/components/notification/MrlToast/MrlToast.d.ts +8 -1
  262. package/dist/types/components/pagination/MrlPaginationButton/MrlPaginationButton.d.ts +6 -1
  263. package/dist/types/components/panel/MrlPanel/MrlPanel.d.ts +8 -0
  264. package/dist/types/components/popover/MrlPopover/MrlPopover.d.ts +6 -1
  265. package/dist/types/components/table/MrlSmartTable/MrlSmartTable.d.ts +7 -0
  266. package/dist/types/components/table/MrlTableRow/MrlTableRow.d.ts +7 -0
  267. package/dist/types/components/tabs/MrlTab/MrlTab.d.ts +6 -1
  268. package/dist/types/components/tabs/MrlTabLink/MrlTabLink.d.ts +6 -1
  269. package/dist/types/components/toolbar/MrlToolbarButton/MrlToolbarButton.d.ts +5 -0
  270. package/dist/types/components/tooltip/MrlTooltip/MrlTooltip.d.ts +8 -0
  271. package/dist/types/contexts/MrlAnalyticsContext/types.d.ts +1 -1
  272. package/dist/types/hooks/useMrlAnalytics/useMrlAnalytics.d.ts +4 -4
  273. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"MrlCreatableSelect.js","sources":["../../../../../../src/components/form/select/MrlCreatableSelect/MrlCreatableSelect.tsx"],"sourcesContent":["import * as React from 'react';\nimport CreatableSelect, { CreatableProps } from 'react-select/creatable';\nimport { GroupBase } from 'react-select';\nimport { getSelectStyles } from '../styles';\nimport {\n\tMrlSelectDropdownIndicator,\n\tMrlSelectOption,\n\tMrlSelectContainer,\n\tMrlSelectValueContainer,\n\tMrlSelectClearIndicator\n} from '../components';\nimport { SelectKind } from '../types';\nimport { closeMenuOnScroll } from '../utils/closeMenuOnScroll';\n\nexport interface MrlCreatableSelectProps<\n\tOption,\n\tIsMulti extends boolean = false,\n\tGroup extends GroupBase<Option> = GroupBase<Option>\n> extends CreatableProps<Option, IsMulti, Group> {\n\thasError?: boolean;\n\tisReadOnly?: boolean;\n\tkind?: SelectKind;\n\t/**\n\t * The data-qa prefix, it will be used to add data-qa attributes to different sub components of the MrlCreatableSelect component.\n\t *\n\t * Available subcomponents:\n\t * - container, <data-qa-prefix>-container\n\t * - value-container, <data-qa-prefix>-value-container\n\t */\n\t['data-qa']?: string;\n\tshowClearIndicatorIcon?: boolean;\n}\n\nexport const CREATABLE_SELECT_CLASS_NAME_PREFIX = 'MrlCreatableSelect';\nexport const CREATABLE_SELECT_MENU_LIST_CLASS_NAME = `${CREATABLE_SELECT_CLASS_NAME_PREFIX}__menu-list`;\n\n/**\n * MrlCreatableSelect component that supports creating extra options with user input. Option creating could be async too.\n * @param props - the component props\n * @returns the select component\n */\nexport function MrlCreatableSelect<T>(props: MrlCreatableSelectProps<T>): JSX.Element {\n\tconst { hasError, isReadOnly, kind = 'default', ...rest } = props;\n\n\tconst defaultStyles = React.useMemo(() => {\n\t\treturn getSelectStyles<T>(kind);\n\t}, [kind]);\n\n\tconst customComponents = React.useMemo(() => {\n\t\tconst defaults = {\n\t\t\tClearIndicator: MrlSelectClearIndicator<T>,\n\t\t\tDropdownIndicator: MrlSelectDropdownIndicator<T>,\n\t\t\tOption: MrlSelectOption<T>,\n\t\t\tSelectContainer: MrlSelectContainer<T>,\n\t\t\tValueContainer: MrlSelectValueContainer<T>\n\t\t};\n\n\t\tif (props.components) {\n\t\t\tObject.assign(defaults, props.components);\n\t\t}\n\n\t\treturn defaults;\n\t}, [props.components]);\n\n\treturn (\n\t\t<CreatableSelect\n\t\t\tclassNamePrefix={CREATABLE_SELECT_CLASS_NAME_PREFIX}\n\t\t\tcloseMenuOnScroll={closeMenuOnScroll(CREATABLE_SELECT_MENU_LIST_CLASS_NAME)}\n\t\t\tformatCreateLabel={() => `Press enter to add new option`}\n\t\t\t{...rest}\n\t\t\t{...props}\n\t\t\tstyles={{\n\t\t\t\t...defaultStyles,\n\t\t\t\t...props.styles\n\t\t\t}}\n\t\t\tcomponents={customComponents}\n\t\t\taria-invalid={hasError}\n\t\t\taria-readonly={isReadOnly}\n\t\t\tmenuIsOpen={isReadOnly ? false : props.menuIsOpen}\n\t\t\tbackspaceRemovesValue={!isReadOnly}\n\t\t\tisMulti={false}\n\t\t/>\n\t);\n}\n"],"names":["CREATABLE_SELECT_CLASS_NAME_PREFIX","CREATABLE_SELECT_MENU_LIST_CLASS_NAME","concat","MrlCreatableSelect","props","hasError","isReadOnly","_props$kind","kind","rest","_objectWithoutProperties","_excluded","defaultStyles","React","useMemo","getSelectStyles","customComponents","defaults","ClearIndicator","MrlSelectClearIndicator","DropdownIndicator","MrlSelectDropdownIndicator","Option","MrlSelectOption","SelectContainer","MrlSelectContainer","ValueContainer","MrlSelectValueContainer","components","Object","assign","createElement","CreatableSelect","_extends","classNamePrefix","closeMenuOnScroll","formatCreateLabel","styles","_objectSpread","menuIsOpen","backspaceRemovesValue","isMulti"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCO,IAAMA,kCAAkC,GAAG;IACrCC,qCAAqC,GAAA,EAAA,CAAAC,MAAA,CAAMF,kCAAkC,EAAA,aAAA;;AAE1F;AACA;AACA;AACA;AACA;AACO,SAASG,kBAAkBA,CAAIC,KAAiC,EAAe;AACrF,EAAA,IAAQC,QAAQ,GAA4CD,KAAK,CAAzDC,QAAQ;IAAEC,UAAU,GAAgCF,KAAK,CAA/CE,UAAU;IAAAC,WAAA,GAAgCH,KAAK,CAAnCI,IAAI;AAAJA,IAAAA,IAAI,GAAAD,WAAA,KAAA,MAAA,GAAG,SAAS,GAAAA,WAAA;AAAKE,IAAAA,IAAI,GAAAC,iDAAA,CAAKN,KAAK,EAAAO,SAAA,CAAA;AAEjE,EAAA,IAAMC,aAAa,GAAGC,gBAAK,CAACC,OAAO,CAAC,MAAM;IACzC,OAAOC,qBAAe,CAAIP,IAAI,CAAC;AAChC,EAAA,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;AAEV,EAAA,IAAMQ,gBAAgB,GAAGH,gBAAK,CAACC,OAAO,CAAC,MAAM;AAC5C,IAAA,IAAMG,QAAQ,GAAG;AAChBC,MAAAA,cAAc,EAAEC,+CAA0B;AAC1CC,MAAAA,iBAAiB,EAAEC,qDAA6B;AAChDC,MAAAA,MAAM,EAAEC,+BAAkB;AAC1BC,MAAAA,eAAe,EAAEC,qCAAqB;AACtCC,MAAAA,cAAc,EAAEC;KAChB;IAED,IAAIvB,KAAK,CAACwB,UAAU,EAAE;MACrBC,MAAM,CAACC,MAAM,CAACb,QAAQ,EAAEb,KAAK,CAACwB,UAAU,CAAC;AAC1C,IAAA;AAEA,IAAA,OAAOX,QAAQ;AAChB,EAAA,CAAC,EAAE,CAACb,KAAK,CAACwB,UAAU,CAAC,CAAC;AAEtB,EAAA,oBACCf,gBAAA,CAAAkB,aAAA,CAACC,gCAAe,EAAAC,iCAAA,CAAA;AACfC,IAAAA,eAAe,EAAElC,kCAAmC;AACpDmC,IAAAA,iBAAiB,EAAEA,mCAAiB,CAAClC,qCAAqC,CAAE;AAC5EmC,IAAAA,iBAAiB,EAAEA,MAAA;GAAsC,EACrD3B,IAAI,EACJL,KAAK,EAAA;IACTiC,MAAM,EAAAC,uCAAA,CAAAA,uCAAA,CAAA,EAAA,EACF1B,aAAa,CAAA,EACbR,KAAK,CAACiC,MAAM,CACd;AACFT,IAAAA,UAAU,EAAEZ,gBAAiB;AAC7B,IAAA,cAAA,EAAcX,QAAS;AACvB,IAAA,eAAA,EAAeC,UAAW;AAC1BiC,IAAAA,UAAU,EAAEjC,UAAU,GAAG,KAAK,GAAGF,KAAK,CAACmC,UAAW;IAClDC,qBAAqB,EAAE,CAAClC,UAAW;AACnCmC,IAAAA,OAAO,EAAE;AAAM,GAAA,CACf,CAAC;AAEJ;;;;;;"}
1
+ {"version":3,"file":"MrlCreatableSelect.js","sources":["../../../../../../src/components/form/select/MrlCreatableSelect/MrlCreatableSelect.tsx"],"sourcesContent":["import * as React from 'react';\nimport CreatableSelect, { CreatableProps } from 'react-select/creatable';\nimport { GroupBase } from 'react-select';\nimport { getSelectStyles } from '../styles';\nimport {\n\tMrlSelectDropdownIndicator,\n\tMrlSelectOption,\n\tMrlSelectContainer,\n\tMrlSelectValueContainer,\n\tMrlSelectClearIndicator\n} from '../components';\nimport { SelectKind } from '../types';\nimport { closeMenuOnScroll } from '../utils/closeMenuOnScroll';\nimport { useMrlTrackInteraction } from '../../../../hooks/useMrlAnalytics';\n\nexport interface MrlCreatableSelectProps<\n\tOption,\n\tIsMulti extends boolean = false,\n\tGroup extends GroupBase<Option> = GroupBase<Option>\n> extends CreatableProps<Option, IsMulti, Group> {\n\thasError?: boolean;\n\tisReadOnly?: boolean;\n\tkind?: SelectKind;\n\t/**\n\t * The data-qa prefix, it will be used to add data-qa attributes to different sub components of the MrlCreatableSelect component.\n\t *\n\t * Available subcomponents:\n\t * - container, <data-qa-prefix>-container\n\t * - value-container, <data-qa-prefix>-value-container\n\t */\n\t['data-qa']?: string;\n\tshowClearIndicatorIcon?: boolean;\n\t/**\n\t * Enables interaction tracking for this select. Provide a stable, non-PII id\n\t * (e.g. 'template-tag-picker'). When omitted, the select emits no analytics.\n\t *\n\t * Note: option labels, values and created text are never emitted — only the kind of change.\n\t */\n\teventId?: string;\n}\n\nexport const CREATABLE_SELECT_CLASS_NAME_PREFIX = 'MrlCreatableSelect';\nexport const CREATABLE_SELECT_MENU_LIST_CLASS_NAME = `${CREATABLE_SELECT_CLASS_NAME_PREFIX}__menu-list`;\n\n/**\n * MrlCreatableSelect component that supports creating extra options with user input. Option creating could be async too.\n * @param props - the component props\n * @returns the select component\n */\nexport function MrlCreatableSelect<T>(props: MrlCreatableSelectProps<T>): JSX.Element {\n\tconst { hasError, isReadOnly, kind = 'default', ...rest } = props;\n\n\t// `eventId` is toolkit-only and must never reach react-select\n\tconst { eventId, ...selectProps } = props;\n\n\tconst trackInteraction = useMrlTrackInteraction('MrlCreatableSelect', eventId);\n\n\tconst defaultStyles = React.useMemo(() => {\n\t\treturn getSelectStyles<T>(kind);\n\t}, [kind]);\n\n\tconst customComponents = React.useMemo(() => {\n\t\tconst defaults = {\n\t\t\tClearIndicator: MrlSelectClearIndicator<T>,\n\t\t\tDropdownIndicator: MrlSelectDropdownIndicator<T>,\n\t\t\tOption: MrlSelectOption<T>,\n\t\t\tSelectContainer: MrlSelectContainer<T>,\n\t\t\tValueContainer: MrlSelectValueContainer<T>\n\t\t};\n\n\t\tif (props.components) {\n\t\t\tObject.assign(defaults, props.components);\n\t\t}\n\n\t\treturn defaults;\n\t}, [props.components]);\n\n\treturn (\n\t\t<CreatableSelect\n\t\t\tclassNamePrefix={CREATABLE_SELECT_CLASS_NAME_PREFIX}\n\t\t\tcloseMenuOnScroll={closeMenuOnScroll(CREATABLE_SELECT_MENU_LIST_CLASS_NAME)}\n\t\t\tformatCreateLabel={() => `Press enter to add new option`}\n\t\t\t{...rest}\n\t\t\t{...selectProps}\n\t\t\tstyles={{\n\t\t\t\t...defaultStyles,\n\t\t\t\t...props.styles\n\t\t\t}}\n\t\t\tcomponents={customComponents}\n\t\t\tonChange={(value, actionMeta) => {\n\t\t\t\t// only the kind of change is emitted; option labels/values may be free text.\n\t\t\t\ttrackInteraction({ action: 'change', metadata: { changeType: actionMeta.action } });\n\n\t\t\t\tprops.onChange?.(value, actionMeta);\n\t\t\t}}\n\t\t\tonCreateOption={(inputValue) => {\n\t\t\t\t// the created text is user input and is never emitted.\n\t\t\t\ttrackInteraction({ action: 'create' });\n\n\t\t\t\tprops.onCreateOption?.(inputValue);\n\t\t\t}}\n\t\t\tonMenuOpen={() => {\n\t\t\t\ttrackInteraction({ action: 'open' });\n\n\t\t\t\tprops.onMenuOpen?.();\n\t\t\t}}\n\t\t\tonMenuClose={() => {\n\t\t\t\ttrackInteraction({ action: 'close' });\n\n\t\t\t\tprops.onMenuClose?.();\n\t\t\t}}\n\t\t\taria-invalid={hasError}\n\t\t\taria-readonly={isReadOnly}\n\t\t\tmenuIsOpen={isReadOnly ? false : props.menuIsOpen}\n\t\t\tbackspaceRemovesValue={!isReadOnly}\n\t\t\tisMulti={false}\n\t\t/>\n\t);\n}\n"],"names":["CREATABLE_SELECT_CLASS_NAME_PREFIX","CREATABLE_SELECT_MENU_LIST_CLASS_NAME","concat","MrlCreatableSelect","props","hasError","isReadOnly","_props$kind","kind","rest","_objectWithoutProperties","_excluded","eventId","selectProps","_excluded2","trackInteraction","useMrlTrackInteraction","defaultStyles","React","useMemo","getSelectStyles","customComponents","defaults","ClearIndicator","MrlSelectClearIndicator","DropdownIndicator","MrlSelectDropdownIndicator","Option","MrlSelectOption","SelectContainer","MrlSelectContainer","ValueContainer","MrlSelectValueContainer","components","Object","assign","createElement","CreatableSelect","_extends","classNamePrefix","closeMenuOnScroll","formatCreateLabel","styles","_objectSpread","onChange","value","actionMeta","_props$onChange","action","metadata","changeType","call","onCreateOption","inputValue","_props$onCreateOption","onMenuOpen","_props$onMenuOpen","onMenuClose","_props$onMenuClose","menuIsOpen","backspaceRemovesValue","isMulti"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCO,IAAMA,kCAAkC,GAAG;IACrCC,qCAAqC,GAAA,EAAA,CAAAC,MAAA,CAAMF,kCAAkC,EAAA,aAAA;;AAE1F;AACA;AACA;AACA;AACA;AACO,SAASG,kBAAkBA,CAAIC,KAAiC,EAAe;AACrF,EAAA,IAAQC,QAAQ,GAA4CD,KAAK,CAAzDC,QAAQ;IAAEC,UAAU,GAAgCF,KAAK,CAA/CE,UAAU;IAAAC,WAAA,GAAgCH,KAAK,CAAnCI,IAAI;AAAJA,IAAAA,IAAI,GAAAD,WAAA,KAAA,MAAA,GAAG,SAAS,GAAAA,WAAA;AAAKE,IAAAA,IAAI,GAAAC,iDAAA,CAAKN,KAAK,EAAAO,SAAA,CAAA;;AAEjE;AACA,EAAA,IAAQC,OAAO,GAAqBR,KAAK,CAAjCQ,OAAO;AAAKC,IAAAA,WAAW,GAAAH,iDAAA,CAAKN,KAAK,EAAAU,UAAA,CAAA;AAEzC,EAAA,IAAMC,gBAAgB,GAAGC,sCAAsB,CAAC,oBAAoB,EAAEJ,OAAO,CAAC;AAE9E,EAAA,IAAMK,aAAa,GAAGC,gBAAK,CAACC,OAAO,CAAC,MAAM;IACzC,OAAOC,qBAAe,CAAIZ,IAAI,CAAC;AAChC,EAAA,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;AAEV,EAAA,IAAMa,gBAAgB,GAAGH,gBAAK,CAACC,OAAO,CAAC,MAAM;AAC5C,IAAA,IAAMG,QAAQ,GAAG;AAChBC,MAAAA,cAAc,EAAEC,+CAA0B;AAC1CC,MAAAA,iBAAiB,EAAEC,qDAA6B;AAChDC,MAAAA,MAAM,EAAEC,+BAAkB;AAC1BC,MAAAA,eAAe,EAAEC,qCAAqB;AACtCC,MAAAA,cAAc,EAAEC;KAChB;IAED,IAAI5B,KAAK,CAAC6B,UAAU,EAAE;MACrBC,MAAM,CAACC,MAAM,CAACb,QAAQ,EAAElB,KAAK,CAAC6B,UAAU,CAAC;AAC1C,IAAA;AAEA,IAAA,OAAOX,QAAQ;AAChB,EAAA,CAAC,EAAE,CAAClB,KAAK,CAAC6B,UAAU,CAAC,CAAC;AAEtB,EAAA,oBACCf,gBAAA,CAAAkB,aAAA,CAACC,gCAAe,EAAAC,iCAAA,CAAA;AACfC,IAAAA,eAAe,EAAEvC,kCAAmC;AACpDwC,IAAAA,iBAAiB,EAAEA,mCAAiB,CAACvC,qCAAqC,CAAE;AAC5EwC,IAAAA,iBAAiB,EAAEA,MAAA;GAAsC,EACrDhC,IAAI,EACJI,WAAW,EAAA;IACf6B,MAAM,EAAAC,uCAAA,CAAAA,uCAAA,CAAA,EAAA,EACF1B,aAAa,CAAA,EACbb,KAAK,CAACsC,MAAM,CACd;AACFT,IAAAA,UAAU,EAAEZ,gBAAiB;AAC7BuB,IAAAA,QAAQ,EAAEA,CAACC,KAAK,EAAEC,UAAU,KAAK;AAAA,MAAA,IAAAC,eAAA;AAChC;AACAhC,MAAAA,gBAAgB,CAAC;AAAEiC,QAAAA,MAAM,EAAE,QAAQ;AAAEC,QAAAA,QAAQ,EAAE;UAAEC,UAAU,EAAEJ,UAAU,CAACE;AAAO;AAAE,OAAC,CAAC;AAEnF,MAAA,CAAAD,eAAA,GAAA3C,KAAK,CAACwC,QAAQ,cAAAG,eAAA,KAAA,MAAA,GAAA,MAAA,GAAdA,eAAA,CAAAI,IAAA,CAAA/C,KAAK,EAAYyC,KAAK,EAAEC,UAAU,CAAC;IACpC,CAAE;IACFM,cAAc,EAAGC,UAAU,IAAK;AAAA,MAAA,IAAAC,qBAAA;AAC/B;AACAvC,MAAAA,gBAAgB,CAAC;AAAEiC,QAAAA,MAAM,EAAE;AAAS,OAAC,CAAC;AAEtC,MAAA,CAAAM,qBAAA,GAAAlD,KAAK,CAACgD,cAAc,MAAA,IAAA,IAAAE,qBAAA,KAAA,MAAA,GAAA,MAAA,GAApBA,qBAAA,CAAAH,IAAA,CAAA/C,KAAK,EAAkBiD,UAAU,CAAC;IACnC,CAAE;IACFE,UAAU,EAAEA,MAAM;AAAA,MAAA,IAAAC,iBAAA;AACjBzC,MAAAA,gBAAgB,CAAC;AAAEiC,QAAAA,MAAM,EAAE;AAAO,OAAC,CAAC;AAEpC,MAAA,CAAAQ,iBAAA,GAAApD,KAAK,CAACmD,UAAU,MAAA,IAAA,IAAAC,iBAAA,KAAA,MAAA,GAAA,MAAA,GAAhBA,iBAAA,CAAAL,IAAA,CAAA/C,KAAmB,CAAC;IACrB,CAAE;IACFqD,WAAW,EAAEA,MAAM;AAAA,MAAA,IAAAC,kBAAA;AAClB3C,MAAAA,gBAAgB,CAAC;AAAEiC,QAAAA,MAAM,EAAE;AAAQ,OAAC,CAAC;AAErC,MAAA,CAAAU,kBAAA,GAAAtD,KAAK,CAACqD,WAAW,MAAA,IAAA,IAAAC,kBAAA,KAAA,MAAA,GAAA,MAAA,GAAjBA,kBAAA,CAAAP,IAAA,CAAA/C,KAAoB,CAAC;IACtB,CAAE;AACF,IAAA,cAAA,EAAcC,QAAS;AACvB,IAAA,eAAA,EAAeC,UAAW;AAC1BqD,IAAAA,UAAU,EAAErD,UAAU,GAAG,KAAK,GAAGF,KAAK,CAACuD,UAAW;IAClDC,qBAAqB,EAAE,CAACtD,UAAW;AACnCuD,IAAAA,OAAO,EAAE;AAAM,GAAA,CACf,CAAC;AAEJ;;;;;;"}
@@ -5,6 +5,7 @@ var React = require('react');
5
5
  var CreatableSelect = require('react-select/creatable');
6
6
  var index = require('../styles/index.js');
7
7
  var closeMenuOnScroll = require('../utils/closeMenuOnScroll.js');
8
+ var useMrlAnalytics = require('../../../../hooks/useMrlAnalytics/useMrlAnalytics.js');
8
9
  var MrlSelectValueContainer = require('../components/MrlSelectValueContainer.js');
9
10
  var MrlSelectContainer = require('../components/MrlSelectContainer.js');
10
11
  var MrlSelectOption = require('../components/MrlSelectOption.js');
@@ -34,7 +35,8 @@ function _interopNamespace(e) {
34
35
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
35
36
  var CreatableSelect__default = /*#__PURE__*/_interopDefault(CreatableSelect);
36
37
 
37
- var _excluded = ["hasError", "isReadOnly", "kind"];
38
+ var _excluded = ["hasError", "isReadOnly", "kind"],
39
+ _excluded2 = ["eventId"];
38
40
  var MULTI_CREATABLE_SELECT_CLASS_NAME_PREFIX = 'MrlMultiCreatableSelect';
39
41
  var MULTI_CREATABLE_SELECT_MENU_LIST_CLASS_NAME = "".concat(MULTI_CREATABLE_SELECT_CLASS_NAME_PREFIX, "__menu-list");
40
42
 
@@ -49,6 +51,11 @@ function MrlMultiCreatableSelect(props) {
49
51
  _props$kind = props.kind,
50
52
  kind = _props$kind === void 0 ? 'default' : _props$kind,
51
53
  rest = _rollupPluginBabelHelpers.objectWithoutProperties(props, _excluded);
54
+
55
+ // `eventId` is toolkit-only and must never reach react-select
56
+ var eventId = props.eventId,
57
+ selectProps = _rollupPluginBabelHelpers.objectWithoutProperties(props, _excluded2);
58
+ var trackInteraction = useMrlAnalytics.useMrlTrackInteraction('MrlMultiCreatableSelect', eventId);
52
59
  var defaultStyles = React__namespace.useMemo(() => {
53
60
  return index.getSelectStyles(kind);
54
61
  }, [kind]);
@@ -69,9 +76,42 @@ function MrlMultiCreatableSelect(props) {
69
76
  classNamePrefix: MULTI_CREATABLE_SELECT_CLASS_NAME_PREFIX,
70
77
  closeMenuOnScroll: closeMenuOnScroll.closeMenuOnScroll(MULTI_CREATABLE_SELECT_MENU_LIST_CLASS_NAME),
71
78
  formatCreateLabel: () => "Press enter to add new option"
72
- }, rest, props, {
79
+ }, rest, selectProps, {
73
80
  styles: _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, defaultStyles), props.styles),
74
81
  components: customComponents,
82
+ onChange: (value, actionMeta) => {
83
+ var _props$onChange;
84
+ // only the kind of change is emitted; option labels/values may be free text.
85
+ trackInteraction({
86
+ action: 'change',
87
+ metadata: {
88
+ changeType: actionMeta.action
89
+ }
90
+ });
91
+ (_props$onChange = props.onChange) === null || _props$onChange === void 0 ? void 0 : _props$onChange.call(props, value, actionMeta);
92
+ },
93
+ onCreateOption: inputValue => {
94
+ var _props$onCreateOption;
95
+ // the created text is user input and is never emitted.
96
+ trackInteraction({
97
+ action: 'create'
98
+ });
99
+ (_props$onCreateOption = props.onCreateOption) === null || _props$onCreateOption === void 0 ? void 0 : _props$onCreateOption.call(props, inputValue);
100
+ },
101
+ onMenuOpen: () => {
102
+ var _props$onMenuOpen;
103
+ trackInteraction({
104
+ action: 'open'
105
+ });
106
+ (_props$onMenuOpen = props.onMenuOpen) === null || _props$onMenuOpen === void 0 ? void 0 : _props$onMenuOpen.call(props);
107
+ },
108
+ onMenuClose: () => {
109
+ var _props$onMenuClose;
110
+ trackInteraction({
111
+ action: 'close'
112
+ });
113
+ (_props$onMenuClose = props.onMenuClose) === null || _props$onMenuClose === void 0 ? void 0 : _props$onMenuClose.call(props);
114
+ },
75
115
  "aria-invalid": hasError,
76
116
  "aria-readonly": isReadOnly,
77
117
  menuIsOpen: isReadOnly ? false : props.menuIsOpen,
@@ -1 +1 @@
1
- {"version":3,"file":"MrlMultiCreatableSelect.js","sources":["../../../../../../src/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.tsx"],"sourcesContent":["import * as React from 'react';\nimport CreatableSelect, { CreatableProps } from 'react-select/creatable';\nimport { GroupBase } from 'react-select';\nimport { getSelectStyles } from '../styles';\nimport {\n\tMrlSelectDropdownIndicator,\n\tMrlSelectOption,\n\tMrlSelectContainer,\n\tMrlSelectValueContainer,\n\tMrlSelectClearIndicator\n} from '../components';\nimport { DefaultOption, SelectKind } from '../types';\nimport { closeMenuOnScroll } from '../utils/closeMenuOnScroll';\n\nexport interface MrlMultiCreatableSelectProps<\n\tOption,\n\tIsMulti extends boolean = true,\n\tGroup extends GroupBase<Option> = GroupBase<Option>\n> extends CreatableProps<Option, IsMulti, Group> {\n\thasError?: boolean;\n\tisReadOnly?: boolean;\n\tkind?: SelectKind;\n\t/**\n\t * The data-qa prefix, it will be used to add data-qa attributes to different sub components of the MrlMultiCreatableSelect component.\n\t *\n\t * Available subcomponents:\n\t * - container, <data-qa-prefix>-container\n\t * - value-container, <data-qa-prefix>-value-container\n\t */\n\t['data-qa']?: string;\n\tshowClearIndicatorIcon?: boolean;\n}\n\nexport const MULTI_CREATABLE_SELECT_CLASS_NAME_PREFIX = 'MrlMultiCreatableSelect';\nexport const MULTI_CREATABLE_SELECT_MENU_LIST_CLASS_NAME = `${MULTI_CREATABLE_SELECT_CLASS_NAME_PREFIX}__menu-list`;\n\n/**\n * MrlMultiCreatableSelect component that supports creating extra options with user input. Option creating could be async too.\n * @param props - the component props\n * @returns the select component\n */\nexport function MrlMultiCreatableSelect<\n\tT extends DefaultOption,\n\tIsMulti extends boolean = true,\n\tGroup extends GroupBase<T> = GroupBase<T>\n>(props: MrlMultiCreatableSelectProps<T, IsMulti, Group>): JSX.Element {\n\tconst { hasError, isReadOnly, kind = 'default', ...rest } = props;\n\n\tconst defaultStyles = React.useMemo(() => {\n\t\treturn getSelectStyles<T, IsMulti, Group>(kind);\n\t}, [kind]);\n\n\tconst customComponents = React.useMemo(() => {\n\t\tconst defaults = {\n\t\t\tClearIndicator: MrlSelectClearIndicator<T, IsMulti, Group>,\n\t\t\tDropdownIndicator: MrlSelectDropdownIndicator<T, IsMulti, Group>,\n\t\t\tOption: MrlSelectOption<T, IsMulti, Group>,\n\t\t\tSelectContainer: MrlSelectContainer<T, IsMulti, Group>,\n\t\t\tValueContainer: MrlSelectValueContainer<T, IsMulti, Group>\n\t\t};\n\n\t\tif (props.components) {\n\t\t\tObject.assign(defaults, props.components);\n\t\t}\n\n\t\treturn defaults;\n\t}, [props.components]);\n\n\treturn (\n\t\t<CreatableSelect\n\t\t\tclassNamePrefix={MULTI_CREATABLE_SELECT_CLASS_NAME_PREFIX}\n\t\t\tcloseMenuOnScroll={closeMenuOnScroll(MULTI_CREATABLE_SELECT_MENU_LIST_CLASS_NAME)}\n\t\t\tformatCreateLabel={() => `Press enter to add new option`}\n\t\t\t{...rest}\n\t\t\t{...props}\n\t\t\tstyles={{\n\t\t\t\t...defaultStyles,\n\t\t\t\t...props.styles\n\t\t\t}}\n\t\t\tcomponents={customComponents}\n\t\t\taria-invalid={hasError}\n\t\t\taria-readonly={isReadOnly}\n\t\t\tmenuIsOpen={isReadOnly ? false : props.menuIsOpen}\n\t\t\tbackspaceRemovesValue={!isReadOnly}\n\t\t\tisMulti={true as IsMulti}\n\t\t/>\n\t);\n}\n"],"names":["MULTI_CREATABLE_SELECT_CLASS_NAME_PREFIX","MULTI_CREATABLE_SELECT_MENU_LIST_CLASS_NAME","concat","MrlMultiCreatableSelect","props","hasError","isReadOnly","_props$kind","kind","rest","_objectWithoutProperties","_excluded","defaultStyles","React","useMemo","getSelectStyles","customComponents","defaults","ClearIndicator","MrlSelectClearIndicator","DropdownIndicator","MrlSelectDropdownIndicator","Option","MrlSelectOption","SelectContainer","MrlSelectContainer","ValueContainer","MrlSelectValueContainer","components","Object","assign","createElement","CreatableSelect","_extends","classNamePrefix","closeMenuOnScroll","formatCreateLabel","styles","_objectSpread","menuIsOpen","backspaceRemovesValue","isMulti"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCO,IAAMA,wCAAwC,GAAG;IAC3CC,2CAA2C,GAAA,EAAA,CAAAC,MAAA,CAAMF,wCAAwC,EAAA,aAAA;;AAEtG;AACA;AACA;AACA;AACA;AACO,SAASG,uBAAuBA,CAIrCC,KAAsD,EAAe;AACtE,EAAA,IAAQC,QAAQ,GAA4CD,KAAK,CAAzDC,QAAQ;IAAEC,UAAU,GAAgCF,KAAK,CAA/CE,UAAU;IAAAC,WAAA,GAAgCH,KAAK,CAAnCI,IAAI;AAAJA,IAAAA,IAAI,GAAAD,WAAA,KAAA,MAAA,GAAG,SAAS,GAAAA,WAAA;AAAKE,IAAAA,IAAI,GAAAC,iDAAA,CAAKN,KAAK,EAAAO,SAAA,CAAA;AAEjE,EAAA,IAAMC,aAAa,GAAGC,gBAAK,CAACC,OAAO,CAAC,MAAM;IACzC,OAAOC,qBAAe,CAAoBP,IAAI,CAAC;AAChD,EAAA,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;AAEV,EAAA,IAAMQ,gBAAgB,GAAGH,gBAAK,CAACC,OAAO,CAAC,MAAM;AAC5C,IAAA,IAAMG,QAAQ,GAAG;AAChBC,MAAAA,cAAc,EAAEC,+CAA0C;AAC1DC,MAAAA,iBAAiB,EAAEC,qDAA6C;AAChEC,MAAAA,MAAM,EAAEC,+BAAkC;AAC1CC,MAAAA,eAAe,EAAEC,qCAAqC;AACtDC,MAAAA,cAAc,EAAEC;KAChB;IAED,IAAIvB,KAAK,CAACwB,UAAU,EAAE;MACrBC,MAAM,CAACC,MAAM,CAACb,QAAQ,EAAEb,KAAK,CAACwB,UAAU,CAAC;AAC1C,IAAA;AAEA,IAAA,OAAOX,QAAQ;AAChB,EAAA,CAAC,EAAE,CAACb,KAAK,CAACwB,UAAU,CAAC,CAAC;AAEtB,EAAA,oBACCf,gBAAA,CAAAkB,aAAA,CAACC,gCAAe,EAAAC,iCAAA,CAAA;AACfC,IAAAA,eAAe,EAAElC,wCAAyC;AAC1DmC,IAAAA,iBAAiB,EAAEA,mCAAiB,CAAClC,2CAA2C,CAAE;AAClFmC,IAAAA,iBAAiB,EAAEA,MAAA;GAAsC,EACrD3B,IAAI,EACJL,KAAK,EAAA;IACTiC,MAAM,EAAAC,uCAAA,CAAAA,uCAAA,CAAA,EAAA,EACF1B,aAAa,CAAA,EACbR,KAAK,CAACiC,MAAM,CACd;AACFT,IAAAA,UAAU,EAAEZ,gBAAiB;AAC7B,IAAA,cAAA,EAAcX,QAAS;AACvB,IAAA,eAAA,EAAeC,UAAW;AAC1BiC,IAAAA,UAAU,EAAEjC,UAAU,GAAG,KAAK,GAAGF,KAAK,CAACmC,UAAW;IAClDC,qBAAqB,EAAE,CAAClC,UAAW;AACnCmC,IAAAA,OAAO,EAAE;AAAgB,GAAA,CACzB,CAAC;AAEJ;;;;;;"}
1
+ {"version":3,"file":"MrlMultiCreatableSelect.js","sources":["../../../../../../src/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.tsx"],"sourcesContent":["import * as React from 'react';\nimport CreatableSelect, { CreatableProps } from 'react-select/creatable';\nimport { GroupBase } from 'react-select';\nimport { getSelectStyles } from '../styles';\nimport {\n\tMrlSelectDropdownIndicator,\n\tMrlSelectOption,\n\tMrlSelectContainer,\n\tMrlSelectValueContainer,\n\tMrlSelectClearIndicator\n} from '../components';\nimport { DefaultOption, SelectKind } from '../types';\nimport { closeMenuOnScroll } from '../utils/closeMenuOnScroll';\nimport { useMrlTrackInteraction } from '../../../../hooks/useMrlAnalytics';\n\nexport interface MrlMultiCreatableSelectProps<\n\tOption,\n\tIsMulti extends boolean = true,\n\tGroup extends GroupBase<Option> = GroupBase<Option>\n> extends CreatableProps<Option, IsMulti, Group> {\n\thasError?: boolean;\n\tisReadOnly?: boolean;\n\tkind?: SelectKind;\n\t/**\n\t * The data-qa prefix, it will be used to add data-qa attributes to different sub components of the MrlMultiCreatableSelect component.\n\t *\n\t * Available subcomponents:\n\t * - container, <data-qa-prefix>-container\n\t * - value-container, <data-qa-prefix>-value-container\n\t */\n\t['data-qa']?: string;\n\tshowClearIndicatorIcon?: boolean;\n\t/**\n\t * Enables interaction tracking for this select. Provide a stable, non-PII id\n\t * (e.g. 'mural-tag-picker'). When omitted, the select emits no analytics.\n\t *\n\t * Note: option labels, values and created text are never emitted — only the kind of change.\n\t */\n\teventId?: string;\n}\n\nexport const MULTI_CREATABLE_SELECT_CLASS_NAME_PREFIX = 'MrlMultiCreatableSelect';\nexport const MULTI_CREATABLE_SELECT_MENU_LIST_CLASS_NAME = `${MULTI_CREATABLE_SELECT_CLASS_NAME_PREFIX}__menu-list`;\n\n/**\n * MrlMultiCreatableSelect component that supports creating extra options with user input. Option creating could be async too.\n * @param props - the component props\n * @returns the select component\n */\nexport function MrlMultiCreatableSelect<\n\tT extends DefaultOption,\n\tIsMulti extends boolean = true,\n\tGroup extends GroupBase<T> = GroupBase<T>\n>(props: MrlMultiCreatableSelectProps<T, IsMulti, Group>): JSX.Element {\n\tconst { hasError, isReadOnly, kind = 'default', ...rest } = props;\n\n\t// `eventId` is toolkit-only and must never reach react-select\n\tconst { eventId, ...selectProps } = props;\n\n\tconst trackInteraction = useMrlTrackInteraction('MrlMultiCreatableSelect', eventId);\n\n\tconst defaultStyles = React.useMemo(() => {\n\t\treturn getSelectStyles<T, IsMulti, Group>(kind);\n\t}, [kind]);\n\n\tconst customComponents = React.useMemo(() => {\n\t\tconst defaults = {\n\t\t\tClearIndicator: MrlSelectClearIndicator<T, IsMulti, Group>,\n\t\t\tDropdownIndicator: MrlSelectDropdownIndicator<T, IsMulti, Group>,\n\t\t\tOption: MrlSelectOption<T, IsMulti, Group>,\n\t\t\tSelectContainer: MrlSelectContainer<T, IsMulti, Group>,\n\t\t\tValueContainer: MrlSelectValueContainer<T, IsMulti, Group>\n\t\t};\n\n\t\tif (props.components) {\n\t\t\tObject.assign(defaults, props.components);\n\t\t}\n\n\t\treturn defaults;\n\t}, [props.components]);\n\n\treturn (\n\t\t<CreatableSelect\n\t\t\tclassNamePrefix={MULTI_CREATABLE_SELECT_CLASS_NAME_PREFIX}\n\t\t\tcloseMenuOnScroll={closeMenuOnScroll(MULTI_CREATABLE_SELECT_MENU_LIST_CLASS_NAME)}\n\t\t\tformatCreateLabel={() => `Press enter to add new option`}\n\t\t\t{...rest}\n\t\t\t{...selectProps}\n\t\t\tstyles={{\n\t\t\t\t...defaultStyles,\n\t\t\t\t...props.styles\n\t\t\t}}\n\t\t\tcomponents={customComponents}\n\t\t\tonChange={(value, actionMeta) => {\n\t\t\t\t// only the kind of change is emitted; option labels/values may be free text.\n\t\t\t\ttrackInteraction({ action: 'change', metadata: { changeType: actionMeta.action } });\n\n\t\t\t\tprops.onChange?.(value, actionMeta);\n\t\t\t}}\n\t\t\tonCreateOption={(inputValue) => {\n\t\t\t\t// the created text is user input and is never emitted.\n\t\t\t\ttrackInteraction({ action: 'create' });\n\n\t\t\t\tprops.onCreateOption?.(inputValue);\n\t\t\t}}\n\t\t\tonMenuOpen={() => {\n\t\t\t\ttrackInteraction({ action: 'open' });\n\n\t\t\t\tprops.onMenuOpen?.();\n\t\t\t}}\n\t\t\tonMenuClose={() => {\n\t\t\t\ttrackInteraction({ action: 'close' });\n\n\t\t\t\tprops.onMenuClose?.();\n\t\t\t}}\n\t\t\taria-invalid={hasError}\n\t\t\taria-readonly={isReadOnly}\n\t\t\tmenuIsOpen={isReadOnly ? false : props.menuIsOpen}\n\t\t\tbackspaceRemovesValue={!isReadOnly}\n\t\t\tisMulti={true as IsMulti}\n\t\t/>\n\t);\n}\n"],"names":["MULTI_CREATABLE_SELECT_CLASS_NAME_PREFIX","MULTI_CREATABLE_SELECT_MENU_LIST_CLASS_NAME","concat","MrlMultiCreatableSelect","props","hasError","isReadOnly","_props$kind","kind","rest","_objectWithoutProperties","_excluded","eventId","selectProps","_excluded2","trackInteraction","useMrlTrackInteraction","defaultStyles","React","useMemo","getSelectStyles","customComponents","defaults","ClearIndicator","MrlSelectClearIndicator","DropdownIndicator","MrlSelectDropdownIndicator","Option","MrlSelectOption","SelectContainer","MrlSelectContainer","ValueContainer","MrlSelectValueContainer","components","Object","assign","createElement","CreatableSelect","_extends","classNamePrefix","closeMenuOnScroll","formatCreateLabel","styles","_objectSpread","onChange","value","actionMeta","_props$onChange","action","metadata","changeType","call","onCreateOption","inputValue","_props$onCreateOption","onMenuOpen","_props$onMenuOpen","onMenuClose","_props$onMenuClose","menuIsOpen","backspaceRemovesValue","isMulti"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCO,IAAMA,wCAAwC,GAAG;IAC3CC,2CAA2C,GAAA,EAAA,CAAAC,MAAA,CAAMF,wCAAwC,EAAA,aAAA;;AAEtG;AACA;AACA;AACA;AACA;AACO,SAASG,uBAAuBA,CAIrCC,KAAsD,EAAe;AACtE,EAAA,IAAQC,QAAQ,GAA4CD,KAAK,CAAzDC,QAAQ;IAAEC,UAAU,GAAgCF,KAAK,CAA/CE,UAAU;IAAAC,WAAA,GAAgCH,KAAK,CAAnCI,IAAI;AAAJA,IAAAA,IAAI,GAAAD,WAAA,KAAA,MAAA,GAAG,SAAS,GAAAA,WAAA;AAAKE,IAAAA,IAAI,GAAAC,iDAAA,CAAKN,KAAK,EAAAO,SAAA,CAAA;;AAEjE;AACA,EAAA,IAAQC,OAAO,GAAqBR,KAAK,CAAjCQ,OAAO;AAAKC,IAAAA,WAAW,GAAAH,iDAAA,CAAKN,KAAK,EAAAU,UAAA,CAAA;AAEzC,EAAA,IAAMC,gBAAgB,GAAGC,sCAAsB,CAAC,yBAAyB,EAAEJ,OAAO,CAAC;AAEnF,EAAA,IAAMK,aAAa,GAAGC,gBAAK,CAACC,OAAO,CAAC,MAAM;IACzC,OAAOC,qBAAe,CAAoBZ,IAAI,CAAC;AAChD,EAAA,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;AAEV,EAAA,IAAMa,gBAAgB,GAAGH,gBAAK,CAACC,OAAO,CAAC,MAAM;AAC5C,IAAA,IAAMG,QAAQ,GAAG;AAChBC,MAAAA,cAAc,EAAEC,+CAA0C;AAC1DC,MAAAA,iBAAiB,EAAEC,qDAA6C;AAChEC,MAAAA,MAAM,EAAEC,+BAAkC;AAC1CC,MAAAA,eAAe,EAAEC,qCAAqC;AACtDC,MAAAA,cAAc,EAAEC;KAChB;IAED,IAAI5B,KAAK,CAAC6B,UAAU,EAAE;MACrBC,MAAM,CAACC,MAAM,CAACb,QAAQ,EAAElB,KAAK,CAAC6B,UAAU,CAAC;AAC1C,IAAA;AAEA,IAAA,OAAOX,QAAQ;AAChB,EAAA,CAAC,EAAE,CAAClB,KAAK,CAAC6B,UAAU,CAAC,CAAC;AAEtB,EAAA,oBACCf,gBAAA,CAAAkB,aAAA,CAACC,gCAAe,EAAAC,iCAAA,CAAA;AACfC,IAAAA,eAAe,EAAEvC,wCAAyC;AAC1DwC,IAAAA,iBAAiB,EAAEA,mCAAiB,CAACvC,2CAA2C,CAAE;AAClFwC,IAAAA,iBAAiB,EAAEA,MAAA;GAAsC,EACrDhC,IAAI,EACJI,WAAW,EAAA;IACf6B,MAAM,EAAAC,uCAAA,CAAAA,uCAAA,CAAA,EAAA,EACF1B,aAAa,CAAA,EACbb,KAAK,CAACsC,MAAM,CACd;AACFT,IAAAA,UAAU,EAAEZ,gBAAiB;AAC7BuB,IAAAA,QAAQ,EAAEA,CAACC,KAAK,EAAEC,UAAU,KAAK;AAAA,MAAA,IAAAC,eAAA;AAChC;AACAhC,MAAAA,gBAAgB,CAAC;AAAEiC,QAAAA,MAAM,EAAE,QAAQ;AAAEC,QAAAA,QAAQ,EAAE;UAAEC,UAAU,EAAEJ,UAAU,CAACE;AAAO;AAAE,OAAC,CAAC;AAEnF,MAAA,CAAAD,eAAA,GAAA3C,KAAK,CAACwC,QAAQ,cAAAG,eAAA,KAAA,MAAA,GAAA,MAAA,GAAdA,eAAA,CAAAI,IAAA,CAAA/C,KAAK,EAAYyC,KAAK,EAAEC,UAAU,CAAC;IACpC,CAAE;IACFM,cAAc,EAAGC,UAAU,IAAK;AAAA,MAAA,IAAAC,qBAAA;AAC/B;AACAvC,MAAAA,gBAAgB,CAAC;AAAEiC,QAAAA,MAAM,EAAE;AAAS,OAAC,CAAC;AAEtC,MAAA,CAAAM,qBAAA,GAAAlD,KAAK,CAACgD,cAAc,MAAA,IAAA,IAAAE,qBAAA,KAAA,MAAA,GAAA,MAAA,GAApBA,qBAAA,CAAAH,IAAA,CAAA/C,KAAK,EAAkBiD,UAAU,CAAC;IACnC,CAAE;IACFE,UAAU,EAAEA,MAAM;AAAA,MAAA,IAAAC,iBAAA;AACjBzC,MAAAA,gBAAgB,CAAC;AAAEiC,QAAAA,MAAM,EAAE;AAAO,OAAC,CAAC;AAEpC,MAAA,CAAAQ,iBAAA,GAAApD,KAAK,CAACmD,UAAU,MAAA,IAAA,IAAAC,iBAAA,KAAA,MAAA,GAAA,MAAA,GAAhBA,iBAAA,CAAAL,IAAA,CAAA/C,KAAmB,CAAC;IACrB,CAAE;IACFqD,WAAW,EAAEA,MAAM;AAAA,MAAA,IAAAC,kBAAA;AAClB3C,MAAAA,gBAAgB,CAAC;AAAEiC,QAAAA,MAAM,EAAE;AAAQ,OAAC,CAAC;AAErC,MAAA,CAAAU,kBAAA,GAAAtD,KAAK,CAACqD,WAAW,MAAA,IAAA,IAAAC,kBAAA,KAAA,MAAA,GAAA,MAAA,GAAjBA,kBAAA,CAAAP,IAAA,CAAA/C,KAAoB,CAAC;IACtB,CAAE;AACF,IAAA,cAAA,EAAcC,QAAS;AACvB,IAAA,eAAA,EAAeC,UAAW;AAC1BqD,IAAAA,UAAU,EAAErD,UAAU,GAAG,KAAK,GAAGF,KAAK,CAACuD,UAAW;IAClDC,qBAAqB,EAAE,CAACtD,UAAW;AACnCuD,IAAAA,OAAO,EAAE;AAAgB,GAAA,CACzB,CAAC;AAEJ;;;;;;"}
@@ -5,6 +5,7 @@ var React = require('react');
5
5
  var Select = require('react-select');
6
6
  var index = require('../styles/index.js');
7
7
  var closeMenuOnScroll = require('../utils/closeMenuOnScroll.js');
8
+ var useMrlAnalytics = require('../../../../hooks/useMrlAnalytics/useMrlAnalytics.js');
8
9
  var MrlSelectValueContainer = require('../components/MrlSelectValueContainer.js');
9
10
  var MrlSelectContainer = require('../components/MrlSelectContainer.js');
10
11
  var MrlSelectOption = require('../components/MrlSelectOption.js');
@@ -35,7 +36,8 @@ function _interopNamespace(e) {
35
36
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
36
37
  var Select__default = /*#__PURE__*/_interopDefault(Select);
37
38
 
38
- var _excluded = ["hasError", "isReadOnly", "isSearchable", "closeMenuOnSelect", "kind"];
39
+ var _excluded = ["hasError", "isReadOnly", "isSearchable", "closeMenuOnSelect", "kind"],
40
+ _excluded2 = ["eventId"];
39
41
  var MULTI_SELECT_CLASS_NAME_PREFIX = 'MrlMultiSelect';
40
42
  var MULTI_SELECT_MENU_LIST_CLASS_NAME = "".concat(MULTI_SELECT_CLASS_NAME_PREFIX, "__menu-list");
41
43
 
@@ -54,6 +56,11 @@ function MrlMultiSelect(props) {
54
56
  _props$kind = props.kind,
55
57
  kind = _props$kind === void 0 ? 'default' : _props$kind,
56
58
  rest = _rollupPluginBabelHelpers.objectWithoutProperties(props, _excluded);
59
+
60
+ // `eventId` is toolkit-only and must never reach react-select
61
+ var eventId = props.eventId,
62
+ selectProps = _rollupPluginBabelHelpers.objectWithoutProperties(props, _excluded2);
63
+ var trackInteraction = useMrlAnalytics.useMrlTrackInteraction('MrlMultiSelect', eventId);
57
64
  var defaultStyles = React__namespace.useMemo(() => {
58
65
  var styles = index.getSelectStyles(kind);
59
66
  return styles;
@@ -75,9 +82,34 @@ function MrlMultiSelect(props) {
75
82
  return /*#__PURE__*/React__namespace.createElement(Select__default.default, _rollupPluginBabelHelpers.extends({
76
83
  classNamePrefix: MULTI_SELECT_CLASS_NAME_PREFIX,
77
84
  closeMenuOnScroll: closeMenuOnScroll.closeMenuOnScroll(MULTI_SELECT_MENU_LIST_CLASS_NAME)
78
- }, rest, props, {
85
+ }, rest, selectProps, {
79
86
  styles: _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, defaultStyles), props.styles),
80
87
  components: customComponents,
88
+ onChange: (value, actionMeta) => {
89
+ var _props$onChange;
90
+ // only the kind of change is emitted; option labels/values may be free text.
91
+ trackInteraction({
92
+ action: 'change',
93
+ metadata: {
94
+ changeType: actionMeta.action
95
+ }
96
+ });
97
+ (_props$onChange = props.onChange) === null || _props$onChange === void 0 ? void 0 : _props$onChange.call(props, value, actionMeta);
98
+ },
99
+ onMenuOpen: () => {
100
+ var _props$onMenuOpen;
101
+ trackInteraction({
102
+ action: 'open'
103
+ });
104
+ (_props$onMenuOpen = props.onMenuOpen) === null || _props$onMenuOpen === void 0 ? void 0 : _props$onMenuOpen.call(props);
105
+ },
106
+ onMenuClose: () => {
107
+ var _props$onMenuClose;
108
+ trackInteraction({
109
+ action: 'close'
110
+ });
111
+ (_props$onMenuClose = props.onMenuClose) === null || _props$onMenuClose === void 0 ? void 0 : _props$onMenuClose.call(props);
112
+ },
81
113
  "aria-invalid": hasError,
82
114
  "aria-readonly": isReadOnly,
83
115
  menuIsOpen: isReadOnly ? false : props.menuIsOpen,
@@ -1 +1 @@
1
- {"version":3,"file":"MrlMultiSelect.js","sources":["../../../../../../src/components/form/select/MrlMultiSelect/MrlMultiSelect.tsx"],"sourcesContent":["import * as React from 'react';\nimport Select, { GroupBase, Props } from 'react-select';\nimport { getSelectStyles } from '../styles';\nimport {\n\tMrlSelectDropdownIndicator,\n\tMrlSelectOption,\n\tMrlSelectMultiValueRemove,\n\tMrlSelectMultiValue,\n\tMrlSelectContainer,\n\tMrlSelectValueContainer\n} from '../components';\nimport { DefaultOption, SelectKind } from '../types';\nimport { closeMenuOnScroll } from '../utils/closeMenuOnScroll';\n\nexport interface MrlMultiSelectProps<\n\tT,\n\tIsMulti extends boolean = false,\n\tGroup extends GroupBase<T> = GroupBase<T>\n> extends Omit<Props<T, IsMulti, Group>, 'isMulti' | 'hideSelectedOptions'> {\n\thasError?: boolean;\n\tisReadOnly?: boolean;\n\tkind?: SelectKind;\n\t/**\n\t * The data-qa prefix, it will be used to add data-qa attributes to different sub components of the MrlMultiSelect component.\n\t *\n\t * Available subcomponents:\n\t * - container, <data-qa-prefix>-container\n\t * - value-container, <data-qa-prefix>-value-container\n\t */\n\t['data-qa']?: string;\n}\n\nexport const MULTI_SELECT_CLASS_NAME_PREFIX = 'MrlMultiSelect';\nexport const MULTI_SELECT_MENU_LIST_CLASS_NAME = `${MULTI_SELECT_CLASS_NAME_PREFIX}__menu-list`;\n\n/**\n * MrlSelect component\n * @param props - the component props\n * @returns the select component\n */\nexport function MrlMultiSelect<\n\tT extends DefaultOption,\n\tIsMulti extends boolean,\n\tGroup extends GroupBase<T> = GroupBase<T>\n>(props: MrlMultiSelectProps<T, IsMulti, Group>): JSX.Element {\n\tconst {\n\t\thasError,\n\t\tisReadOnly,\n\t\tisSearchable = false,\n\t\tcloseMenuOnSelect = false,\n\t\tkind = 'default',\n\t\t...rest\n\t} = props;\n\n\tconst defaultStyles = React.useMemo(() => {\n\t\tconst styles = getSelectStyles<T, IsMulti, Group>(kind);\n\n\t\treturn styles;\n\t}, [kind]);\n\n\tconst customComponents = React.useMemo(() => {\n\t\tconst defaults = {\n\t\t\tDropdownIndicator: MrlSelectDropdownIndicator<T, IsMulti, Group>,\n\t\t\tMultiValue: MrlSelectMultiValue<T, IsMulti, Group>,\n\t\t\tMultiValueRemove: MrlSelectMultiValueRemove<T, IsMulti, Group>,\n\t\t\tOption: MrlSelectOption<T, IsMulti, Group>,\n\t\t\tSelectContainer: MrlSelectContainer<T, IsMulti, Group>,\n\t\t\tValueContainer: MrlSelectValueContainer<T, IsMulti, Group>\n\t\t};\n\n\t\tif (props.components) {\n\t\t\tObject.assign(defaults, props.components);\n\t\t}\n\n\t\treturn defaults;\n\t}, [props.components]);\n\n\treturn (\n\t\t<Select\n\t\t\tclassNamePrefix={MULTI_SELECT_CLASS_NAME_PREFIX}\n\t\t\tcloseMenuOnScroll={closeMenuOnScroll(MULTI_SELECT_MENU_LIST_CLASS_NAME)}\n\t\t\t{...rest}\n\t\t\t{...props}\n\t\t\tstyles={{\n\t\t\t\t...defaultStyles,\n\t\t\t\t...props.styles\n\t\t\t}}\n\t\t\tcomponents={customComponents}\n\t\t\taria-invalid={hasError}\n\t\t\taria-readonly={isReadOnly}\n\t\t\tmenuIsOpen={isReadOnly ? false : props.menuIsOpen}\n\t\t\tbackspaceRemovesValue={!isReadOnly}\n\t\t\tisSearchable={isSearchable && !isReadOnly}\n\t\t\tisMulti={true as IsMulti}\n\t\t\thideSelectedOptions={true}\n\t\t\tcloseMenuOnSelect={closeMenuOnSelect}\n\t\t/>\n\t);\n}\n"],"names":["MULTI_SELECT_CLASS_NAME_PREFIX","MULTI_SELECT_MENU_LIST_CLASS_NAME","concat","MrlMultiSelect","props","hasError","isReadOnly","_props$isSearchable","isSearchable","_props$closeMenuOnSel","closeMenuOnSelect","_props$kind","kind","rest","_objectWithoutProperties","_excluded","defaultStyles","React","useMemo","styles","getSelectStyles","customComponents","defaults","DropdownIndicator","MrlSelectDropdownIndicator","MultiValue","MrlSelectMultiValue","MultiValueRemove","MrlSelectMultiValueRemove","Option","MrlSelectOption","SelectContainer","MrlSelectContainer","ValueContainer","MrlSelectValueContainer","components","Object","assign","createElement","Select","_extends","classNamePrefix","closeMenuOnScroll","_objectSpread","menuIsOpen","backspaceRemovesValue","isMulti","hideSelectedOptions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCO,IAAMA,8BAA8B,GAAG;IACjCC,iCAAiC,GAAA,EAAA,CAAAC,MAAA,CAAMF,8BAA8B,EAAA,aAAA;;AAElF;AACA;AACA;AACA;AACA;AACO,SAASG,cAAcA,CAI5BC,KAA6C,EAAe;AAC7D,EAAA,IACCC,QAAQ,GAMLD,KAAK,CANRC,QAAQ;IACRC,UAAU,GAKPF,KAAK,CALRE,UAAU;IAAAC,mBAAA,GAKPH,KAAK,CAJRI,YAAY;AAAZA,IAAAA,YAAY,GAAAD,mBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,mBAAA;IAAAE,qBAAA,GAIjBL,KAAK,CAHRM,iBAAiB;AAAjBA,IAAAA,iBAAiB,GAAAD,qBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,qBAAA;IAAAE,WAAA,GAGtBP,KAAK,CAFRQ,IAAI;AAAJA,IAAAA,IAAI,GAAAD,WAAA,KAAA,MAAA,GAAG,SAAS,GAAAA,WAAA;AACbE,IAAAA,IAAI,GAAAC,iDAAA,CACJV,KAAK,EAAAW,SAAA,CAAA;AAET,EAAA,IAAMC,aAAa,GAAGC,gBAAK,CAACC,OAAO,CAAC,MAAM;AACzC,IAAA,IAAMC,MAAM,GAAGC,qBAAe,CAAoBR,IAAI,CAAC;AAEvD,IAAA,OAAOO,MAAM;AACd,EAAA,CAAC,EAAE,CAACP,IAAI,CAAC,CAAC;AAEV,EAAA,IAAMS,gBAAgB,GAAGJ,gBAAK,CAACC,OAAO,CAAC,MAAM;AAC5C,IAAA,IAAMI,QAAQ,GAAG;AAChBC,MAAAA,iBAAiB,EAAEC,qDAA6C;AAChEC,MAAAA,UAAU,EAAEC,uCAAsC;AAClDC,MAAAA,gBAAgB,EAAEC,mDAA4C;AAC9DC,MAAAA,MAAM,EAAEC,+BAAkC;AAC1CC,MAAAA,eAAe,EAAEC,qCAAqC;AACtDC,MAAAA,cAAc,EAAEC;KAChB;IAED,IAAI9B,KAAK,CAAC+B,UAAU,EAAE;MACrBC,MAAM,CAACC,MAAM,CAACf,QAAQ,EAAElB,KAAK,CAAC+B,UAAU,CAAC;AAC1C,IAAA;AAEA,IAAA,OAAOb,QAAQ;AAChB,EAAA,CAAC,EAAE,CAAClB,KAAK,CAAC+B,UAAU,CAAC,CAAC;AAEtB,EAAA,oBACClB,gBAAA,CAAAqB,aAAA,CAACC,uBAAM,EAAAC,iCAAA,CAAA;AACNC,IAAAA,eAAe,EAAEzC,8BAA+B;IAChD0C,iBAAiB,EAAEA,mCAAiB,CAACzC,iCAAiC;GAAE,EACpEY,IAAI,EACJT,KAAK,EAAA;IACTe,MAAM,EAAAwB,uCAAA,CAAAA,uCAAA,CAAA,EAAA,EACF3B,aAAa,CAAA,EACbZ,KAAK,CAACe,MAAM,CACd;AACFgB,IAAAA,UAAU,EAAEd,gBAAiB;AAC7B,IAAA,cAAA,EAAchB,QAAS;AACvB,IAAA,eAAA,EAAeC,UAAW;AAC1BsC,IAAAA,UAAU,EAAEtC,UAAU,GAAG,KAAK,GAAGF,KAAK,CAACwC,UAAW;IAClDC,qBAAqB,EAAE,CAACvC,UAAW;AACnCE,IAAAA,YAAY,EAAEA,YAAY,IAAI,CAACF,UAAW;AAC1CwC,IAAAA,OAAO,EAAE,IAAgB;AACzBC,IAAAA,mBAAmB,EAAE,IAAK;AAC1BrC,IAAAA,iBAAiB,EAAEA;AAAkB,GAAA,CACrC,CAAC;AAEJ;;;;;;"}
1
+ {"version":3,"file":"MrlMultiSelect.js","sources":["../../../../../../src/components/form/select/MrlMultiSelect/MrlMultiSelect.tsx"],"sourcesContent":["import * as React from 'react';\nimport Select, { GroupBase, Props } from 'react-select';\nimport { getSelectStyles } from '../styles';\nimport {\n\tMrlSelectDropdownIndicator,\n\tMrlSelectOption,\n\tMrlSelectMultiValueRemove,\n\tMrlSelectMultiValue,\n\tMrlSelectContainer,\n\tMrlSelectValueContainer\n} from '../components';\nimport { DefaultOption, SelectKind } from '../types';\nimport { closeMenuOnScroll } from '../utils/closeMenuOnScroll';\nimport { useMrlTrackInteraction } from '../../../../hooks/useMrlAnalytics';\n\nexport interface MrlMultiSelectProps<\n\tT,\n\tIsMulti extends boolean = false,\n\tGroup extends GroupBase<T> = GroupBase<T>\n> extends Omit<Props<T, IsMulti, Group>, 'isMulti' | 'hideSelectedOptions'> {\n\thasError?: boolean;\n\tisReadOnly?: boolean;\n\tkind?: SelectKind;\n\t/**\n\t * The data-qa prefix, it will be used to add data-qa attributes to different sub components of the MrlMultiSelect component.\n\t *\n\t * Available subcomponents:\n\t * - container, <data-qa-prefix>-container\n\t * - value-container, <data-qa-prefix>-value-container\n\t */\n\t['data-qa']?: string;\n\t/**\n\t * Enables interaction tracking for this select. Provide a stable, non-PII id\n\t * (e.g. 'invite-members-picker'). When omitted, the select emits no analytics.\n\t *\n\t * Note: option labels and values are never emitted — only the kind of change.\n\t */\n\teventId?: string;\n}\n\nexport const MULTI_SELECT_CLASS_NAME_PREFIX = 'MrlMultiSelect';\nexport const MULTI_SELECT_MENU_LIST_CLASS_NAME = `${MULTI_SELECT_CLASS_NAME_PREFIX}__menu-list`;\n\n/**\n * MrlSelect component\n * @param props - the component props\n * @returns the select component\n */\nexport function MrlMultiSelect<\n\tT extends DefaultOption,\n\tIsMulti extends boolean,\n\tGroup extends GroupBase<T> = GroupBase<T>\n>(props: MrlMultiSelectProps<T, IsMulti, Group>): JSX.Element {\n\tconst {\n\t\thasError,\n\t\tisReadOnly,\n\t\tisSearchable = false,\n\t\tcloseMenuOnSelect = false,\n\t\tkind = 'default',\n\t\t...rest\n\t} = props;\n\n\t// `eventId` is toolkit-only and must never reach react-select\n\tconst { eventId, ...selectProps } = props;\n\n\tconst trackInteraction = useMrlTrackInteraction('MrlMultiSelect', eventId);\n\n\tconst defaultStyles = React.useMemo(() => {\n\t\tconst styles = getSelectStyles<T, IsMulti, Group>(kind);\n\n\t\treturn styles;\n\t}, [kind]);\n\n\tconst customComponents = React.useMemo(() => {\n\t\tconst defaults = {\n\t\t\tDropdownIndicator: MrlSelectDropdownIndicator<T, IsMulti, Group>,\n\t\t\tMultiValue: MrlSelectMultiValue<T, IsMulti, Group>,\n\t\t\tMultiValueRemove: MrlSelectMultiValueRemove<T, IsMulti, Group>,\n\t\t\tOption: MrlSelectOption<T, IsMulti, Group>,\n\t\t\tSelectContainer: MrlSelectContainer<T, IsMulti, Group>,\n\t\t\tValueContainer: MrlSelectValueContainer<T, IsMulti, Group>\n\t\t};\n\n\t\tif (props.components) {\n\t\t\tObject.assign(defaults, props.components);\n\t\t}\n\n\t\treturn defaults;\n\t}, [props.components]);\n\n\treturn (\n\t\t<Select\n\t\t\tclassNamePrefix={MULTI_SELECT_CLASS_NAME_PREFIX}\n\t\t\tcloseMenuOnScroll={closeMenuOnScroll(MULTI_SELECT_MENU_LIST_CLASS_NAME)}\n\t\t\t{...rest}\n\t\t\t{...selectProps}\n\t\t\tstyles={{\n\t\t\t\t...defaultStyles,\n\t\t\t\t...props.styles\n\t\t\t}}\n\t\t\tcomponents={customComponents}\n\t\t\tonChange={(value, actionMeta) => {\n\t\t\t\t// only the kind of change is emitted; option labels/values may be free text.\n\t\t\t\ttrackInteraction({ action: 'change', metadata: { changeType: actionMeta.action } });\n\n\t\t\t\tprops.onChange?.(value, actionMeta);\n\t\t\t}}\n\t\t\tonMenuOpen={() => {\n\t\t\t\ttrackInteraction({ action: 'open' });\n\n\t\t\t\tprops.onMenuOpen?.();\n\t\t\t}}\n\t\t\tonMenuClose={() => {\n\t\t\t\ttrackInteraction({ action: 'close' });\n\n\t\t\t\tprops.onMenuClose?.();\n\t\t\t}}\n\t\t\taria-invalid={hasError}\n\t\t\taria-readonly={isReadOnly}\n\t\t\tmenuIsOpen={isReadOnly ? false : props.menuIsOpen}\n\t\t\tbackspaceRemovesValue={!isReadOnly}\n\t\t\tisSearchable={isSearchable && !isReadOnly}\n\t\t\tisMulti={true as IsMulti}\n\t\t\thideSelectedOptions={true}\n\t\t\tcloseMenuOnSelect={closeMenuOnSelect}\n\t\t/>\n\t);\n}\n"],"names":["MULTI_SELECT_CLASS_NAME_PREFIX","MULTI_SELECT_MENU_LIST_CLASS_NAME","concat","MrlMultiSelect","props","hasError","isReadOnly","_props$isSearchable","isSearchable","_props$closeMenuOnSel","closeMenuOnSelect","_props$kind","kind","rest","_objectWithoutProperties","_excluded","eventId","selectProps","_excluded2","trackInteraction","useMrlTrackInteraction","defaultStyles","React","useMemo","styles","getSelectStyles","customComponents","defaults","DropdownIndicator","MrlSelectDropdownIndicator","MultiValue","MrlSelectMultiValue","MultiValueRemove","MrlSelectMultiValueRemove","Option","MrlSelectOption","SelectContainer","MrlSelectContainer","ValueContainer","MrlSelectValueContainer","components","Object","assign","createElement","Select","_extends","classNamePrefix","closeMenuOnScroll","_objectSpread","onChange","value","actionMeta","_props$onChange","action","metadata","changeType","call","onMenuOpen","_props$onMenuOpen","onMenuClose","_props$onMenuClose","menuIsOpen","backspaceRemovesValue","isMulti","hideSelectedOptions"],"mappings":"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"}
@@ -5,6 +5,7 @@ var React = require('react');
5
5
  var Select = require('react-select');
6
6
  var index = require('../styles/index.js');
7
7
  var closeMenuOnScroll = require('../utils/closeMenuOnScroll.js');
8
+ var useMrlAnalytics = require('../../../../hooks/useMrlAnalytics/useMrlAnalytics.js');
8
9
  var MrlSelectValueContainer = require('../components/MrlSelectValueContainer.js');
9
10
  var MrlSelectContainer = require('../components/MrlSelectContainer.js');
10
11
  var MrlSelectOption = require('../components/MrlSelectOption.js');
@@ -33,7 +34,8 @@ function _interopNamespace(e) {
33
34
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
34
35
  var Select__default = /*#__PURE__*/_interopDefault(Select);
35
36
 
36
- var _excluded = ["hasError", "isReadOnly", "kind", "isSearchable"];
37
+ var _excluded = ["hasError", "isReadOnly", "kind", "isSearchable"],
38
+ _excluded2 = ["eventId"];
37
39
  var SELECT_CLASS_NAME_PREFIX = 'MrlSelect';
38
40
  var SELECT_MENU_LIST_CLASS_NAME = "".concat(SELECT_CLASS_NAME_PREFIX, "__menu-list");
39
41
 
@@ -50,6 +52,11 @@ function MrlSelect(props) {
50
52
  _props$isSearchable = props.isSearchable,
51
53
  isSearchable = _props$isSearchable === void 0 ? false : _props$isSearchable,
52
54
  rest = _rollupPluginBabelHelpers.objectWithoutProperties(props, _excluded);
55
+
56
+ // `eventId` is toolkit-only and must never reach react-select
57
+ var eventId = props.eventId,
58
+ selectProps = _rollupPluginBabelHelpers.objectWithoutProperties(props, _excluded2);
59
+ var trackInteraction = useMrlAnalytics.useMrlTrackInteraction('MrlSelect', eventId);
53
60
  var defaultStyles = React__namespace.useMemo(() => {
54
61
  return index.getSelectStyles(kind);
55
62
  }, [kind]);
@@ -68,9 +75,34 @@ function MrlSelect(props) {
68
75
  return /*#__PURE__*/React__namespace.createElement(Select__default.default, _rollupPluginBabelHelpers.extends({
69
76
  classNamePrefix: SELECT_CLASS_NAME_PREFIX,
70
77
  closeMenuOnScroll: closeMenuOnScroll.closeMenuOnScroll(SELECT_MENU_LIST_CLASS_NAME)
71
- }, rest, props, {
78
+ }, rest, selectProps, {
72
79
  styles: _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, defaultStyles), props.styles),
73
80
  components: customComponents,
81
+ onChange: (value, actionMeta) => {
82
+ var _props$onChange;
83
+ // only the kind of change is emitted; option labels/values may be free text.
84
+ trackInteraction({
85
+ action: 'change',
86
+ metadata: {
87
+ changeType: actionMeta.action
88
+ }
89
+ });
90
+ (_props$onChange = props.onChange) === null || _props$onChange === void 0 ? void 0 : _props$onChange.call(props, value, actionMeta);
91
+ },
92
+ onMenuOpen: () => {
93
+ var _props$onMenuOpen;
94
+ trackInteraction({
95
+ action: 'open'
96
+ });
97
+ (_props$onMenuOpen = props.onMenuOpen) === null || _props$onMenuOpen === void 0 ? void 0 : _props$onMenuOpen.call(props);
98
+ },
99
+ onMenuClose: () => {
100
+ var _props$onMenuClose;
101
+ trackInteraction({
102
+ action: 'close'
103
+ });
104
+ (_props$onMenuClose = props.onMenuClose) === null || _props$onMenuClose === void 0 ? void 0 : _props$onMenuClose.call(props);
105
+ },
74
106
  "aria-invalid": hasError,
75
107
  "aria-readonly": isReadOnly,
76
108
  menuIsOpen: isReadOnly ? false : props.menuIsOpen,
@@ -1 +1 @@
1
- {"version":3,"file":"MrlSelect.js","sources":["../../../../../../src/components/form/select/MrlSelect/MrlSelect.tsx"],"sourcesContent":["import * as React from 'react';\nimport Select, { GroupBase, Props } from 'react-select';\nimport { getSelectStyles } from '../styles';\nimport {\n\tMrlSelectDropdownIndicator,\n\tMrlSelectOption,\n\tMrlSelectContainer,\n\tMrlSelectValueContainer\n} from '../components';\nimport { SelectKind } from '../types';\nimport { closeMenuOnScroll } from '../utils/closeMenuOnScroll';\n\nexport interface MrlSelectProps<\n\tOption,\n\tIsMulti extends boolean = false,\n\tGroup extends GroupBase<Option> = GroupBase<Option>\n> extends Props<Option, IsMulti, Group> {\n\thasError?: boolean;\n\tisReadOnly?: boolean;\n\tkind?: SelectKind;\n\t/**\n\t * The data-qa prefix, it will be used to add data-qa attributes to different sub components of the MrlSelect component.\n\t *\n\t * Available subcomponents:\n\t * - container, <data-qa-prefix>-container\n\t * - value-container, <data-qa-prefix>-value-container\n\t */\n\t['data-qa']?: string;\n}\n\nexport const SELECT_CLASS_NAME_PREFIX = 'MrlSelect';\nexport const SELECT_MENU_LIST_CLASS_NAME = `${SELECT_CLASS_NAME_PREFIX}__menu-list`;\n\n/**\n * MrlSelect component\n * @param props - the component props\n * @returns the select component\n */\nexport function MrlSelect<T>(props: MrlSelectProps<T>): JSX.Element {\n\tconst { hasError, isReadOnly, kind = 'default', isSearchable = false, ...rest } = props;\n\n\tconst defaultStyles = React.useMemo(() => {\n\t\treturn getSelectStyles<T>(kind);\n\t}, [kind]);\n\n\tconst customComponents = React.useMemo(() => {\n\t\tconst defaults = {\n\t\t\tDropdownIndicator: MrlSelectDropdownIndicator<T>,\n\t\t\tOption: MrlSelectOption<T>,\n\t\t\tSelectContainer: MrlSelectContainer<T>,\n\t\t\tValueContainer: MrlSelectValueContainer<T>\n\t\t};\n\n\t\tif (props.components) {\n\t\t\tObject.assign(defaults, props.components);\n\t\t}\n\n\t\treturn defaults;\n\t}, [props.components]);\n\n\treturn (\n\t\t<Select\n\t\t\tclassNamePrefix={SELECT_CLASS_NAME_PREFIX}\n\t\t\tcloseMenuOnScroll={closeMenuOnScroll(SELECT_MENU_LIST_CLASS_NAME)}\n\t\t\t{...rest}\n\t\t\t{...props}\n\t\t\tstyles={{\n\t\t\t\t...defaultStyles,\n\t\t\t\t...props.styles\n\t\t\t}}\n\t\t\tcomponents={customComponents}\n\t\t\taria-invalid={hasError}\n\t\t\taria-readonly={isReadOnly}\n\t\t\tmenuIsOpen={isReadOnly ? false : props.menuIsOpen}\n\t\t\tbackspaceRemovesValue={!isReadOnly}\n\t\t\tisSearchable={isSearchable && !isReadOnly}\n\t\t\tisMulti={false}\n\t\t/>\n\t);\n}\n"],"names":["SELECT_CLASS_NAME_PREFIX","SELECT_MENU_LIST_CLASS_NAME","concat","MrlSelect","props","hasError","isReadOnly","_props$kind","kind","_props$isSearchable","isSearchable","rest","_objectWithoutProperties","_excluded","defaultStyles","React","useMemo","getSelectStyles","customComponents","defaults","DropdownIndicator","MrlSelectDropdownIndicator","Option","MrlSelectOption","SelectContainer","MrlSelectContainer","ValueContainer","MrlSelectValueContainer","components","Object","assign","createElement","Select","_extends","classNamePrefix","closeMenuOnScroll","styles","_objectSpread","menuIsOpen","backspaceRemovesValue","isMulti"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BO,IAAMA,wBAAwB,GAAG;IAC3BC,2BAA2B,GAAA,EAAA,CAAAC,MAAA,CAAMF,wBAAwB,EAAA,aAAA;;AAEtE;AACA;AACA;AACA;AACA;AACO,SAASG,SAASA,CAAIC,KAAwB,EAAe;AACnE,EAAA,IAAQC,QAAQ,GAAkED,KAAK,CAA/EC,QAAQ;IAAEC,UAAU,GAAsDF,KAAK,CAArEE,UAAU;IAAAC,WAAA,GAAsDH,KAAK,CAAzDI,IAAI;AAAJA,IAAAA,IAAI,GAAAD,WAAA,KAAA,MAAA,GAAG,SAAS,GAAAA,WAAA;IAAAE,mBAAA,GAAoCL,KAAK,CAAvCM,YAAY;AAAZA,IAAAA,YAAY,GAAAD,mBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,mBAAA;AAAKE,IAAAA,IAAI,GAAAC,iDAAA,CAAKR,KAAK,EAAAS,SAAA,CAAA;AAEvF,EAAA,IAAMC,aAAa,GAAGC,gBAAK,CAACC,OAAO,CAAC,MAAM;IACzC,OAAOC,qBAAe,CAAIT,IAAI,CAAC;AAChC,EAAA,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;AAEV,EAAA,IAAMU,gBAAgB,GAAGH,gBAAK,CAACC,OAAO,CAAC,MAAM;AAC5C,IAAA,IAAMG,QAAQ,GAAG;AAChBC,MAAAA,iBAAiB,EAAEC,qDAA6B;AAChDC,MAAAA,MAAM,EAAEC,+BAAkB;AAC1BC,MAAAA,eAAe,EAAEC,qCAAqB;AACtCC,MAAAA,cAAc,EAAEC;KAChB;IAED,IAAIvB,KAAK,CAACwB,UAAU,EAAE;MACrBC,MAAM,CAACC,MAAM,CAACX,QAAQ,EAAEf,KAAK,CAACwB,UAAU,CAAC;AAC1C,IAAA;AAEA,IAAA,OAAOT,QAAQ;AAChB,EAAA,CAAC,EAAE,CAACf,KAAK,CAACwB,UAAU,CAAC,CAAC;AAEtB,EAAA,oBACCb,gBAAA,CAAAgB,aAAA,CAACC,uBAAM,EAAAC,iCAAA,CAAA;AACNC,IAAAA,eAAe,EAAElC,wBAAyB;IAC1CmC,iBAAiB,EAAEA,mCAAiB,CAAClC,2BAA2B;GAAE,EAC9DU,IAAI,EACJP,KAAK,EAAA;IACTgC,MAAM,EAAAC,uCAAA,CAAAA,uCAAA,CAAA,EAAA,EACFvB,aAAa,CAAA,EACbV,KAAK,CAACgC,MAAM,CACd;AACFR,IAAAA,UAAU,EAAEV,gBAAiB;AAC7B,IAAA,cAAA,EAAcb,QAAS;AACvB,IAAA,eAAA,EAAeC,UAAW;AAC1BgC,IAAAA,UAAU,EAAEhC,UAAU,GAAG,KAAK,GAAGF,KAAK,CAACkC,UAAW;IAClDC,qBAAqB,EAAE,CAACjC,UAAW;AACnCI,IAAAA,YAAY,EAAEA,YAAY,IAAI,CAACJ,UAAW;AAC1CkC,IAAAA,OAAO,EAAE;AAAM,GAAA,CACf,CAAC;AAEJ;;;;;;"}
1
+ {"version":3,"file":"MrlSelect.js","sources":["../../../../../../src/components/form/select/MrlSelect/MrlSelect.tsx"],"sourcesContent":["import * as React from 'react';\nimport Select, { GroupBase, Props } from 'react-select';\nimport { getSelectStyles } from '../styles';\nimport {\n\tMrlSelectDropdownIndicator,\n\tMrlSelectOption,\n\tMrlSelectContainer,\n\tMrlSelectValueContainer\n} from '../components';\nimport { SelectKind } from '../types';\nimport { closeMenuOnScroll } from '../utils/closeMenuOnScroll';\nimport { useMrlTrackInteraction } from '../../../../hooks/useMrlAnalytics';\n\nexport interface MrlSelectProps<\n\tOption,\n\tIsMulti extends boolean = false,\n\tGroup extends GroupBase<Option> = GroupBase<Option>\n> extends Props<Option, IsMulti, Group> {\n\thasError?: boolean;\n\tisReadOnly?: boolean;\n\tkind?: SelectKind;\n\t/**\n\t * The data-qa prefix, it will be used to add data-qa attributes to different sub components of the MrlSelect component.\n\t *\n\t * Available subcomponents:\n\t * - container, <data-qa-prefix>-container\n\t * - value-container, <data-qa-prefix>-value-container\n\t */\n\t['data-qa']?: string;\n\t/**\n\t * Enables interaction tracking for this select. Provide a stable, non-PII id\n\t * (e.g. 'member-role-select'). When omitted, the select emits no analytics.\n\t *\n\t * Note: option labels and values are never emitted — only the kind of change.\n\t */\n\teventId?: string;\n}\n\nexport const SELECT_CLASS_NAME_PREFIX = 'MrlSelect';\nexport const SELECT_MENU_LIST_CLASS_NAME = `${SELECT_CLASS_NAME_PREFIX}__menu-list`;\n\n/**\n * MrlSelect component\n * @param props - the component props\n * @returns the select component\n */\nexport function MrlSelect<T>(props: MrlSelectProps<T>): JSX.Element {\n\tconst { hasError, isReadOnly, kind = 'default', isSearchable = false, ...rest } = props;\n\n\t// `eventId` is toolkit-only and must never reach react-select\n\tconst { eventId, ...selectProps } = props;\n\n\tconst trackInteraction = useMrlTrackInteraction('MrlSelect', eventId);\n\n\tconst defaultStyles = React.useMemo(() => {\n\t\treturn getSelectStyles<T>(kind);\n\t}, [kind]);\n\n\tconst customComponents = React.useMemo(() => {\n\t\tconst defaults = {\n\t\t\tDropdownIndicator: MrlSelectDropdownIndicator<T>,\n\t\t\tOption: MrlSelectOption<T>,\n\t\t\tSelectContainer: MrlSelectContainer<T>,\n\t\t\tValueContainer: MrlSelectValueContainer<T>\n\t\t};\n\n\t\tif (props.components) {\n\t\t\tObject.assign(defaults, props.components);\n\t\t}\n\n\t\treturn defaults;\n\t}, [props.components]);\n\n\treturn (\n\t\t<Select\n\t\t\tclassNamePrefix={SELECT_CLASS_NAME_PREFIX}\n\t\t\tcloseMenuOnScroll={closeMenuOnScroll(SELECT_MENU_LIST_CLASS_NAME)}\n\t\t\t{...rest}\n\t\t\t{...selectProps}\n\t\t\tstyles={{\n\t\t\t\t...defaultStyles,\n\t\t\t\t...props.styles\n\t\t\t}}\n\t\t\tcomponents={customComponents}\n\t\t\tonChange={(value, actionMeta) => {\n\t\t\t\t// only the kind of change is emitted; option labels/values may be free text.\n\t\t\t\ttrackInteraction({ action: 'change', metadata: { changeType: actionMeta.action } });\n\n\t\t\t\tprops.onChange?.(value, actionMeta);\n\t\t\t}}\n\t\t\tonMenuOpen={() => {\n\t\t\t\ttrackInteraction({ action: 'open' });\n\n\t\t\t\tprops.onMenuOpen?.();\n\t\t\t}}\n\t\t\tonMenuClose={() => {\n\t\t\t\ttrackInteraction({ action: 'close' });\n\n\t\t\t\tprops.onMenuClose?.();\n\t\t\t}}\n\t\t\taria-invalid={hasError}\n\t\t\taria-readonly={isReadOnly}\n\t\t\tmenuIsOpen={isReadOnly ? false : props.menuIsOpen}\n\t\t\tbackspaceRemovesValue={!isReadOnly}\n\t\t\tisSearchable={isSearchable && !isReadOnly}\n\t\t\tisMulti={false}\n\t\t/>\n\t);\n}\n"],"names":["SELECT_CLASS_NAME_PREFIX","SELECT_MENU_LIST_CLASS_NAME","concat","MrlSelect","props","hasError","isReadOnly","_props$kind","kind","_props$isSearchable","isSearchable","rest","_objectWithoutProperties","_excluded","eventId","selectProps","_excluded2","trackInteraction","useMrlTrackInteraction","defaultStyles","React","useMemo","getSelectStyles","customComponents","defaults","DropdownIndicator","MrlSelectDropdownIndicator","Option","MrlSelectOption","SelectContainer","MrlSelectContainer","ValueContainer","MrlSelectValueContainer","components","Object","assign","createElement","Select","_extends","classNamePrefix","closeMenuOnScroll","styles","_objectSpread","onChange","value","actionMeta","_props$onChange","action","metadata","changeType","call","onMenuOpen","_props$onMenuOpen","onMenuClose","_props$onMenuClose","menuIsOpen","backspaceRemovesValue","isMulti"],"mappings":"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"}
@@ -5,6 +5,7 @@ var React = require('react');
5
5
  var classnames = require('classnames');
6
6
  var MrlSwitch_module = require('./MrlSwitch.module.scss.js');
7
7
  var setAttributes = require('../../../../utils/setAttributes/setAttributes.js');
8
+ var useMrlAnalytics = require('../../../../hooks/useMrlAnalytics/useMrlAnalytics.js');
8
9
  var MrlSwitchStandalone = require('../MrlSwitchStandalone/MrlSwitchStandalone.js');
9
10
 
10
11
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
@@ -30,7 +31,7 @@ function _interopNamespace(e) {
30
31
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
31
32
  var classnames__default = /*#__PURE__*/_interopDefault(classnames);
32
33
 
33
- var _excluded = ["className", "disabled", "id", "label", "onChange", "selected"];
34
+ var _excluded = ["className", "disabled", "id", "label", "onChange", "selected", "eventId"];
34
35
  var MrlSwitch = /*#__PURE__*/React.memo(_ref => {
35
36
  var className = _ref.className,
36
37
  disabled = _ref.disabled,
@@ -40,8 +41,19 @@ var MrlSwitch = /*#__PURE__*/React.memo(_ref => {
40
41
  onChange = _ref.onChange,
41
42
  _ref$selected = _ref.selected,
42
43
  selected = _ref$selected === void 0 ? false : _ref$selected,
44
+ eventId = _ref.eventId,
43
45
  rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
44
46
  var inputId = React.useMemo(() => id || setAttributes.getUniqueId('mrl-toggle-'), [id]);
47
+ var trackInteraction = useMrlAnalytics.useMrlTrackInteraction('MrlSwitch', eventId);
48
+ var handleChange = e => {
49
+ trackInteraction({
50
+ action: 'toggle',
51
+ metadata: {
52
+ selected: e.target.checked
53
+ }
54
+ });
55
+ onChange(e);
56
+ };
45
57
  var textOnlyLabel = typeof label === 'string';
46
58
  var containerClasses = classnames__default.default('MrlSwitch', MrlSwitch_module.default['MrlSwitch'], className, {
47
59
  ['mrl-label']: textOnlyLabel,
@@ -54,7 +66,7 @@ var MrlSwitch = /*#__PURE__*/React.memo(_ref => {
54
66
  }, label, /*#__PURE__*/React__namespace.createElement(MrlSwitchStandalone.MrlSwitchStandalone, _rollupPluginBabelHelpers.extends({}, rest, {
55
67
  disabled: disabled,
56
68
  id: inputId,
57
- onChange: onChange,
69
+ onChange: handleChange,
58
70
  selected: selected
59
71
  })));
60
72
  });
@@ -1 +1 @@
1
- {"version":3,"file":"MrlSwitch.js","sources":["../../../../../../src/components/form/switch/MrlSwitch/MrlSwitch.tsx"],"sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport { memo, useMemo } from 'react';\nimport { MrlSwitchStandalone } from '../../..';\nimport { getUniqueId } from '../../../../utils';\n\nimport styles from './MrlSwitch.module.scss';\n\ninterface MrlSwitchProps extends React.ComponentPropsWithoutRef<'input'> {\n\tclassName?: string;\n\tdisabled?: boolean;\n\tid?: string;\n\t/**\n\t * The `label` is best used as a string, which will style according to MrlLabel styles.\n\t * If you need custom styles, you can use `className` or use a span that you style as `label`\n\t */\n\tlabel: string | React.ReactNode;\n\tonChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n\tselected?: boolean;\n}\n\nexport const MrlSwitch = memo(\n\t({\n\t\tclassName,\n\t\tdisabled,\n\t\tid = undefined,\n\t\tlabel,\n\t\tonChange,\n\t\tselected = false,\n\t\t...rest\n\t}: MrlSwitchProps) => {\n\t\tconst inputId = useMemo(() => id || getUniqueId('mrl-toggle-'), [id]);\n\t\tconst textOnlyLabel = typeof label === 'string';\n\t\tconst containerClasses = classnames('MrlSwitch', styles['MrlSwitch'], className, {\n\t\t\t['mrl-label']: textOnlyLabel,\n\t\t\t[styles['MrlLabel']]: textOnlyLabel,\n\t\t\t['MrlSwitch-disabled']: disabled,\n\t\t\t[styles['MrlSwitch-disabled']]: disabled\n\t\t});\n\n\t\treturn (\n\t\t\t<label className={containerClasses}>\n\t\t\t\t{label}\n\t\t\t\t<MrlSwitchStandalone\n\t\t\t\t\t{...rest}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tid={inputId}\n\t\t\t\t\tonChange={onChange}\n\t\t\t\t\tselected={selected}\n\t\t\t\t/>\n\t\t\t</label>\n\t\t);\n\t}\n);\n\nMrlSwitch.displayName = 'MrlSwitch';\n"],"names":["MrlSwitch","memo","_ref","className","disabled","_ref$id","id","undefined","label","onChange","_ref$selected","selected","rest","_objectWithoutProperties","_excluded","inputId","useMemo","getUniqueId","textOnlyLabel","containerClasses","classnames","styles","React","createElement","MrlSwitchStandalone","_extends","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqBaA,SAAS,gBAAGC,UAAI,CAC5BC,IAAA,IAQsB;AAAA,EAAA,IAPrBC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAAC,OAAA,GAAAH,IAAA,CACRI,EAAE;AAAFA,IAAAA,EAAE,GAAAD,OAAA,KAAA,MAAA,GAAGE,SAAS,GAAAF,OAAA;IACdG,KAAK,GAAAN,IAAA,CAALM,KAAK;IACLC,QAAQ,GAAAP,IAAA,CAARO,QAAQ;IAAAC,aAAA,GAAAR,IAAA,CACRS,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,aAAA;AACbE,IAAAA,IAAI,GAAAC,iDAAA,CAAAX,IAAA,EAAAY,SAAA,CAAA;AAEP,EAAA,IAAMC,OAAO,GAAGC,aAAO,CAAC,MAAMV,EAAE,IAAIW,yBAAW,CAAC,aAAa,CAAC,EAAE,CAACX,EAAE,CAAC,CAAC;AACrE,EAAA,IAAMY,aAAa,GAAG,OAAOV,KAAK,KAAK,QAAQ;AAC/C,EAAA,IAAMW,gBAAgB,GAAGC,2BAAU,CAAC,WAAW,EAAEC,wBAAM,CAAC,WAAW,CAAC,EAAElB,SAAS,EAAE;IAChF,CAAC,WAAW,GAAGe,aAAa;AAC5B,IAAA,CAACG,wBAAM,CAAC,UAAU,CAAC,GAAGH,aAAa;IACnC,CAAC,oBAAoB,GAAGd,QAAQ;AAChC,IAAA,CAACiB,wBAAM,CAAC,oBAAoB,CAAC,GAAGjB;AACjC,GAAC,CAAC;EAEF,oBACCkB,gBAAA,CAAAC,aAAA,CAAA,OAAA,EAAA;AAAOpB,IAAAA,SAAS,EAAEgB;GAAiB,EACjCX,KAAK,eACNc,gBAAA,CAAAC,aAAA,CAACC,uCAAmB,EAAAC,iCAAA,CAAA,EAAA,EACfb,IAAI,EAAA;AACRR,IAAAA,QAAQ,EAAEA,QAAS;AACnBE,IAAAA,EAAE,EAAES,OAAQ;AACZN,IAAAA,QAAQ,EAAEA,QAAS;AACnBE,IAAAA,QAAQ,EAAEA;AAAS,GAAA,CACnB,CACK,CAAC;AAEV,CACD;AAEAX,SAAS,CAAC0B,WAAW,GAAG,WAAW;;;;"}
1
+ {"version":3,"file":"MrlSwitch.js","sources":["../../../../../../src/components/form/switch/MrlSwitch/MrlSwitch.tsx"],"sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport { memo, useMemo } from 'react';\nimport { MrlSwitchStandalone } from '../../..';\nimport { getUniqueId } from '../../../../utils';\nimport { useMrlTrackInteraction } from '../../../../hooks/useMrlAnalytics';\n\nimport styles from './MrlSwitch.module.scss';\n\ninterface MrlSwitchProps extends React.ComponentPropsWithoutRef<'input'> {\n\tclassName?: string;\n\tdisabled?: boolean;\n\tid?: string;\n\t/**\n\t * Enables interaction tracking for this switch. Provide a stable, non-PII id\n\t * (e.g. 'workspace-sso-toggle'). When omitted, the switch emits no analytics.\n\t */\n\teventId?: string;\n\t/**\n\t * The `label` is best used as a string, which will style according to MrlLabel styles.\n\t * If you need custom styles, you can use `className` or use a span that you style as `label`\n\t */\n\tlabel: string | React.ReactNode;\n\tonChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n\tselected?: boolean;\n}\n\nexport const MrlSwitch = memo(\n\t({\n\t\tclassName,\n\t\tdisabled,\n\t\tid = undefined,\n\t\tlabel,\n\t\tonChange,\n\t\tselected = false,\n\t\t// destructured so it never reaches the nested input as an unknown DOM attribute,\n\t\t// and so the standalone switch doesn't emit a duplicate event.\n\t\teventId,\n\t\t...rest\n\t}: MrlSwitchProps) => {\n\t\tconst inputId = useMemo(() => id || getUniqueId('mrl-toggle-'), [id]);\n\t\tconst trackInteraction = useMrlTrackInteraction('MrlSwitch', eventId);\n\n\t\tconst handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\t\ttrackInteraction({ action: 'toggle', metadata: { selected: e.target.checked } });\n\n\t\t\tonChange(e);\n\t\t};\n\n\t\tconst textOnlyLabel = typeof label === 'string';\n\t\tconst containerClasses = classnames('MrlSwitch', styles['MrlSwitch'], className, {\n\t\t\t['mrl-label']: textOnlyLabel,\n\t\t\t[styles['MrlLabel']]: textOnlyLabel,\n\t\t\t['MrlSwitch-disabled']: disabled,\n\t\t\t[styles['MrlSwitch-disabled']]: disabled\n\t\t});\n\n\t\treturn (\n\t\t\t<label className={containerClasses}>\n\t\t\t\t{label}\n\t\t\t\t<MrlSwitchStandalone\n\t\t\t\t\t{...rest}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tid={inputId}\n\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\tselected={selected}\n\t\t\t\t/>\n\t\t\t</label>\n\t\t);\n\t}\n);\n\nMrlSwitch.displayName = 'MrlSwitch';\n"],"names":["MrlSwitch","memo","_ref","className","disabled","_ref$id","id","undefined","label","onChange","_ref$selected","selected","eventId","rest","_objectWithoutProperties","_excluded","inputId","useMemo","getUniqueId","trackInteraction","useMrlTrackInteraction","handleChange","e","action","metadata","target","checked","textOnlyLabel","containerClasses","classnames","styles","React","createElement","MrlSwitchStandalone","_extends","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2BaA,SAAS,gBAAGC,UAAI,CAC5BC,IAAA,IAWsB;AAAA,EAAA,IAVrBC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAAC,OAAA,GAAAH,IAAA,CACRI,EAAE;AAAFA,IAAAA,EAAE,GAAAD,OAAA,KAAA,MAAA,GAAGE,SAAS,GAAAF,OAAA;IACdG,KAAK,GAAAN,IAAA,CAALM,KAAK;IACLC,QAAQ,GAAAP,IAAA,CAARO,QAAQ;IAAAC,aAAA,GAAAR,IAAA,CACRS,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,aAAA;IAGhBE,OAAO,GAAAV,IAAA,CAAPU,OAAO;AACJC,IAAAA,IAAI,GAAAC,iDAAA,CAAAZ,IAAA,EAAAa,SAAA,CAAA;AAEP,EAAA,IAAMC,OAAO,GAAGC,aAAO,CAAC,MAAMX,EAAE,IAAIY,yBAAW,CAAC,aAAa,CAAC,EAAE,CAACZ,EAAE,CAAC,CAAC;AACrE,EAAA,IAAMa,gBAAgB,GAAGC,sCAAsB,CAAC,WAAW,EAAER,OAAO,CAAC;EAErE,IAAMS,YAAY,GAAIC,CAAsC,IAAK;AAChEH,IAAAA,gBAAgB,CAAC;AAAEI,MAAAA,MAAM,EAAE,QAAQ;AAAEC,MAAAA,QAAQ,EAAE;AAAEb,QAAAA,QAAQ,EAAEW,CAAC,CAACG,MAAM,CAACC;AAAQ;AAAE,KAAC,CAAC;IAEhFjB,QAAQ,CAACa,CAAC,CAAC;EACZ,CAAC;AAED,EAAA,IAAMK,aAAa,GAAG,OAAOnB,KAAK,KAAK,QAAQ;AAC/C,EAAA,IAAMoB,gBAAgB,GAAGC,2BAAU,CAAC,WAAW,EAAEC,wBAAM,CAAC,WAAW,CAAC,EAAE3B,SAAS,EAAE;IAChF,CAAC,WAAW,GAAGwB,aAAa;AAC5B,IAAA,CAACG,wBAAM,CAAC,UAAU,CAAC,GAAGH,aAAa;IACnC,CAAC,oBAAoB,GAAGvB,QAAQ;AAChC,IAAA,CAAC0B,wBAAM,CAAC,oBAAoB,CAAC,GAAG1B;AACjC,GAAC,CAAC;EAEF,oBACC2B,gBAAA,CAAAC,aAAA,CAAA,OAAA,EAAA;AAAO7B,IAAAA,SAAS,EAAEyB;GAAiB,EACjCpB,KAAK,eACNuB,gBAAA,CAAAC,aAAA,CAACC,uCAAmB,EAAAC,iCAAA,CAAA,EAAA,EACfrB,IAAI,EAAA;AACRT,IAAAA,QAAQ,EAAEA,QAAS;AACnBE,IAAAA,EAAE,EAAEU,OAAQ;AACZP,IAAAA,QAAQ,EAAEY,YAAa;AACvBV,IAAAA,QAAQ,EAAEA;AAAS,GAAA,CACnB,CACK,CAAC;AAEV,CACD;AAEAX,SAAS,CAACmC,WAAW,GAAG,WAAW;;;;"}
@@ -5,6 +5,7 @@ var dsIcons = require('@muraldevkit/ds-icons');
5
5
  var React = require('react');
6
6
  var classnames = require('classnames');
7
7
  var MrlSwitchStandalone_module = require('./MrlSwitchStandalone.module.scss.js');
8
+ var useMrlAnalytics = require('../../../../hooks/useMrlAnalytics/useMrlAnalytics.js');
8
9
  var MrlSvg = require('../../../svg/MrlSvg/MrlSvg.js');
9
10
 
10
11
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
@@ -30,7 +31,7 @@ function _interopNamespace(e) {
30
31
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
31
32
  var classnames__default = /*#__PURE__*/_interopDefault(classnames);
32
33
 
33
- var _excluded = ["className", "id", "labelledBy", "onChange", "selected"];
34
+ var _excluded = ["className", "id", "labelledBy", "onChange", "selected", "eventId"];
34
35
  var MrlSwitchStandalone = /*#__PURE__*/React.memo(_ref => {
35
36
  var className = _ref.className,
36
37
  id = _ref.id,
@@ -38,15 +39,23 @@ var MrlSwitchStandalone = /*#__PURE__*/React.memo(_ref => {
38
39
  onChange = _ref.onChange,
39
40
  _ref$selected = _ref.selected,
40
41
  selected = _ref$selected === void 0 ? false : _ref$selected,
42
+ eventId = _ref.eventId,
41
43
  rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
42
44
  var _useState = React.useState(selected),
43
45
  _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
44
46
  isChecked = _useState2[0],
45
47
  setIsChecked = _useState2[1];
48
+ var trackInteraction = useMrlAnalytics.useMrlTrackInteraction('MrlSwitchStandalone', eventId);
46
49
  React.useEffect(() => {
47
50
  setIsChecked(selected);
48
51
  }, [selected]);
49
52
  var handleChange = e => {
53
+ trackInteraction({
54
+ action: 'toggle',
55
+ metadata: {
56
+ selected: e.target.checked
57
+ }
58
+ });
50
59
  setIsChecked(e.target.checked);
51
60
  onChange(e);
52
61
  };
@@ -1 +1 @@
1
- {"version":3,"file":"MrlSwitchStandalone.js","sources":["../../../../../../src/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.tsx"],"sourcesContent":["import { check, minus } from '@muraldevkit/ds-icons';\nimport * as React from 'react';\nimport classnames from 'classnames';\nimport { memo, useState, useEffect } from 'react';\nimport { MrlSvg } from '../../..';\n\nimport styles from './MrlSwitchStandalone.module.scss';\n\ninterface MrlSwitchStandaloneProps extends React.ComponentPropsWithoutRef<'input'> {\n\tclassName?: string;\n\tid: string;\n\tlabelledBy?: string;\n\tonChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n\tselected?: boolean;\n}\n\nexport const MrlSwitchStandalone = memo(\n\t({\n\t\tclassName,\n\t\tid,\n\t\tlabelledBy,\n\t\tonChange,\n\t\tselected = false,\n\t\t...rest\n\t}: MrlSwitchStandaloneProps) => {\n\t\tconst [isChecked, setIsChecked] = useState(selected);\n\n\t\tuseEffect(() => {\n\t\t\tsetIsChecked(selected);\n\t\t}, [selected]);\n\n\t\tconst handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\t\tsetIsChecked(e.target.checked);\n\t\t\tonChange(e);\n\t\t};\n\n\t\tconst containerClasses = classnames(\n\t\t\tclassName,\n\t\t\t'MrlSwitchStandalone',\n\t\t\tstyles['MrlSwitchStandalone']\n\t\t);\n\n\t\treturn (\n\t\t\t<div className={containerClasses}>\n\t\t\t\t<input\n\t\t\t\t\t{...rest}\n\t\t\t\t\taria-labelledby={labelledBy}\n\t\t\t\t\taria-checked={isChecked}\n\t\t\t\t\tclassName={classnames(\n\t\t\t\t\t\t'MrlSwitchStandalone-checkbox',\n\t\t\t\t\t\tstyles['MrlSwitchStandalone-checkbox']\n\t\t\t\t\t)}\n\t\t\t\t\tid={id}\n\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\trole=\"switch\"\n\t\t\t\t/>\n\t\t\t\t<span\n\t\t\t\t\tclassName={classnames('MrlSwitchStandalone-switch', styles['MrlSwitchStandalone-switch'])}\n\t\t\t\t/>\n\t\t\t\t<span\n\t\t\t\t\tclassName={classnames(\n\t\t\t\t\t\t'MrlSwitchStandalone-switch-indicator',\n\t\t\t\t\t\tstyles['MrlSwitchStandalone-switch-indicator']\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<MrlSvg size=\"auto\" svg={isChecked ? check : minus} />\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nMrlSwitchStandalone.displayName = 'MrlSwitchStandalone';\n"],"names":["MrlSwitchStandalone","memo","_ref","className","id","labelledBy","onChange","_ref$selected","selected","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","isChecked","setIsChecked","useEffect","handleChange","e","target","checked","containerClasses","classnames","styles","React","createElement","_extends","type","role","MrlSvg","size","svg","check","minus","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgBaA,mBAAmB,gBAAGC,UAAI,CACtCC,IAAA,IAOgC;AAAA,EAAA,IAN/BC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,EAAE,GAAAF,IAAA,CAAFE,EAAE;IACFC,UAAU,GAAAH,IAAA,CAAVG,UAAU;IACVC,QAAQ,GAAAJ,IAAA,CAARI,QAAQ;IAAAC,aAAA,GAAAL,IAAA,CACRM,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,aAAA;AACbE,IAAAA,IAAI,GAAAC,iDAAA,CAAAR,IAAA,EAAAS,SAAA,CAAA;AAEP,EAAA,IAAAC,SAAA,GAAkCC,cAAQ,CAACL,QAAQ,CAAC;IAAAM,UAAA,GAAAC,uCAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAA7CI,IAAAA,SAAS,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,YAAY,GAAAH,UAAA,CAAA,CAAA,CAAA;AAE9BI,EAAAA,eAAS,CAAC,MAAM;IACfD,YAAY,CAACT,QAAQ,CAAC;AACvB,EAAA,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,IAAMW,YAAY,GAAIC,CAAsC,IAAK;AAChEH,IAAAA,YAAY,CAACG,CAAC,CAACC,MAAM,CAACC,OAAO,CAAC;IAC9BhB,QAAQ,CAACc,CAAC,CAAC;EACZ,CAAC;AAED,EAAA,IAAMG,gBAAgB,GAAGC,2BAAU,CAClCrB,SAAS,EACT,qBAAqB,EACrBsB,kCAAM,CAAC,qBAAqB,CAC7B,CAAC;EAED,oBACCC,gBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKxB,IAAAA,SAAS,EAAEoB;AAAiB,GAAA,eAChCG,gBAAA,CAAAC,aAAA,CAAA,OAAA,EAAAC,iCAAA,KACKnB,IAAI,EAAA;AACR,IAAA,iBAAA,EAAiBJ,UAAW;AAC5B,IAAA,cAAA,EAAcW,SAAU;IACxBb,SAAS,EAAEqB,2BAAU,CACpB,8BAA8B,EAC9BC,kCAAM,CAAC,8BAA8B,CACtC,CAAE;AACFrB,IAAAA,EAAE,EAAEA,EAAG;AACPE,IAAAA,QAAQ,EAAEa,YAAa;AACvBU,IAAAA,IAAI,EAAC,UAAU;AACfC,IAAAA,IAAI,EAAC;AAAQ,GAAA,CACb,CAAC,eACFJ,gBAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IACCxB,SAAS,EAAEqB,2BAAU,CAAC,4BAA4B,EAAEC,kCAAM,CAAC,4BAA4B,CAAC;AAAE,GAC1F,CAAC,eACFC,gBAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IACCxB,SAAS,EAAEqB,2BAAU,CACpB,sCAAsC,EACtCC,kCAAM,CAAC,sCAAsC,CAC9C;AAAE,GAAA,eAEFC,gBAAA,CAAAC,aAAA,CAACI,aAAM,EAAA;AAACC,IAAAA,IAAI,EAAC,MAAM;AAACC,IAAAA,GAAG,EAAEjB,SAAS,GAAGkB,aAAK,GAAGC;GAAQ,CAChD,CACF,CAAC;AAER,CACD;AAEAnC,mBAAmB,CAACoC,WAAW,GAAG,qBAAqB;;;;"}
1
+ {"version":3,"file":"MrlSwitchStandalone.js","sources":["../../../../../../src/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.tsx"],"sourcesContent":["import { check, minus } from '@muraldevkit/ds-icons';\nimport * as React from 'react';\nimport classnames from 'classnames';\nimport { memo, useState, useEffect } from 'react';\nimport { MrlSvg } from '../../..';\nimport { useMrlTrackInteraction } from '../../../../hooks/useMrlAnalytics';\n\nimport styles from './MrlSwitchStandalone.module.scss';\n\ninterface MrlSwitchStandaloneProps extends React.ComponentPropsWithoutRef<'input'> {\n\tclassName?: string;\n\tid: string;\n\tlabelledBy?: string;\n\tonChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n\tselected?: boolean;\n\t/**\n\t * Enables interaction tracking for this switch. Provide a stable, non-PII id\n\t * (e.g. 'workspace-sso-toggle'). When omitted, the switch emits no analytics.\n\t */\n\teventId?: string;\n}\n\nexport const MrlSwitchStandalone = memo(\n\t({\n\t\tclassName,\n\t\tid,\n\t\tlabelledBy,\n\t\tonChange,\n\t\tselected = false,\n\t\teventId,\n\t\t...rest\n\t}: MrlSwitchStandaloneProps) => {\n\t\tconst [isChecked, setIsChecked] = useState(selected);\n\n\t\tconst trackInteraction = useMrlTrackInteraction('MrlSwitchStandalone', eventId);\n\n\t\tuseEffect(() => {\n\t\t\tsetIsChecked(selected);\n\t\t}, [selected]);\n\n\t\tconst handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\t\ttrackInteraction({ action: 'toggle', metadata: { selected: e.target.checked } });\n\n\t\t\tsetIsChecked(e.target.checked);\n\t\t\tonChange(e);\n\t\t};\n\n\t\tconst containerClasses = classnames(\n\t\t\tclassName,\n\t\t\t'MrlSwitchStandalone',\n\t\t\tstyles['MrlSwitchStandalone']\n\t\t);\n\n\t\treturn (\n\t\t\t<div className={containerClasses}>\n\t\t\t\t<input\n\t\t\t\t\t{...rest}\n\t\t\t\t\taria-labelledby={labelledBy}\n\t\t\t\t\taria-checked={isChecked}\n\t\t\t\t\tclassName={classnames(\n\t\t\t\t\t\t'MrlSwitchStandalone-checkbox',\n\t\t\t\t\t\tstyles['MrlSwitchStandalone-checkbox']\n\t\t\t\t\t)}\n\t\t\t\t\tid={id}\n\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\trole=\"switch\"\n\t\t\t\t/>\n\t\t\t\t<span\n\t\t\t\t\tclassName={classnames('MrlSwitchStandalone-switch', styles['MrlSwitchStandalone-switch'])}\n\t\t\t\t/>\n\t\t\t\t<span\n\t\t\t\t\tclassName={classnames(\n\t\t\t\t\t\t'MrlSwitchStandalone-switch-indicator',\n\t\t\t\t\t\tstyles['MrlSwitchStandalone-switch-indicator']\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<MrlSvg size=\"auto\" svg={isChecked ? check : minus} />\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nMrlSwitchStandalone.displayName = 'MrlSwitchStandalone';\n"],"names":["MrlSwitchStandalone","memo","_ref","className","id","labelledBy","onChange","_ref$selected","selected","eventId","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","isChecked","setIsChecked","trackInteraction","useMrlTrackInteraction","useEffect","handleChange","e","action","metadata","target","checked","containerClasses","classnames","styles","React","createElement","_extends","type","role","MrlSvg","size","svg","check","minus","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsBaA,mBAAmB,gBAAGC,UAAI,CACtCC,IAAA,IAQgC;AAAA,EAAA,IAP/BC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,EAAE,GAAAF,IAAA,CAAFE,EAAE;IACFC,UAAU,GAAAH,IAAA,CAAVG,UAAU;IACVC,QAAQ,GAAAJ,IAAA,CAARI,QAAQ;IAAAC,aAAA,GAAAL,IAAA,CACRM,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,aAAA;IAChBE,OAAO,GAAAP,IAAA,CAAPO,OAAO;AACJC,IAAAA,IAAI,GAAAC,iDAAA,CAAAT,IAAA,EAAAU,SAAA,CAAA;AAEP,EAAA,IAAAC,SAAA,GAAkCC,cAAQ,CAACN,QAAQ,CAAC;IAAAO,UAAA,GAAAC,uCAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAA7CI,IAAAA,SAAS,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,YAAY,GAAAH,UAAA,CAAA,CAAA,CAAA;AAE9B,EAAA,IAAMI,gBAAgB,GAAGC,sCAAsB,CAAC,qBAAqB,EAAEX,OAAO,CAAC;AAE/EY,EAAAA,eAAS,CAAC,MAAM;IACfH,YAAY,CAACV,QAAQ,CAAC;AACvB,EAAA,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,IAAMc,YAAY,GAAIC,CAAsC,IAAK;AAChEJ,IAAAA,gBAAgB,CAAC;AAAEK,MAAAA,MAAM,EAAE,QAAQ;AAAEC,MAAAA,QAAQ,EAAE;AAAEjB,QAAAA,QAAQ,EAAEe,CAAC,CAACG,MAAM,CAACC;AAAQ;AAAE,KAAC,CAAC;AAEhFT,IAAAA,YAAY,CAACK,CAAC,CAACG,MAAM,CAACC,OAAO,CAAC;IAC9BrB,QAAQ,CAACiB,CAAC,CAAC;EACZ,CAAC;AAED,EAAA,IAAMK,gBAAgB,GAAGC,2BAAU,CAClC1B,SAAS,EACT,qBAAqB,EACrB2B,kCAAM,CAAC,qBAAqB,CAC7B,CAAC;EAED,oBACCC,gBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAK7B,IAAAA,SAAS,EAAEyB;AAAiB,GAAA,eAChCG,gBAAA,CAAAC,aAAA,CAAA,OAAA,EAAAC,iCAAA,KACKvB,IAAI,EAAA;AACR,IAAA,iBAAA,EAAiBL,UAAW;AAC5B,IAAA,cAAA,EAAcY,SAAU;IACxBd,SAAS,EAAE0B,2BAAU,CACpB,8BAA8B,EAC9BC,kCAAM,CAAC,8BAA8B,CACtC,CAAE;AACF1B,IAAAA,EAAE,EAAEA,EAAG;AACPE,IAAAA,QAAQ,EAAEgB,YAAa;AACvBY,IAAAA,IAAI,EAAC,UAAU;AACfC,IAAAA,IAAI,EAAC;AAAQ,GAAA,CACb,CAAC,eACFJ,gBAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IACC7B,SAAS,EAAE0B,2BAAU,CAAC,4BAA4B,EAAEC,kCAAM,CAAC,4BAA4B,CAAC;AAAE,GAC1F,CAAC,eACFC,gBAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IACC7B,SAAS,EAAE0B,2BAAU,CACpB,sCAAsC,EACtCC,kCAAM,CAAC,sCAAsC,CAC9C;AAAE,GAAA,eAEFC,gBAAA,CAAAC,aAAA,CAACI,aAAM,EAAA;AAACC,IAAAA,IAAI,EAAC,MAAM;AAACC,IAAAA,GAAG,EAAErB,SAAS,GAAGsB,aAAK,GAAGC;GAAQ,CAChD,CACF,CAAC;AAER,CACD;AAEAxC,mBAAmB,CAACyC,WAAW,GAAG,qBAAqB;;;;"}
@@ -8,6 +8,7 @@ var MrlEditableTextInput_module = require('./MrlEditableTextInput.module.scss.js
8
8
  var useActiveColor = require('../../hooks/useActiveColor.js');
9
9
  var useIsEditable = require('../../hooks/useIsEditable.js');
10
10
  var MrlEditableTextInputRightIcon = require('./MrlEditableTextInputRightIcon.js');
11
+ var useMrlAnalytics = require('../../../../hooks/useMrlAnalytics/useMrlAnalytics.js');
11
12
  var MrlSvg = require('../../../svg/MrlSvg/MrlSvg.js');
12
13
 
13
14
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
@@ -33,7 +34,7 @@ function _interopNamespace(e) {
33
34
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
34
35
  var classnames__default = /*#__PURE__*/_interopDefault(classnames);
35
36
 
36
- var _excluded = ["inputId", "maxLength", "placeholder", "state", "value", "error", "isEditable", "setIsEditable", "showIconOnHover", "inputLabelText"];
37
+ var _excluded = ["inputId", "maxLength", "placeholder", "state", "value", "error", "isEditable", "setIsEditable", "showIconOnHover", "inputLabelText", "eventId"];
37
38
  var MrlEditableTextInput = /*#__PURE__*/React__namespace.forwardRef(function MrlEditiableTextInput(props, ref) {
38
39
  var inputId = props.inputId,
39
40
  maxLength = props.maxLength,
@@ -46,11 +47,16 @@ var MrlEditableTextInput = /*#__PURE__*/React__namespace.forwardRef(function Mrl
46
47
  _props$showIconOnHove = props.showIconOnHover,
47
48
  showIconOnHover = _props$showIconOnHove === void 0 ? false : _props$showIconOnHove,
48
49
  inputLabelText = props.inputLabelText,
50
+ eventId = props.eventId,
49
51
  attrs = _rollupPluginBabelHelpers.objectWithoutProperties(props, _excluded);
50
52
  // html id to be reference by input and error description to relay the error for a specific input
51
53
  var describedById = "".concat(inputId, "-description");
52
54
  var textInputRef = React__namespace.useRef(null);
53
55
  var iconRef = React__namespace.useRef(null);
56
+ // the value when the field gained focus, so `change` can be emitted once per
57
+ // editing session instead of once per keystroke.
58
+ var valueOnFocusRef = React__namespace.useRef('');
59
+ var trackInteraction = useMrlAnalytics.useMrlTrackInteraction('MrlEditableTextInput', eventId);
54
60
  var _useActiveColor = useActiveColor.useActiveColor(state),
55
61
  hasActiveColor = _useActiveColor.hasActiveColor,
56
62
  setHasActiveColor = _useActiveColor.setHasActiveColor;
@@ -66,9 +72,12 @@ var MrlEditableTextInput = /*#__PURE__*/React__namespace.forwardRef(function Mrl
66
72
  setIsEditing = _useIsEditable.setIsEditing;
67
73
  React__namespace.useImperativeHandle(ref, () => iconRef.current);
68
74
  var unlockInput = React__namespace.useCallback(() => {
75
+ trackInteraction({
76
+ action: 'edit'
77
+ });
69
78
  setIsEditable(true);
70
79
  setIsEditing(true);
71
- }, [setIsEditable, setIsEditing]);
80
+ }, [setIsEditable, setIsEditing, trackInteraction]);
72
81
  var lockInput = React__namespace.useCallback(() => {
73
82
  setIsEditable(false);
74
83
  setIsEditing(false);
@@ -103,12 +112,20 @@ var MrlEditableTextInput = /*#__PURE__*/React__namespace.forwardRef(function Mrl
103
112
  var handleOnBlur = React__namespace.useCallback(e => {
104
113
  setHasActiveColor(false);
105
114
  lockInput();
115
+
116
+ // the value itself is never emitted — only the fact that it changed.
117
+ if (e.target.value !== valueOnFocusRef.current) {
118
+ trackInteraction({
119
+ action: 'change'
120
+ });
121
+ }
106
122
  if (typeof attrs.onBlur === 'function') {
107
123
  attrs.onBlur(e);
108
124
  }
109
- }, [attrs, setHasActiveColor, lockInput]);
125
+ }, [attrs, setHasActiveColor, lockInput, trackInteraction]);
110
126
  var handleOnFocus = React__namespace.useCallback(e => {
111
127
  setHasActiveColor(true);
128
+ valueOnFocusRef.current = e.target.value;
112
129
  if (typeof attrs.onFocus === 'function') {
113
130
  attrs.onFocus(e);
114
131
  }