@muraldevkit/ui-toolkit 4.73.0-dev-NYDL.1 → 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.
- package/dist/cjs/components/avatar/MrlAvatarButton/MrlAvatarButton.js +8 -1
- package/dist/cjs/components/avatar/MrlAvatarButton/MrlAvatarButton.js.map +1 -1
- package/dist/cjs/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.js +14 -4
- package/dist/cjs/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.js.map +1 -1
- package/dist/cjs/components/button/MrlAnimatedIconButton/MrlAnimatedIconButton.js +8 -1
- package/dist/cjs/components/button/MrlAnimatedIconButton/MrlAnimatedIconButton.js.map +1 -1
- package/dist/cjs/components/button/MrlButton/MrlButton.js +3 -3
- package/dist/cjs/components/button/MrlButton/MrlButton.js.map +1 -1
- package/dist/cjs/components/button/MrlIconButton/MrlIconButton.js +8 -1
- package/dist/cjs/components/button/MrlIconButton/MrlIconButton.js.map +1 -1
- package/dist/cjs/components/button/MrlProcessingButton/MrlProcessingButton.js +21 -2
- package/dist/cjs/components/button/MrlProcessingButton/MrlProcessingButton.js.map +1 -1
- package/dist/cjs/components/callout/MrlCallout/MrlCallout.js +36 -3
- package/dist/cjs/components/callout/MrlCallout/MrlCallout.js.map +1 -1
- package/dist/cjs/components/filter/MrlFilter/MrlFilter.js +18 -2
- package/dist/cjs/components/filter/MrlFilter/MrlFilter.js.map +1 -1
- package/dist/cjs/components/filter/MrlFilterItem/MrlFilterItem.js +11 -1
- package/dist/cjs/components/filter/MrlFilterItem/MrlFilterItem.js.map +1 -1
- package/dist/cjs/components/form/checkbox/MrlCheckbox/MrlCheckbox.js +17 -1
- package/dist/cjs/components/form/checkbox/MrlCheckbox/MrlCheckbox.js.map +1 -1
- package/dist/cjs/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.js +24 -1
- package/dist/cjs/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.js.map +1 -1
- package/dist/cjs/components/form/date-picker/MrlDatePicker.js +17 -2
- package/dist/cjs/components/form/date-picker/MrlDatePicker.js.map +1 -1
- package/dist/cjs/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.js +11 -2
- package/dist/cjs/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.js.map +1 -1
- package/dist/cjs/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.js +8 -1
- package/dist/cjs/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.js.map +1 -1
- package/dist/cjs/components/form/radio/MrlRadioButton/MrlRadioButton.js +19 -1
- package/dist/cjs/components/form/radio/MrlRadioButton/MrlRadioButton.js.map +1 -1
- package/dist/cjs/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.js +19 -1
- package/dist/cjs/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.js.map +1 -1
- package/dist/cjs/components/form/select/MrlCreatableSelect/MrlCreatableSelect.js +42 -2
- package/dist/cjs/components/form/select/MrlCreatableSelect/MrlCreatableSelect.js.map +1 -1
- package/dist/cjs/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.js +42 -2
- package/dist/cjs/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.js.map +1 -1
- package/dist/cjs/components/form/select/MrlMultiSelect/MrlMultiSelect.js +34 -2
- package/dist/cjs/components/form/select/MrlMultiSelect/MrlMultiSelect.js.map +1 -1
- package/dist/cjs/components/form/select/MrlSelect/MrlSelect.js +34 -2
- package/dist/cjs/components/form/select/MrlSelect/MrlSelect.js.map +1 -1
- package/dist/cjs/components/form/switch/MrlSwitch/MrlSwitch.js +14 -2
- package/dist/cjs/components/form/switch/MrlSwitch/MrlSwitch.js.map +1 -1
- package/dist/cjs/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.js +10 -1
- package/dist/cjs/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.js.map +1 -1
- package/dist/cjs/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.js +20 -3
- package/dist/cjs/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.js.map +1 -1
- package/dist/cjs/components/form/text-input/MrlTextInput/MrlTextInput.js +20 -3
- package/dist/cjs/components/form/text-input/MrlTextInput/MrlTextInput.js.map +1 -1
- package/dist/cjs/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.js +20 -3
- package/dist/cjs/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.js.map +1 -1
- package/dist/cjs/components/form/textarea/MrlTextarea/MrlTextarea.js +38 -1
- package/dist/cjs/components/form/textarea/MrlTextarea/MrlTextarea.js.map +1 -1
- package/dist/cjs/components/layout/MrlSidebar/MrlSidebar.js +12 -2
- package/dist/cjs/components/layout/MrlSidebar/MrlSidebar.js.map +1 -1
- package/dist/cjs/components/link/MrlLink/MrlLink.js +21 -2
- package/dist/cjs/components/link/MrlLink/MrlLink.js.map +1 -1
- package/dist/cjs/components/link/MrlLinkButton/MrlLinkButton.js +12 -1
- package/dist/cjs/components/link/MrlLinkButton/MrlLinkButton.js.map +1 -1
- package/dist/cjs/components/menu/MrlMenu/MrlMenu.js +20 -1
- package/dist/cjs/components/menu/MrlMenu/MrlMenu.js.map +1 -1
- package/dist/cjs/components/menu/MrlMenuItem/MrlMenuItem.js +18 -1
- package/dist/cjs/components/menu/MrlMenuItem/MrlMenuItem.js.map +1 -1
- package/dist/cjs/components/menu/MrlMenuItemLink/MrlMenuItemLink.js +10 -1
- package/dist/cjs/components/menu/MrlMenuItemLink/MrlMenuItemLink.js.map +1 -1
- package/dist/cjs/components/modal/MrlModal/MrlModal.js +22 -1
- package/dist/cjs/components/modal/MrlModal/MrlModal.js.map +1 -1
- package/dist/cjs/components/notification/MrlBlockNotification/MrlBlockNotification.js +27 -1
- package/dist/cjs/components/notification/MrlBlockNotification/MrlBlockNotification.js.map +1 -1
- package/dist/cjs/components/notification/MrlToast/MrlToast.js +28 -3
- package/dist/cjs/components/notification/MrlToast/MrlToast.js.map +1 -1
- package/dist/cjs/components/pagination/MrlPaginationButton/MrlPaginationButton.js +18 -2
- package/dist/cjs/components/pagination/MrlPaginationButton/MrlPaginationButton.js.map +1 -1
- package/dist/cjs/components/panel/MrlPanel/MrlPanel.js +24 -4
- package/dist/cjs/components/panel/MrlPanel/MrlPanel.js.map +1 -1
- package/dist/cjs/components/popover/MrlPopover/MrlPopover.js +18 -1
- package/dist/cjs/components/popover/MrlPopover/MrlPopover.js.map +1 -1
- package/dist/cjs/components/table/MrlSmartTable/MrlSmartTable.js +31 -2
- package/dist/cjs/components/table/MrlSmartTable/MrlSmartTable.js.map +1 -1
- package/dist/cjs/components/table/MrlTableRow/MrlTableRow.js +13 -3
- package/dist/cjs/components/table/MrlTableRow/MrlTableRow.js.map +1 -1
- package/dist/cjs/components/tabs/MrlTab/MrlTab.js +10 -1
- package/dist/cjs/components/tabs/MrlTab/MrlTab.js.map +1 -1
- package/dist/cjs/components/tabs/MrlTabLink/MrlTabLink.js +10 -1
- package/dist/cjs/components/tabs/MrlTabLink/MrlTabLink.js.map +1 -1
- package/dist/cjs/components/toolbar/MrlToolbarButton/MrlToolbarButton.js +19 -3
- package/dist/cjs/components/toolbar/MrlToolbarButton/MrlToolbarButton.js.map +1 -1
- package/dist/cjs/components/tooltip/MrlTooltip/MrlTooltip.js +23 -1
- package/dist/cjs/components/tooltip/MrlTooltip/MrlTooltip.js.map +1 -1
- package/dist/cjs/hooks/useMrlAnalytics/useMrlAnalytics.js +7 -7
- package/dist/cjs/hooks/useMrlAnalytics/useMrlAnalytics.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/components/avatar/MrlAvatarButton/MrlAvatarButton.d.ts +6 -1
- package/dist/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.d.ts +5 -0
- package/dist/components/button/MrlButton/MrlButton.d.ts +1 -1
- package/dist/components/button/MrlIconButton/MrlIconButton.d.ts +5 -0
- package/dist/components/callout/MrlCallout/MrlCallout.d.ts +7 -0
- package/dist/components/filter/MrlFilter/MrlFilter.d.ts +7 -0
- package/dist/components/filter/MrlFilterItem/MrlFilterItem.d.ts +7 -0
- package/dist/components/form/checkbox/MrlCheckbox/MrlCheckbox.d.ts +6 -1
- package/dist/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.d.ts +6 -1
- package/dist/components/form/date-picker/MrlDatePicker.d.ts +7 -0
- package/dist/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.d.ts +6 -1
- package/dist/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.d.ts +8 -1
- package/dist/components/form/radio/MrlRadioButton/MrlRadioButton.d.ts +6 -1
- package/dist/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.d.ts +6 -1
- package/dist/components/form/select/MrlCreatableSelect/MrlCreatableSelect.d.ts +7 -0
- package/dist/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.d.ts +7 -0
- package/dist/components/form/select/MrlMultiSelect/MrlMultiSelect.d.ts +7 -0
- package/dist/components/form/select/MrlSelect/MrlSelect.d.ts +7 -0
- package/dist/components/form/switch/MrlSwitch/MrlSwitch.d.ts +6 -1
- package/dist/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.d.ts +6 -1
- package/dist/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.d.ts +8 -0
- package/dist/components/form/text-input/MrlTextInput/MrlTextInput.d.ts +8 -0
- package/dist/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.d.ts +8 -0
- package/dist/components/form/textarea/MrlTextarea/MrlTextarea.d.ts +9 -1
- package/dist/components/layout/MrlSidebar/MrlSidebar.d.ts +8 -1
- package/dist/components/link/MrlLink/MrlLink.d.ts +6 -1
- package/dist/components/link/MrlLinkButton/MrlLinkButton.d.ts +5 -0
- package/dist/components/menu/MrlMenu/MrlMenu.d.ts +6 -1
- package/dist/components/menu/MrlMenuItem/MrlMenuItem.d.ts +6 -1
- package/dist/components/menu/MrlMenuItemLink/MrlMenuItemLink.d.ts +6 -1
- package/dist/components/modal/MrlModal/MrlModal.d.ts +5 -0
- package/dist/components/notification/MrlBlockNotification/MrlBlockNotification.d.ts +7 -0
- package/dist/components/notification/MrlToast/MrlToast.d.ts +8 -1
- package/dist/components/pagination/MrlPaginationButton/MrlPaginationButton.d.ts +6 -1
- package/dist/components/panel/MrlPanel/MrlPanel.d.ts +8 -0
- package/dist/components/popover/MrlPopover/MrlPopover.d.ts +6 -1
- package/dist/components/table/MrlSmartTable/MrlSmartTable.d.ts +7 -0
- package/dist/components/table/MrlTableRow/MrlTableRow.d.ts +7 -0
- package/dist/components/tabs/MrlTab/MrlTab.d.ts +6 -1
- package/dist/components/tabs/MrlTabLink/MrlTabLink.d.ts +6 -1
- package/dist/components/toolbar/MrlToolbarButton/MrlToolbarButton.d.ts +5 -0
- package/dist/components/tooltip/MrlTooltip/MrlTooltip.d.ts +8 -0
- package/dist/contexts/MrlAnalyticsContext/types.d.ts +1 -1
- package/dist/esm/components/avatar/MrlAvatarButton/MrlAvatarButton.js +8 -1
- package/dist/esm/components/avatar/MrlAvatarButton/MrlAvatarButton.js.map +1 -1
- package/dist/esm/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.js +14 -4
- package/dist/esm/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.js.map +1 -1
- package/dist/esm/components/button/MrlAnimatedIconButton/MrlAnimatedIconButton.js +8 -1
- package/dist/esm/components/button/MrlAnimatedIconButton/MrlAnimatedIconButton.js.map +1 -1
- package/dist/esm/components/button/MrlButton/MrlButton.js +3 -3
- package/dist/esm/components/button/MrlButton/MrlButton.js.map +1 -1
- package/dist/esm/components/button/MrlIconButton/MrlIconButton.js +8 -1
- package/dist/esm/components/button/MrlIconButton/MrlIconButton.js.map +1 -1
- package/dist/esm/components/button/MrlProcessingButton/MrlProcessingButton.js +21 -2
- package/dist/esm/components/button/MrlProcessingButton/MrlProcessingButton.js.map +1 -1
- package/dist/esm/components/callout/MrlCallout/MrlCallout.js +36 -3
- package/dist/esm/components/callout/MrlCallout/MrlCallout.js.map +1 -1
- package/dist/esm/components/filter/MrlFilter/MrlFilter.js +18 -2
- package/dist/esm/components/filter/MrlFilter/MrlFilter.js.map +1 -1
- package/dist/esm/components/filter/MrlFilterItem/MrlFilterItem.js +11 -1
- package/dist/esm/components/filter/MrlFilterItem/MrlFilterItem.js.map +1 -1
- package/dist/esm/components/form/checkbox/MrlCheckbox/MrlCheckbox.js +17 -1
- package/dist/esm/components/form/checkbox/MrlCheckbox/MrlCheckbox.js.map +1 -1
- package/dist/esm/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.js +24 -1
- package/dist/esm/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.js.map +1 -1
- package/dist/esm/components/form/date-picker/MrlDatePicker.js +17 -2
- package/dist/esm/components/form/date-picker/MrlDatePicker.js.map +1 -1
- package/dist/esm/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.js +11 -2
- package/dist/esm/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.js.map +1 -1
- package/dist/esm/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.js +8 -1
- package/dist/esm/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.js.map +1 -1
- package/dist/esm/components/form/radio/MrlRadioButton/MrlRadioButton.js +19 -1
- package/dist/esm/components/form/radio/MrlRadioButton/MrlRadioButton.js.map +1 -1
- package/dist/esm/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.js +19 -1
- package/dist/esm/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.js.map +1 -1
- package/dist/esm/components/form/select/MrlCreatableSelect/MrlCreatableSelect.js +42 -2
- package/dist/esm/components/form/select/MrlCreatableSelect/MrlCreatableSelect.js.map +1 -1
- package/dist/esm/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.js +42 -2
- package/dist/esm/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.js.map +1 -1
- package/dist/esm/components/form/select/MrlMultiSelect/MrlMultiSelect.js +34 -2
- package/dist/esm/components/form/select/MrlMultiSelect/MrlMultiSelect.js.map +1 -1
- package/dist/esm/components/form/select/MrlSelect/MrlSelect.js +34 -2
- package/dist/esm/components/form/select/MrlSelect/MrlSelect.js.map +1 -1
- package/dist/esm/components/form/switch/MrlSwitch/MrlSwitch.js +14 -2
- package/dist/esm/components/form/switch/MrlSwitch/MrlSwitch.js.map +1 -1
- package/dist/esm/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.js +10 -1
- package/dist/esm/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.js.map +1 -1
- package/dist/esm/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.js +20 -3
- package/dist/esm/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.js.map +1 -1
- package/dist/esm/components/form/text-input/MrlTextInput/MrlTextInput.js +20 -3
- package/dist/esm/components/form/text-input/MrlTextInput/MrlTextInput.js.map +1 -1
- package/dist/esm/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.js +20 -3
- package/dist/esm/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.js.map +1 -1
- package/dist/esm/components/form/textarea/MrlTextarea/MrlTextarea.js +38 -1
- package/dist/esm/components/form/textarea/MrlTextarea/MrlTextarea.js.map +1 -1
- package/dist/esm/components/layout/MrlSidebar/MrlSidebar.js +12 -2
- package/dist/esm/components/layout/MrlSidebar/MrlSidebar.js.map +1 -1
- package/dist/esm/components/link/MrlLink/MrlLink.js +21 -2
- package/dist/esm/components/link/MrlLink/MrlLink.js.map +1 -1
- package/dist/esm/components/link/MrlLinkButton/MrlLinkButton.js +12 -1
- package/dist/esm/components/link/MrlLinkButton/MrlLinkButton.js.map +1 -1
- package/dist/esm/components/menu/MrlMenu/MrlMenu.js +20 -1
- package/dist/esm/components/menu/MrlMenu/MrlMenu.js.map +1 -1
- package/dist/esm/components/menu/MrlMenuItem/MrlMenuItem.js +18 -1
- package/dist/esm/components/menu/MrlMenuItem/MrlMenuItem.js.map +1 -1
- package/dist/esm/components/menu/MrlMenuItemLink/MrlMenuItemLink.js +10 -1
- package/dist/esm/components/menu/MrlMenuItemLink/MrlMenuItemLink.js.map +1 -1
- package/dist/esm/components/modal/MrlModal/MrlModal.js +22 -1
- package/dist/esm/components/modal/MrlModal/MrlModal.js.map +1 -1
- package/dist/esm/components/notification/MrlBlockNotification/MrlBlockNotification.js +27 -1
- package/dist/esm/components/notification/MrlBlockNotification/MrlBlockNotification.js.map +1 -1
- package/dist/esm/components/notification/MrlToast/MrlToast.js +28 -3
- package/dist/esm/components/notification/MrlToast/MrlToast.js.map +1 -1
- package/dist/esm/components/pagination/MrlPaginationButton/MrlPaginationButton.js +18 -2
- package/dist/esm/components/pagination/MrlPaginationButton/MrlPaginationButton.js.map +1 -1
- package/dist/esm/components/panel/MrlPanel/MrlPanel.js +24 -4
- package/dist/esm/components/panel/MrlPanel/MrlPanel.js.map +1 -1
- package/dist/esm/components/popover/MrlPopover/MrlPopover.js +18 -1
- package/dist/esm/components/popover/MrlPopover/MrlPopover.js.map +1 -1
- package/dist/esm/components/table/MrlSmartTable/MrlSmartTable.js +31 -2
- package/dist/esm/components/table/MrlSmartTable/MrlSmartTable.js.map +1 -1
- package/dist/esm/components/table/MrlTableRow/MrlTableRow.js +13 -3
- package/dist/esm/components/table/MrlTableRow/MrlTableRow.js.map +1 -1
- package/dist/esm/components/tabs/MrlTab/MrlTab.js +10 -1
- package/dist/esm/components/tabs/MrlTab/MrlTab.js.map +1 -1
- package/dist/esm/components/tabs/MrlTabLink/MrlTabLink.js +10 -1
- package/dist/esm/components/tabs/MrlTabLink/MrlTabLink.js.map +1 -1
- package/dist/esm/components/toolbar/MrlToolbarButton/MrlToolbarButton.js +19 -3
- package/dist/esm/components/toolbar/MrlToolbarButton/MrlToolbarButton.js.map +1 -1
- package/dist/esm/components/tooltip/MrlTooltip/MrlTooltip.js +23 -1
- package/dist/esm/components/tooltip/MrlTooltip/MrlTooltip.js.map +1 -1
- package/dist/esm/hooks/useMrlAnalytics/useMrlAnalytics.js +7 -7
- package/dist/esm/hooks/useMrlAnalytics/useMrlAnalytics.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/hooks/useMrlAnalytics/useMrlAnalytics.d.ts +4 -4
- package/dist/types/components/avatar/MrlAvatarButton/MrlAvatarButton.d.ts +6 -1
- package/dist/types/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.d.ts +5 -0
- package/dist/types/components/button/MrlButton/MrlButton.d.ts +1 -1
- package/dist/types/components/button/MrlIconButton/MrlIconButton.d.ts +5 -0
- package/dist/types/components/callout/MrlCallout/MrlCallout.d.ts +7 -0
- package/dist/types/components/filter/MrlFilter/MrlFilter.d.ts +7 -0
- package/dist/types/components/filter/MrlFilterItem/MrlFilterItem.d.ts +7 -0
- package/dist/types/components/form/checkbox/MrlCheckbox/MrlCheckbox.d.ts +6 -1
- package/dist/types/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.d.ts +6 -1
- package/dist/types/components/form/date-picker/MrlDatePicker.d.ts +7 -0
- package/dist/types/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.d.ts +6 -1
- package/dist/types/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.d.ts +8 -1
- package/dist/types/components/form/radio/MrlRadioButton/MrlRadioButton.d.ts +6 -1
- package/dist/types/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.d.ts +6 -1
- package/dist/types/components/form/select/MrlCreatableSelect/MrlCreatableSelect.d.ts +7 -0
- package/dist/types/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.d.ts +7 -0
- package/dist/types/components/form/select/MrlMultiSelect/MrlMultiSelect.d.ts +7 -0
- package/dist/types/components/form/select/MrlSelect/MrlSelect.d.ts +7 -0
- package/dist/types/components/form/switch/MrlSwitch/MrlSwitch.d.ts +6 -1
- package/dist/types/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.d.ts +6 -1
- package/dist/types/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.d.ts +8 -0
- package/dist/types/components/form/text-input/MrlTextInput/MrlTextInput.d.ts +8 -0
- package/dist/types/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.d.ts +8 -0
- package/dist/types/components/form/textarea/MrlTextarea/MrlTextarea.d.ts +9 -1
- package/dist/types/components/layout/MrlSidebar/MrlSidebar.d.ts +8 -1
- package/dist/types/components/link/MrlLink/MrlLink.d.ts +6 -1
- package/dist/types/components/link/MrlLinkButton/MrlLinkButton.d.ts +5 -0
- package/dist/types/components/menu/MrlMenu/MrlMenu.d.ts +6 -1
- package/dist/types/components/menu/MrlMenuItem/MrlMenuItem.d.ts +6 -1
- package/dist/types/components/menu/MrlMenuItemLink/MrlMenuItemLink.d.ts +6 -1
- package/dist/types/components/modal/MrlModal/MrlModal.d.ts +5 -0
- package/dist/types/components/notification/MrlBlockNotification/MrlBlockNotification.d.ts +7 -0
- package/dist/types/components/notification/MrlToast/MrlToast.d.ts +8 -1
- package/dist/types/components/pagination/MrlPaginationButton/MrlPaginationButton.d.ts +6 -1
- package/dist/types/components/panel/MrlPanel/MrlPanel.d.ts +8 -0
- package/dist/types/components/popover/MrlPopover/MrlPopover.d.ts +6 -1
- package/dist/types/components/table/MrlSmartTable/MrlSmartTable.d.ts +7 -0
- package/dist/types/components/table/MrlTableRow/MrlTableRow.d.ts +7 -0
- package/dist/types/components/tabs/MrlTab/MrlTab.d.ts +6 -1
- package/dist/types/components/tabs/MrlTabLink/MrlTabLink.d.ts +6 -1
- package/dist/types/components/toolbar/MrlToolbarButton/MrlToolbarButton.d.ts +5 -0
- package/dist/types/components/tooltip/MrlTooltip/MrlTooltip.d.ts +8 -0
- package/dist/types/contexts/MrlAnalyticsContext/types.d.ts +1 -1
- package/dist/types/hooks/useMrlAnalytics/useMrlAnalytics.d.ts +4 -4
- package/package.json +4 -9
|
@@ -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{...
|
|
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":"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"}
|
|
@@ -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,
|
|
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,
|
package/dist/cjs/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.js.map
CHANGED
|
@@ -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{...
|
|
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":"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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');
|
|
@@ -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,
|
|
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{...
|
|
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,
|
|
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{...
|
|
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:
|
|
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={
|
|
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":"
|
|
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
|
}
|